Skip to content

canonical/snapcraft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Snapcraft logo

Snapcraft

Snapcraft Documentation Status Spread tests Codecov Status Ruff status

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.

Basic usage

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.

Installation

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.

Documentation

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:

Community and support

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.

Contribute to Snapcraft

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.

License and copyright

Snapcraft is released under the GPL-3.0 license.

© 2015-2025 Canonical Ltd.