Okay, so today I messed around with something called “snap bundle”. I’d heard about it before, but never really dug in. Figured it was time to get my hands dirty.
Getting Started
First thing I did was just try to understand what the heck it even is. Turns out, it’s a way to package up a snap application with the snap runtime environment it needs. This makes it so the app is more self-contained, and you don’t have to worry as much about whether the right snapd version is installed on the user’s system. Makes sense, I guess!

The Experiment
I already had a simple snap I’d built for another project lying around. It was nothing fancy, just a little command-line tool. I decided to use that as my guinea pig.
So, I opened up my terminal and navigated to the directory where my * file lived. That’s the file that tells snapcraft how to build the snap, what parts to include, and all that jazz.
Bundling it Up
The actual bundling part was surprisingly simple. I just ran the command:
snap bundle <my-snap-name>.snap
Note: Replace the <my-snap-name> with your actual snap name.
I watched the terminal scroll by with a bunch of messages. It looked like it was grabbing a core snap (that’s the runtime, I think) and sticking it together with my app’s snap. Took a little bit longer than a regular snap build, but nothing crazy.
The Result
When it finished, I had a new file in my directory, something like `my-snap-name_core20_*`. The `core20` part tells me it bundled the core20 runtime, and `amd64` is obviously the architecture. I am using amd64 architecture, that is why I got `amd64`.
Testing it Out
To see if it actually worked, I tried installing it:
sudo snap install --dangerous <my-bundled-snap-name>.snap
Note: Replace the <my-bundled-snap-name> with your actual snap name.
The `–dangerous` flag is needed because the bundled snap isn’t coming from the Snap Store, so it’s not signed. It’s just for local testing.
And… it worked! My little command-line tool ran just like it did before. I even tried removing the regular snap version I had installed, just to make sure the bundled one was truly self-contained. Still worked! Success!

Final Thoughts
So yeah, that’s my little adventure with `snap bundle`. Seems like a pretty useful tool if you want to make sure your snap app runs reliably, even on systems with different snapd setups. I’ll probably be using this more in the future. It wasn’t that hard, and it seems like it could save some headaches down the road.