Distribution
A plugin does not have to live in your workspace first. Cadence keeps a curated catalog of external plugins. The CLI installs any of them by name. The catalog is plugins/marketplace.json in the ship tree. Only listed repositories appear. There is no open registry.
The same catalog backs assistant plugins search and the Plugins tab. A missing or malformed manifest yields an empty catalog.
Publishing
- Push the plugin to a public GitHub repo. Pin a full commit SHA (40 or 64 hex). Tags and branches are rejected because they are mutable.
- Open a PR against Aevum-Project/cadence-assistant adding an entry to
plugins/marketplace.json. - Review checks that the pin is reachable,
package.jsonhas a@aevumcadence/plugin-apipeer, and the plugin loads cleanly.
{
"name": "example-plugin",
"source": {
"source": "github",
"repo": "example-org/example-plugin",
"ref": "e83c5163316f89bfbde7d9ab23ca2e25604af290"
},
"description": "One-line summary shown in the catalog.",
"category": "productivity",
"homepage": "https://github.com/example-org/example-plugin",
"license": "MIT"
}
name must be a single kebab-case segment. Required fields are name, source.source, source.repo, and source.ref.
Installing
assistant plugins search notes
assistant plugins install example-plugin
assistant plugins list
assistant plugins inspect example-plugin
assistant plugins upgrade example-plugin
assistant plugins uninstall example-plugin
Install clones the pinned commit into <workspace>/plugins/<name>/. The plugins command group is still stabilizing; treat it as the supported path once the flag is on in your build.
GitHub URL (untrusted)
Pass a URL or owner/repo instead of a catalog name to install before an entry is reviewed. The CLI warns. Hooks and tools then run inside the assistant with full access. Install only if you trust the source. Marketplace-only flags (--ref, --pin) do not apply. The ref lives in the URL.
assistant plugins install https://github.com/example-org/example-plugin
assistant plugins install example-org/example-plugin --name my-plugin --force
Updates
Installs stay on the commit they were installed at until you upgrade, or until a workspace opts into pluginUpdates.mode: auto. Only curated marketplace installs are swept. Untrusted URL installs stay put until you run assistant plugins upgrade yourself.
inspect reports up-to-date, update-available, not-installed, not-in-marketplace, unknown-provenance, or remote-unavailable. Local edits to plugin source are overwritten on upgrade. config.json, data/, and .disabled are preserved.
Adapters
A marketplace entry can name a small postinstall adapter that reshapes a cloned tree into Cadence layout. The adapter runs in the install sandbox with filesystem access limited to the plugin directory. No network during adapt.
See Plugins and marketplace.json.