What is devmode for snaps?

I have heard about the ability to use snaps in developer mode.

What is this mode and what can I use it for?


Developer mode, or devmode in short, enables developers and users to install snaps without enforcing security policies. E.g.

sudo snap install notes --devmode

When installed this way, snaps behave in a similar way to traditional .deb packages in terms of accessing system resources. That is, snaps have access to the system without being restricted by app isolation and interfaces.

Developer mode is useful when:

  • Testing a snap in the first stages of development to ensure it runs as expected
  • Temporarily bypassing security enforcement if there is not yet an interface available that controls a particular system access required by the snap

As a developer, you can also relax security requirements at the snapcraft.yaml level by declaring devmode confinement instead of strict

confinement: devmode

You'll be then flagging users that this app specifically needs to be installed with --devmode to work. Not specifying the switch will result in failure to install.

That is, users will have to specifically acknowledge that they will install your snap in developer mode.