Type Core22Project | Core24Project | Core26Project | BareCore22Project | BareCore24Project | BareCore26Project | _BaselessCore22Project | _BaselessProject
File match .snapcraft.yaml snapcraft.yaml
Schema URL https://catalog.lintel.tools/schemas/schemastore/snapcraft/latest.json
Source https://raw.githubusercontent.com/canonical/snapcraft/main/schema/snapcraft.json

Validate with Lintel

npx @lintel/lintel check
Type: Core22Project | Core24Project | Core26Project | BareCore22Project | BareCore24Project | BareCore26Project | _BaselessCore22Project | _BaselessProject

One of

1. Core22Project | Core24Project | Core26Project | BareCore22Project | BareCore24Project | BareCore26Project Core22Project | Core24Project | Core26Project | BareCore22Project | BareCore24Project | BareCore26Project
2. _BaselessCore22Project | _BaselessProject _BaselessCore22Project | _BaselessProject

Definitions

App object

Snapcraft project app definition.

command string required

The command to run inside the snap when the app is invoked.

Examples: "bin/foo-app"
autostart string | null

The desktop file used to start an app when the desktop environment starts.

Default: null
Examples: "foo-app.desktop"
common-id string | null

The identifier to a desktop ID within an external appstream file.

Default: null
Examples: "org.canonical.foo"
bus-name string | null

The bus name that the application or service exposes through D-Bus.

Default: null
Examples: "org.bluez"
desktop string | null

The desktop file used to start an app.

Default: null
Examples: "my-app.desktop"
completer string | null

The name of the bash completion script for the app.

Default: null
Examples: "bash-complete.sh"
stop-command string | null

The command to run to stop the service.

Default: null
Examples: "bin/foo-app --halt"
post-stop-command string | null

The command to run after the service is stopped.

Default: null
Examples: "bin/logrotate --force"
start-timeout string | null

The maximum amount of time to wait for the service to start.

Default: null
Examples: "10s", "2m"
stop-timeout string | null

The maximum amount of time to wait for the service to stop.

Default: null
Examples: "10s", "2m"
watchdog-timeout string | null

The maximum amount of time the service can run without sending a heartbeat to the watchdog.

Default: null
Examples: "10s", "2m"
reload-command string | null

The command to run to restart the service.

Default: null
Examples: "bin/foo-app --restart"
restart-delay string | null

The time to wait between service restarts.

Default: null
Examples: "10s", "2m"
timer string | null

The time or schedule to run a service.

Default: null
Examples: "23:00", "00:00-24:00/24", "mon,10:00,,fri,15:00"
daemon string | null

Configures the app as a service, and sets its runtime and notification behavior.

Default: null
Examples: "simple", "oneshot"
after string[]

The ordered list of apps that the service runs after it launches.

Examples: "[foo-app, bar-app]"
uniqueItems=true
before string[]

The ordered list of apps that the service runs before it launches.

Examples: "[baz-app, quz-app]"
uniqueItems=true
refresh-mode string | null

Determines how the service should restart when the snap refreshes.

Default: null
Examples: "restart"
stop-mode string | null

The signal to send when stopping the service.

Default: null
Examples: "sigterm"
restart-condition string | null

The conditions that cause the service to restart.

Default: null
Examples: "on-failure"
success-exit-status integer[] | null

The list of additional successful exit statuses that the service can return.

Default: null
Examples: "[42, 250]"
install-mode string | null

Whether snapd can automatically start the service when the snap is installed.

Default: null
Examples: "enable"
slots string[] | null

The list of slots that the app provides.

Default: null
Examples: "[dbus-daemon]"
plugs string[] | null

The interfaces that the app can connect to.

Default: null
Examples: "[home, removable-media]"
aliases string[] | null

The aliases that can be used to run the app.

Default: null
Examples: "[my-app]"
environment object | null

The runtime environment variables.

Default: null
Examples: "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages, DISABLE_WAYLAND: 1}"
command-chain string[]

The ordered list of commands to run before the app's command runs.

Examples: "[bin/alsa-launch, bin/desktop-launch]"
sockets object | null

The sockets used to activate an app.

Default: null
Examples: "{my-socket: {listen-stream: $SNAP_COMMON/lxd/unix.socket, socket-mode: 0660}}"
daemon-scope string | null

Determines whether the service is run on a system or user instance of systemd.

Default: null
Examples: "user"
activates-on string[] | null

The slots exposed by the snap to activate the service with D-Bus.

Default: null
Examples: "gnome-shell-dbus"
passthrough object | null

The attributes to pass to the snap's metadata file for the app.

Default: null
Examples: "{daemon: complex}"
extensions string[] | null

The extensions to add to the project.

Default: null
Examples: ["gnome"], ["ros2-humble"]
Architecture object

Snapcraft project architecture definition.

build-on string | string[] required

The architectures to build the snap on.

Examples: "arm64", "[amd64, riscv64]"
build-for string | string[] | null

The target architecture for the build.

Default: null
Examples: "amd64", "[riscv64]"
BareCore22Project object
name string required

The identifying name of the snap.

Examples: "my-app", "powershell", "jupyterlab-desktop"
maxLength=40
base string required
Constant: "bare"
build-base string required
Constant: "core22"
parts Record<string, object> required

The self-contained software pieces needed to create the final artifact.

Examples: "{cloud-init: {plugin: python, source-type: git, source: https://git.launchpad.net/cloud-init}}"
confinement string required

The amount of isolation the snap has from the host system.

Values: "classic" "devmode" "strict"
Examples: "strict", "classic", "devmode"
title string | null
Default: null
version string | null

The version of the snap.

Default: null
Examples: "1.2.3"
summary string | null
Default: null
description string | null

The full description of the project.

Default: null
contact string | string[] | null

The snap author's contact links and email addresses.

Default: null
Examples: "[[email protected], https://example.com/contact]"
issues string | string[] | null

The links and email addresses for submitting issues, bugs, and feature requests.

Default: null
Examples: "[[email protected], https://example.com/issues]"
source-code string | string[] | null

The links to the source code of the snap or the original project.

Default: null
Examples: "[https://example.com/source-code]"
license string | null

The project's license as an SPDX expression

Default: null
Examples: "GPL-3.0+", "Apache-2.0"
adopt-info string | null

Selects a part to inherit metadata from and reuse for the snap's metadata.

Required if one of version, summary, or description isn't set.

Default: null
Examples: "foo-part"
package-repositories object[] | null

The package repositories to use for build and stage packages.

Default: null
Examples: "[{type: apt, components: [main], suites: [xenial], key-id: 78E1918602959B9C59103100F1831DDAFC42E99D, url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
compression string

Specifies the algorithm that compresses the snap.

Default: "xz"
Values: "lzo" "xz"
Examples: "xz", "lzo"
donation string | string[] | null

The snap's donation links.

Default: null
Examples: "[[email protected], https://example.com/donate]"
website string | string[] | null

The links to the original software's web pages.

Default: null
Examples: "[https://example.com]"
type enum
Default: null
Values: "app" "gadget" null
icon string | null

The path to the snap's icon.

Default: null
Examples: "snap/gui/icon.svg"
layout object | null

The file layouts in the execution environment.

Default: null
Examples: "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
grade string | null

The quality grade of the snap.

Default: null
Examples: "stable", "devel"
architectures string | Architecture[] | null

The architectures that the snap builds and runs on.

Default: null
Examples: "[amd64, riscv64]", "[{build-on: [amd64], build-for: [amd64]}]", "[{build-on: [amd64, riscv64], build-for: [riscv64]}]"
assumes string[]

The minimum version of snapd and its features that the snap requires from the host.

Examples: "[snapd2.66, common-data-dir]"
uniqueItems=true
hooks object | null

Configures the snap's hooks.

Default: null
Examples: "{configure: {plugs: [home]}}"
passthrough object | null

The attributes to pass to the snap's metadata file.

Default: null
Examples: "{daemon: complex}"
apps object | null

The individual programs and services that the snap runs.

Default: null
Examples: "{app-1: {command: bin/app-1}}"
plugs object | null

Declares the snap's plugs.

Default: null
Examples: "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
slots object | null

Declares the snap's slots.

Default: null
Examples: "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
lint Lint | null

The linter configuration settings.

Default: null
Examples: "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
epoch string | null

The epoch associated with this version of the snap.

Default: null
Examples: "1", "2*"
system-usernames object | null

The system usernames the snap can use to run daemons and services.

Default: null
Examples: "{snap-daemon: shared}"
environment object | null

The snap's runtime environment variables.

Default: null
Examples: "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
build-packages null

The list of packages to install when building a snap.

Default: null
Examples: "[libssl-dev, libyaml-dev]"
build-snaps null

The snaps to install when building a snap.

Default: null
Examples: "[go/1.22/stable, yq]"
ua-services string[] | null

The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.

Default: null
Examples: "[esm-apps]"
provenance string | null

The primary-key header for snaps signed by third parties.

Default: null
Examples: "test-provenance"
components object | null

Declares the components to build in conjunction with the snap.

Default: null
Examples: "{foo-component: {type: standard}}"
BareCore24Project object
name string required

The identifying name of the snap.

Examples: "my-app", "powershell", "jupyterlab-desktop"
maxLength=40
base string required
Constant: "bare"
build-base string required
Constant: "core24"
parts Record<string, object> required

The self-contained software pieces needed to create the final artifact.

Examples: "{cloud-init: {plugin: python, source-type: git, source: https://git.launchpad.net/cloud-init}}"
confinement string required

The amount of isolation the snap has from the host system.

Values: "classic" "devmode" "strict"
Examples: "strict", "classic", "devmode"
title string | null
Default: null
version string | null

The version of the snap.

Default: null
Examples: "1.2.3"
summary string | null
Default: null
description string | null

The full description of the project.

Default: null
platforms object | null

The platforms where the snap can be built and where the resulting snap can run.

Default: null
Examples: "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
contact string | string[] | null

The snap author's contact links and email addresses.

Default: null
Examples: "[[email protected], https://example.com/contact]"
issues string | string[] | null

The links and email addresses for submitting issues, bugs, and feature requests.

Default: null
Examples: "[[email protected], https://example.com/issues]"
source-code string | string[] | null

The links to the source code of the snap or the original project.

Default: null
Examples: "[https://example.com/source-code]"
license string | null

The project's license as an SPDX expression

Default: null
Examples: "GPL-3.0+", "Apache-2.0"
adopt-info string | null

Selects a part to inherit metadata from and reuse for the snap's metadata.

Required if one of version, summary, or description isn't set.

Default: null
Examples: "foo-part"
package-repositories object[] | null

The package repositories to use for build and stage packages.

Default: null
Examples: "[{type: apt, components: [main], suites: [xenial], key-id: 78E1918602959B9C59103100F1831DDAFC42E99D, url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
compression string

Specifies the algorithm that compresses the snap.

Default: "xz"
Values: "lzo" "xz"
Examples: "xz", "lzo"
donation string | string[] | null

The snap's donation links.

Default: null
Examples: "[[email protected], https://example.com/donate]"
website string | string[] | null

The links to the original software's web pages.

Default: null
Examples: "[https://example.com]"
type enum
Default: null
Values: "app" "gadget" null
icon string | null

The path to the snap's icon.

Default: null
Examples: "snap/gui/icon.svg"
layout object | null

The file layouts in the execution environment.

Default: null
Examples: "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
grade string | null

The quality grade of the snap.

Default: null
Examples: "stable", "devel"
assumes string[]

The minimum version of snapd and its features that the snap requires from the host.

Examples: "[snapd2.66, common-data-dir]"
uniqueItems=true
hooks object | null

Configures the snap's hooks.

Default: null
Examples: "{configure: {plugs: [home]}}"
passthrough object | null

The attributes to pass to the snap's metadata file.

Default: null
Examples: "{daemon: complex}"
apps object | null

The individual programs and services that the snap runs.

Default: null
Examples: "{app-1: {command: bin/app-1}}"
plugs object | null

Declares the snap's plugs.

Default: null
Examples: "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
slots object | null

Declares the snap's slots.

Default: null
Examples: "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
lint Lint | null

The linter configuration settings.

Default: null
Examples: "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
epoch string | null

The epoch associated with this version of the snap.

Default: null
Examples: "1", "2*"
system-usernames object | null

The system usernames the snap can use to run daemons and services.

Default: null
Examples: "{snap-daemon: shared}"
environment object | null

The snap's runtime environment variables.

Default: null
Examples: "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
build-packages null

The list of packages to install when building a snap.

Default: null
Examples: "[libssl-dev, libyaml-dev]"
build-snaps null

The snaps to install when building a snap.

Default: null
Examples: "[go/1.22/stable, yq]"
ua-services string[] | null

The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.

Default: null
Examples: "[esm-apps]"
provenance string | null

The primary-key header for snaps signed by third parties.

Default: null
Examples: "test-provenance"
components object | null

Declares the components to build in conjunction with the snap.

Default: null
Examples: "{foo-component: {type: standard}}"
BareCore26Project object
name string required

The identifying name of the snap.

Examples: "my-app", "powershell", "jupyterlab-desktop"
maxLength=40
base string required
Constant: "bare"
build-base string required
Constant: "devel"
parts Record<string, object> required

The self-contained software pieces needed to create the final artifact.

Examples: "{cloud-init: {plugin: python, source-type: git, source: https://git.launchpad.net/cloud-init}}"
confinement string required

The amount of isolation the snap has from the host system.

Values: "classic" "devmode" "strict"
Examples: "strict", "classic", "devmode"
grade string required
Constant: "devel"
title string | null
Default: null
version string | null

The version of the snap.

Default: null
Examples: "1.2.3"
summary string | null
Default: null
description string | null

The full description of the project.

Default: null
platforms object | null

The platforms where the snap can be built and where the resulting snap can run.

Default: null
Examples: "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
contact string | string[] | null

The snap author's contact links and email addresses.

Default: null
Examples: "[[email protected], https://example.com/contact]"
issues string | string[] | null

The links and email addresses for submitting issues, bugs, and feature requests.

Default: null
Examples: "[[email protected], https://example.com/issues]"
source-code string | string[] | null

The links to the source code of the snap or the original project.

Default: null
Examples: "[https://example.com/source-code]"
license string | null

The project's license as an SPDX expression

Default: null
Examples: "GPL-3.0+", "Apache-2.0"
adopt-info string | null

Selects a part to inherit metadata from and reuse for the snap's metadata.

Required if one of version, summary, or description isn't set.

Default: null
Examples: "foo-part"
package-repositories object[] | null

The package repositories to use for build and stage packages.

Default: null
Examples: "[{type: apt, components: [main], suites: [xenial], key-id: 78E1918602959B9C59103100F1831DDAFC42E99D, url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
compression string

Specifies the algorithm that compresses the snap.

Default: "xz"
Values: "lzo" "xz"
Examples: "xz", "lzo"
donation string | string[] | null

The snap's donation links.

Default: null
Examples: "[[email protected], https://example.com/donate]"
website string | string[] | null

The links to the original software's web pages.

Default: null
Examples: "[https://example.com]"
type enum
Default: null
Values: "app" "gadget" null
icon string | null

The path to the snap's icon.

Default: null
Examples: "snap/gui/icon.svg"
layout object | null

The file layouts in the execution environment.

Default: null
Examples: "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
assumes string[]

The minimum version of snapd and its features that the snap requires from the host.

Examples: "[snapd2.66, common-data-dir]"
uniqueItems=true
hooks object | null

Configures the snap's hooks.

Default: null
Examples: "{configure: {plugs: [home]}}"
passthrough object | null

The attributes to pass to the snap's metadata file.

Default: null
Examples: "{daemon: complex}"
apps object | null

The individual programs and services that the snap runs.

Default: null
Examples: "{app-1: {command: bin/app-1}}"
plugs object | null

Declares the snap's plugs.

Default: null
Examples: "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
slots object | null

Declares the snap's slots.

Default: null
Examples: "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
lint Lint | null

The linter configuration settings.

Default: null
Examples: "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
epoch string | null

The epoch associated with this version of the snap.

Default: null
Examples: "1", "2*"
system-usernames object | null

The system usernames the snap can use to run daemons and services.

Default: null
Examples: "{snap-daemon: shared}"
environment object | null

The snap's runtime environment variables.

Default: null
Examples: "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
build-packages null

The list of packages to install when building a snap.

Default: null
Examples: "[libssl-dev, libyaml-dev]"
build-snaps null

The snaps to install when building a snap.

Default: null
Examples: "[go/1.22/stable, yq]"
ua-services string[] | null

The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.

Default: null
Examples: "[esm-apps]"
provenance string | null

The primary-key header for snaps signed by third parties.

Default: null
Examples: "test-provenance"
components object | null

Declares the components to build in conjunction with the snap.

Default: null
Examples: "{foo-component: {type: standard}}"
Component object

Snapcraft component definition.

summary string required

The summary of the component.

Examples: "Language translations for the app"
maxLength=78
description string required

The full description of the component.

Examples: "Contains optional translation packs to allow the user to change the language."
type string required

The type of the component.

Values: "test" "kernel-modules" "standard"
Examples: "standard"
version string | null

The version of the component.

Default: null
Examples: "1.2.3"
hooks object | null

The configuration for the component's hooks.

Default: null
Examples: "{configure: {plugs: [home]}}"
adopt-info string | null

Selects a part to inherit metadata from and reuse for the component's metadata.

Only the component's version can be set.

Default: null
Examples: "foo-part"
ContentPlug object

Snapcraft project content plug definition.

interface string required

The name of the interface.

Examples: "network"
target string required

The path to where the producer's files will be available in the snap.

Examples: "$SNAP/data-dir/themes"
content string | null

The name for the content type.

Default: null
Examples: "themes"
default-provider string | null

The name of the producer snap..

Default: null
Examples: "gtk-common-themes"
Core22Project object
name string required

The identifying name of the snap.

Examples: "my-app", "powershell", "jupyterlab-desktop"
maxLength=40
base string required
Constant: "core22"
parts Record<string, object> required

The self-contained software pieces needed to create the final artifact.

Examples: "{cloud-init: {plugin: python, source-type: git, source: https://git.launchpad.net/cloud-init}}"
confinement string required

The amount of isolation the snap has from the host system.

Values: "classic" "devmode" "strict"
Examples: "strict", "classic", "devmode"
title string | null
Default: null
version string | null

The version of the snap.

Default: null
Examples: "1.2.3"
summary string | null
Default: null
description string | null

The full description of the project.

Default: null
build-base string | null

The baseline system that the snap is built in.

Default: null
Examples: "core22", "core24", "core26", "devel"
contact string | string[] | null

The snap author's contact links and email addresses.

Default: null
Examples: "[[email protected], https://example.com/contact]"
issues string | string[] | null

The links and email addresses for submitting issues, bugs, and feature requests.

Default: null
Examples: "[[email protected], https://example.com/issues]"
source-code string | string[] | null

The links to the source code of the snap or the original project.

Default: null
Examples: "[https://example.com/source-code]"
license string | null

The project's license as an SPDX expression

Default: null
Examples: "GPL-3.0+", "Apache-2.0"
adopt-info string | null

Selects a part to inherit metadata from and reuse for the snap's metadata.

Required if one of version, summary, or description isn't set.

Default: null
Examples: "foo-part"
package-repositories object[] | null

The package repositories to use for build and stage packages.

Default: null
Examples: "[{type: apt, components: [main], suites: [xenial], key-id: 78E1918602959B9C59103100F1831DDAFC42E99D, url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
compression string

Specifies the algorithm that compresses the snap.

Default: "xz"
Values: "lzo" "xz"
Examples: "xz", "lzo"
donation string | string[] | null

The snap's donation links.

Default: null
Examples: "[[email protected], https://example.com/donate]"
website string | string[] | null

The links to the original software's web pages.

Default: null
Examples: "[https://example.com]"
type enum
Default: null
Values: "app" "gadget" null
icon string | null

The path to the snap's icon.

Default: null
Examples: "snap/gui/icon.svg"
layout object | null

The file layouts in the execution environment.

Default: null
Examples: "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
grade string | null

The quality grade of the snap.

Default: null
Examples: "stable", "devel"
architectures string | Architecture[] | null

The architectures that the snap builds and runs on.

Default: null
Examples: "[amd64, riscv64]", "[{build-on: [amd64], build-for: [amd64]}]", "[{build-on: [amd64, riscv64], build-for: [riscv64]}]"
assumes string[]

The minimum version of snapd and its features that the snap requires from the host.

Examples: "[snapd2.66, common-data-dir]"
uniqueItems=true
hooks object | null

Configures the snap's hooks.

Default: null
Examples: "{configure: {plugs: [home]}}"
passthrough object | null

The attributes to pass to the snap's metadata file.

Default: null
Examples: "{daemon: complex}"
apps object | null

The individual programs and services that the snap runs.

Default: null
Examples: "{app-1: {command: bin/app-1}}"
plugs object | null

Declares the snap's plugs.

Default: null
Examples: "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
slots object | null

Declares the snap's slots.

Default: null
Examples: "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
lint Lint | null

The linter configuration settings.

Default: null
Examples: "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
epoch string | null

The epoch associated with this version of the snap.

Default: null
Examples: "1", "2*"
system-usernames object | null

The system usernames the snap can use to run daemons and services.

Default: null
Examples: "{snap-daemon: shared}"
environment object | null

The snap's runtime environment variables.

Default: null
Examples: "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
build-packages null

The list of packages to install when building a snap.

Default: null
Examples: "[libssl-dev, libyaml-dev]"
build-snaps null

The snaps to install when building a snap.

Default: null
Examples: "[go/1.22/stable, yq]"
ua-services string[] | null

The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.

Default: null
Examples: "[esm-apps]"
provenance string | null

The primary-key header for snaps signed by third parties.

Default: null
Examples: "test-provenance"
components object | null

Declares the components to build in conjunction with the snap.

Default: null
Examples: "{foo-component: {type: standard}}"
Core24Project object
name string required

The identifying name of the snap.

Examples: "my-app", "powershell", "jupyterlab-desktop"
maxLength=40
base string required
Constant: "core24"
parts Record<string, object> required

The self-contained software pieces needed to create the final artifact.

Examples: "{cloud-init: {plugin: python, source-type: git, source: https://git.launchpad.net/cloud-init}}"
confinement string required

The amount of isolation the snap has from the host system.

Values: "classic" "devmode" "strict"
Examples: "strict", "classic", "devmode"
title string | null
Default: null
version string | null

The version of the snap.

Default: null
Examples: "1.2.3"
summary string | null
Default: null
description string | null

The full description of the project.

Default: null
build-base string | null

The baseline system that the snap is built in.

Default: null
Examples: "core22", "core24", "core26", "devel"
platforms object | null

The platforms where the snap can be built and where the resulting snap can run.

Default: null
Examples: "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
contact string | string[] | null

The snap author's contact links and email addresses.

Default: null
Examples: "[[email protected], https://example.com/contact]"
issues string | string[] | null

The links and email addresses for submitting issues, bugs, and feature requests.

Default: null
Examples: "[[email protected], https://example.com/issues]"
source-code string | string[] | null

The links to the source code of the snap or the original project.

Default: null
Examples: "[https://example.com/source-code]"
license string | null

The project's license as an SPDX expression

Default: null
Examples: "GPL-3.0+", "Apache-2.0"
adopt-info string | null

Selects a part to inherit metadata from and reuse for the snap's metadata.

Required if one of version, summary, or description isn't set.

Default: null
Examples: "foo-part"
package-repositories object[] | null

The package repositories to use for build and stage packages.

Default: null
Examples: "[{type: apt, components: [main], suites: [xenial], key-id: 78E1918602959B9C59103100F1831DDAFC42E99D, url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
compression string

Specifies the algorithm that compresses the snap.

Default: "xz"
Values: "lzo" "xz"
Examples: "xz", "lzo"
donation string | string[] | null

The snap's donation links.

Default: null
Examples: "[[email protected], https://example.com/donate]"
website string | string[] | null

The links to the original software's web pages.

Default: null
Examples: "[https://example.com]"
type enum
Default: null
Values: "app" "gadget" null
icon string | null

The path to the snap's icon.

Default: null
Examples: "snap/gui/icon.svg"
layout object | null

The file layouts in the execution environment.

Default: null
Examples: "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
grade string | null

The quality grade of the snap.

Default: null
Examples: "stable", "devel"
assumes string[]

The minimum version of snapd and its features that the snap requires from the host.

Examples: "[snapd2.66, common-data-dir]"
uniqueItems=true
hooks object | null

Configures the snap's hooks.

Default: null
Examples: "{configure: {plugs: [home]}}"
passthrough object | null

The attributes to pass to the snap's metadata file.

Default: null
Examples: "{daemon: complex}"
apps object | null

The individual programs and services that the snap runs.

Default: null
Examples: "{app-1: {command: bin/app-1}}"
plugs object | null

Declares the snap's plugs.

Default: null
Examples: "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
slots object | null

Declares the snap's slots.

Default: null
Examples: "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
lint Lint | null

The linter configuration settings.

Default: null
Examples: "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
epoch string | null

The epoch associated with this version of the snap.

Default: null
Examples: "1", "2*"
system-usernames object | null

The system usernames the snap can use to run daemons and services.

Default: null
Examples: "{snap-daemon: shared}"
environment object | null

The snap's runtime environment variables.

Default: null
Examples: "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
build-packages null

The list of packages to install when building a snap.

Default: null
Examples: "[libssl-dev, libyaml-dev]"
build-snaps null

The snaps to install when building a snap.

Default: null
Examples: "[go/1.22/stable, yq]"
ua-services string[] | null

The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.

Default: null
Examples: "[esm-apps]"
provenance string | null

The primary-key header for snaps signed by third parties.

Default: null
Examples: "test-provenance"
components object | null

Declares the components to build in conjunction with the snap.

Default: null
Examples: "{foo-component: {type: standard}}"
Core26Project object
name string required

The identifying name of the snap.

Examples: "my-app", "powershell", "jupyterlab-desktop"
maxLength=40
base string required
Values: "core26" "devel"
build-base string required
Constant: "devel"
parts Record<string, object> required

The self-contained software pieces needed to create the final artifact.

Examples: "{cloud-init: {plugin: python, source-type: git, source: https://git.launchpad.net/cloud-init}}"
confinement string required

The amount of isolation the snap has from the host system.

Values: "classic" "devmode" "strict"
Examples: "strict", "classic", "devmode"
grade string required
Constant: "devel"
title string | null
Default: null
version string | null

The version of the snap.

Default: null
Examples: "1.2.3"
summary string | null
Default: null
description string | null

The full description of the project.

Default: null
platforms object | null

The platforms where the snap can be built and where the resulting snap can run.

Default: null
Examples: "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
contact string | string[] | null

The snap author's contact links and email addresses.

Default: null
Examples: "[[email protected], https://example.com/contact]"
issues string | string[] | null

The links and email addresses for submitting issues, bugs, and feature requests.

Default: null
Examples: "[[email protected], https://example.com/issues]"
source-code string | string[] | null

The links to the source code of the snap or the original project.

Default: null
Examples: "[https://example.com/source-code]"
license string | null

The project's license as an SPDX expression

Default: null
Examples: "GPL-3.0+", "Apache-2.0"
adopt-info string | null

Selects a part to inherit metadata from and reuse for the snap's metadata.

Required if one of version, summary, or description isn't set.

Default: null
Examples: "foo-part"
package-repositories object[] | null

The package repositories to use for build and stage packages.

Default: null
Examples: "[{type: apt, components: [main], suites: [xenial], key-id: 78E1918602959B9C59103100F1831DDAFC42E99D, url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
compression string

Specifies the algorithm that compresses the snap.

Default: "xz"
Values: "lzo" "xz"
Examples: "xz", "lzo"
donation string | string[] | null

The snap's donation links.

Default: null
Examples: "[[email protected], https://example.com/donate]"
website string | string[] | null

The links to the original software's web pages.

Default: null
Examples: "[https://example.com]"
type enum
Default: null
Values: "app" "gadget" null
icon string | null

The path to the snap's icon.

Default: null
Examples: "snap/gui/icon.svg"
layout object | null

The file layouts in the execution environment.

Default: null
Examples: "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
assumes string[]

The minimum version of snapd and its features that the snap requires from the host.

Examples: "[snapd2.66, common-data-dir]"
uniqueItems=true
hooks object | null

Configures the snap's hooks.

Default: null
Examples: "{configure: {plugs: [home]}}"
passthrough object | null

The attributes to pass to the snap's metadata file.

Default: null
Examples: "{daemon: complex}"
apps object | null

The individual programs and services that the snap runs.

Default: null
Examples: "{app-1: {command: bin/app-1}}"
plugs object | null

Declares the snap's plugs.

Default: null
Examples: "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
slots object | null

Declares the snap's slots.

Default: null
Examples: "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
lint Lint | null

The linter configuration settings.

Default: null
Examples: "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
epoch string | null

The epoch associated with this version of the snap.

Default: null
Examples: "1", "2*"
system-usernames object | null

The system usernames the snap can use to run daemons and services.

Default: null
Examples: "{snap-daemon: shared}"
environment object | null

The snap's runtime environment variables.

Default: null
Examples: "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
build-packages null

The list of packages to install when building a snap.

Default: null
Examples: "[libssl-dev, libyaml-dev]"
build-snaps null

The snaps to install when building a snap.

Default: null
Examples: "[go/1.22/stable, yq]"
ua-services string[] | null

The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.

Default: null
Examples: "[esm-apps]"
provenance string | null

The primary-key header for snaps signed by third parties.

Default: null
Examples: "test-provenance"
components object | null

Declares the components to build in conjunction with the snap.

Default: null
Examples: "{foo-component: {type: standard}}"
Hook object

Snapcraft project hook definition.

command-chain string[]

The ordered list of commands to run before the hook runs.

Examples: "[bin/alsa-launch, bin/desktop-launch]"
environment object | null

The environment variables for the hook.

Default: null
Examples: "{PYTHONPATH: /custom/path/:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
plugs string[] | null

The list of interfaces that the hook can connect to.

Default: null
Examples: "[home, removable-media]"
passthrough object | null

The attributes to pass to the snap's metadata file for the hook.

Default: null
Examples: "{daemon: complex}"
Lint object

Linter configuration.

:ivar ignore: A list describing which files should have issues ignored for given linters. The items in the list can be either: - a string, which must be the name of one of the known linters (see below). All issues from this linter will be ignored. - a dict containing exactly one key, which must be the name of one of the known linters. The value is then a list of strings corresponding to the filenames/patterns that should be ignored for that linter. The "known" linter names are the keys in :ref:LINTERS

ignore string | object[] required

Linters or files to skip when linting.

Examples: "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
Platform object

Snapcraft project platform definition.

build-on string | string[] | null required

The architectures to build the snap on.

Examples: "arm64", "[amd64, riscv64]"
build-for array | string | null

The target architecture for the build.

Default: null
Examples: "amd64", "[riscv64]"
Socket object

Snapcraft app socket definition.

listen-stream integer | string required

The socket's abstract name or socket path.

Examples: "$SNAP_COMMON/lxd/unix.socket", "80"
socket-mode integer | null

The mode or permissions of the socket in octal.

Default: null
Examples: "0660"
_BaselessCore22Project object
name string required

The identifying name of the snap.

Examples: "my-app", "powershell", "jupyterlab-desktop"
maxLength=40
build-base string required

The baseline system that the snap is built in.

Constant: "core22"
parts Record<string, object> required

The self-contained software pieces needed to create the final artifact.

Examples: "{cloud-init: {plugin: python, source-type: git, source: https://git.launchpad.net/cloud-init}}"
type string required
Values: "base" "kernel" "snapd"
confinement string required

The amount of isolation the snap has from the host system.

Values: "classic" "devmode" "strict"
Examples: "strict", "classic", "devmode"
title string | null
Default: null
version string | null

The version of the snap.

Default: null
Examples: "1.2.3"
summary string | null
Default: null
description string | null

The full description of the project.

Default: null
platforms object | null

The architectures that the snap builds and runs on.

Default: null
Examples: "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
contact string | string[] | null

The snap author's contact links and email addresses.

Default: null
Examples: "[[email protected], https://example.com/contact]"
issues string | string[] | null

The links and email addresses for submitting issues, bugs, and feature requests.

Default: null
Examples: "[[email protected], https://example.com/issues]"
source-code string | string[] | null

The links to the source code of the snap or the original project.

Default: null
Examples: "[https://example.com/source-code]"
license string | null

The project's license as an SPDX expression

Default: null
Examples: "GPL-3.0+", "Apache-2.0"
adopt-info string | null

Selects a part to inherit metadata from and reuse for the snap's metadata.

Required if one of version, summary, or description isn't set.

Default: null
Examples: "foo-part"
package-repositories object[] | null

The package repositories to use for build and stage packages.

Default: null
Examples: "[{type: apt, components: [main], suites: [xenial], key-id: 78E1918602959B9C59103100F1831DDAFC42E99D, url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
compression string

Specifies the algorithm that compresses the snap.

Default: "xz"
Values: "lzo" "xz"
Examples: "xz", "lzo"
donation string | string[] | null

The snap's donation links.

Default: null
Examples: "[[email protected], https://example.com/donate]"
website string | string[] | null

The links to the original software's web pages.

Default: null
Examples: "[https://example.com]"
icon string | null

The path to the snap's icon.

Default: null
Examples: "snap/gui/icon.svg"
layout object | null

The file layouts in the execution environment.

Default: null
Examples: "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
grade string | null

The quality grade of the snap.

Default: null
Examples: "stable", "devel"
architectures string | Architecture[] | null

The architectures that the snap builds and runs on.

Default: null
Examples: "[amd64, riscv64]", "[{build-on: [amd64], build-for: [amd64]}]", "[{build-on: [amd64, riscv64], build-for: [riscv64]}]"
assumes string[]

The minimum version of snapd and its features that the snap requires from the host.

Examples: "[snapd2.66, common-data-dir]"
uniqueItems=true
hooks object | null

Configures the snap's hooks.

Default: null
Examples: "{configure: {plugs: [home]}}"
passthrough object | null

The attributes to pass to the snap's metadata file.

Default: null
Examples: "{daemon: complex}"
apps object | null

The individual programs and services that the snap runs.

Default: null
Examples: "{app-1: {command: bin/app-1}}"
plugs object | null

Declares the snap's plugs.

Default: null
Examples: "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
slots object | null

Declares the snap's slots.

Default: null
Examples: "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
lint Lint | null

The linter configuration settings.

Default: null
Examples: "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
epoch string | null

The epoch associated with this version of the snap.

Default: null
Examples: "1", "2*"
system-usernames object | null

The system usernames the snap can use to run daemons and services.

Default: null
Examples: "{snap-daemon: shared}"
environment object | null

The snap's runtime environment variables.

Default: null
Examples: "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
build-packages null

The list of packages to install when building a snap.

Default: null
Examples: "[libssl-dev, libyaml-dev]"
build-snaps null

The snaps to install when building a snap.

Default: null
Examples: "[go/1.22/stable, yq]"
ua-services string[] | null

The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.

Default: null
Examples: "[esm-apps]"
provenance string | null

The primary-key header for snaps signed by third parties.

Default: null
Examples: "test-provenance"
components object | null

Declares the components to build in conjunction with the snap.

Default: null
Examples: "{foo-component: {type: standard}}"
_BaselessProject object

Project types that do not require a base.

name string required

The identifying name of the snap.

Examples: "my-app", "powershell", "jupyterlab-desktop"
maxLength=40
build-base string required

The baseline system that the snap is built in.

Values: "core24" "core26" "devel"
parts Record<string, object> required

The self-contained software pieces needed to create the final artifact.

Examples: "{cloud-init: {plugin: python, source-type: git, source: https://git.launchpad.net/cloud-init}}"
type string required
Values: "base" "kernel" "snapd"
confinement string required

The amount of isolation the snap has from the host system.

Values: "classic" "devmode" "strict"
Examples: "strict", "classic", "devmode"
title string | null
Default: null
version string | null

The version of the snap.

Default: null
Examples: "1.2.3"
summary string | null
Default: null
description string | null

The full description of the project.

Default: null
platforms object | null

The architectures that the snap builds and runs on.

Default: null
Examples: "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
contact string | string[] | null

The snap author's contact links and email addresses.

Default: null
Examples: "[[email protected], https://example.com/contact]"
issues string | string[] | null

The links and email addresses for submitting issues, bugs, and feature requests.

Default: null
Examples: "[[email protected], https://example.com/issues]"
source-code string | string[] | null

The links to the source code of the snap or the original project.

Default: null
Examples: "[https://example.com/source-code]"
license string | null

The project's license as an SPDX expression

Default: null
Examples: "GPL-3.0+", "Apache-2.0"
adopt-info string | null

Selects a part to inherit metadata from and reuse for the snap's metadata.

Required if one of version, summary, or description isn't set.

Default: null
Examples: "foo-part"
package-repositories object[] | null

The package repositories to use for build and stage packages.

Default: null
Examples: "[{type: apt, components: [main], suites: [xenial], key-id: 78E1918602959B9C59103100F1831DDAFC42E99D, url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
compression string

Specifies the algorithm that compresses the snap.

Default: "xz"
Values: "lzo" "xz"
Examples: "xz", "lzo"
donation string | string[] | null

The snap's donation links.

Default: null
Examples: "[[email protected], https://example.com/donate]"
website string | string[] | null

The links to the original software's web pages.

Default: null
Examples: "[https://example.com]"
icon string | null

The path to the snap's icon.

Default: null
Examples: "snap/gui/icon.svg"
layout object | null

The file layouts in the execution environment.

Default: null
Examples: "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
grade string | null

The quality grade of the snap.

Default: null
Examples: "stable", "devel"
architectures string | Architecture[] | null

The architectures that the snap builds and runs on.

Default: null
Examples: "[amd64, riscv64]", "[{build-on: [amd64], build-for: [amd64]}]", "[{build-on: [amd64, riscv64], build-for: [riscv64]}]"
assumes string[]

The minimum version of snapd and its features that the snap requires from the host.

Examples: "[snapd2.66, common-data-dir]"
uniqueItems=true
hooks object | null

Configures the snap's hooks.

Default: null
Examples: "{configure: {plugs: [home]}}"
passthrough object | null

The attributes to pass to the snap's metadata file.

Default: null
Examples: "{daemon: complex}"
apps object | null

The individual programs and services that the snap runs.

Default: null
Examples: "{app-1: {command: bin/app-1}}"
plugs object | null

Declares the snap's plugs.

Default: null
Examples: "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
slots object | null

Declares the snap's slots.

Default: null
Examples: "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
lint Lint | null

The linter configuration settings.

Default: null
Examples: "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
epoch string | null

The epoch associated with this version of the snap.

Default: null
Examples: "1", "2*"
system-usernames object | null

The system usernames the snap can use to run daemons and services.

Default: null
Examples: "{snap-daemon: shared}"
environment object | null

The snap's runtime environment variables.

Default: null
Examples: "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
build-packages null

The list of packages to install when building a snap.

Default: null
Examples: "[libssl-dev, libyaml-dev]"
build-snaps null

The snaps to install when building a snap.

Default: null
Examples: "[go/1.22/stable, yq]"
ua-services string[] | null

The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.

Default: null
Examples: "[esm-apps]"
provenance string | null

The primary-key header for snaps signed by third parties.

Default: null
Examples: "test-provenance"
components object | null

Declares the components to build in conjunction with the snap.

Default: null
Examples: "{foo-component: {type: standard}}"