Registering and Submitting a Plugin
There are two separate steps in the Adagio plugin workflow:
- register it with an Adagio environment so Adagio can see the plugin actions
- request public visibility if you want other users to see it as a community or official plugin
Registering through the CLI creates a private plugin entry by default.
Before you submit
Prepare three things:
- a QIIME 2 environment with your plugin installed
- a container image that can run the plugin
- a scoped QAPI submission token from Adagio
1. Install the plugin in the QIIME 2 environment you will inspect
Install or update your plugin in the active environment, then refresh the QIIME cache:
pip install -e /path/to/your-pluginqiime dev refresh-cacheadagio qapi build reads the currently active QIIME 2 environment, so make sure you are in the environment you intend to submit from.
2. Prepare a runnable image
If you want the default Adagio image resolver to pick up your plugin automatically, the image naming convention is:
ghcr.io/cymis/qiime2-plugin-<plugin-name>:<tag>If you are not publishing into that default image set, users can still run the plugin with a runtime config that points to your own Docker or Apptainer image. See Runtime Configuration.
3. Create a QAPI submission token in Adagio
In the Adagio app:
- sign in
- open Profile
- create a QAPI Submission Token
- copy it immediately, because it is shown only once
Token notes:
- tokens are short-lived bearer tokens
- they can be created for 1 to 168 hours
- they are meant for CLI submission only
- you can revoke them later from the same Profile page
Submit from the command line
Set the Adagio API base URL and token:
export ACTION_URL="https://adagio.run/api/v1"export QAPI_SUBMISSION_TOKEN="paste-token-here"Preview the submission first:
adagio qapi build --plugin my-plugin --dry-runThen submit:
adagio qapi build --plugin my-pluginUseful variations:
adagio qapi build --plugin my-plugin --output qapi.jsonadagio qapi build --plugin my-plugin,other-plugin --dry-runadagio qapi build --plugin my-plugin --force-overwriteUse --force-overwrite only when you mean to replace your own existing private submission for the same QIIME version.
What the submission creates
CLI submission creates a private plugin record for:
- the submitted QIIME version
- the authenticated owner
- the submitted plugin name
Private plugins are visible only to the submitting user inside Adagio.
If a plugin name exists both publicly and privately, the submitting user’s private version takes precedence in that user’s catalog view.
Plugin visibility states
Adagio recognizes three plugin states:
- private: submitted by a user through the CLI; visible only to that owner
- community: public, but not maintainer-endorsed as a core supported plugin
- official: public and maintainer-endorsed
There is currently no self-serve CLI flag to publish directly as community or official. Public visibility is managed by Adagio maintainers.
Requesting public visibility
If you want your plugin added to the public Adagio catalog or to the default image set, open an issue in the main Adagio repository and include:
- plugin name
- source repository
- container image reference
- supported QIIME version
- short description of what the plugin is for
- whether you are requesting
communityorofficialvisibility - who will maintain and support it
Maintainers may route follow-up work into the images repository or other internal publication workflows as needed.
When to re-submit
Re-submit after interface changes such as:
- renamed actions
- changed inputs, parameters, or outputs
- changed semantic types
- changed defaults
If the interface did not change, users can usually keep the existing registration and only update the runtime image they execute.