Snapcraft is the command-line build tool for packaging and distributing software and apps in the snap container format. It solves the problems of dependency management and architecture support by bundling all of a software's libraries into the container itself, and gives developers a way to package any app, program, toolkit, or library for all major Linux distributions and IoT devices.
A snap's build configuration is stored in simple language as a project file called
snapcraft.yaml
, making it easy to add as a new package format to your existing code
base.
From the root of the code base of any software project, Snapcraft creates a minimal
snapcraft.yaml
with:
snapcraft init
After you add all your project's build and runtime details to the project file, bundle your project into a snap with:
snapcraft pack
Your project can be registered on public and private app stores, including the Snap Store:
snapcraft register
Snap versions and revisions, including parallel releases, are published to the store with:
snapcraft upload
If you're interested in learning more about the Snapcraft commands and how to compose a project file, try creating your first snap.
Snapcraft is available on all major Linux distributions, Windows, and macOS.
Snapcraft itself has first-class support as a snap. On snap-ready systems, you can install it on the command line with:
sudo snap install snapcraft --classic
For complete installation, you need an additional Linux container tool. Snapcraft can also be installed as a traditional package on many popular Linux repositories. If you need help with either, the documentation covers how to set up Snapcraft.
The Snapcraft docs provide guidance and learning material about the full process of building a project file, debugging snaps, resolving interfaces, the command reference, and much more:
We are a growing community of crafters who build snaps for all Linux software.
Ask your questions about Snapcraft and what's on the horizon, and see who's working on what in the Snapcraft Forum and on the Snapcraft Matrix channel.
You can report any issues or bugs on the project's GitHub repository.
Snapcraft is covered by the Ubuntu Code of Conduct.
Snapcraft is open source and part of the Canonical family. We would love your help.
If you're interested, start with the contribution guide.
We welcome any suggestions and help with the docs. The Canonical Open Documentation Academy is the hub for doc development, including Snapcraft docs. No prior coding experience is required.
Snapcraft is released under the GPL-3.0 license.
© 2015-2025 Canonical Ltd.