All articles
Building a plugin
Plugin ids and namespaces
Why a new plugin id needs a namespace, and how to get one with a domain or a GitHub account.
Every plugin has a reverse-DNS id, such as com.example.flow-tower. It never changes, and
PrusaSlicer installs plugins by it. So that nobody can publish under a name that is not theirs, a
new id must be in a namespace you hold. This is how Maven Central handles package names.
There are two ways to get a namespace. Both are under Namespaces in the author console.
A domain you own
- Enter the domain, e.g.
example.com. A subdomain works too:plugins.example.comgives youcom.example.plugins.*. - Add the TXT record you are shown to the domain’s DNS.
- Press Verify. From then on
com.example.*is yours, and nobody else can create ids in it.
Type TXT
Name _prusa-plugin-marketplace.example.com
Value prusa-plugin-marketplace-verification=...
DNS changes can take a while to spread. If Verify does not find the record yet, try again later.
Your GitHub account
Use ids like io.github.<account>.<plugin>, for example io.github.your-account.flow-tower. There
is nothing to verify by hand: the first release you publish
from GitHub Actions in a repository of that account proves it, and the
namespace then appears in your console.
Good to know
- Ids that read “prusa” are reserved for Prusa Research, whoever owns the domain or the account.
- The most specific namespace wins: if someone else verified
team.example.com, you cannot create ids undercom.example.teameven though you holdcom.example. - Plugins you published before namespaces existed keep their ids and keep publishing.
- Need a namespace you cannot prove this way? Ask the marketplace team.