Publish a community plugin
List your plugin with one pull request. The catalog stores only a pointer to your source, and nothing runs until someone installs it.
Host your plugin publicly
Push your plugin to a public git repository or publish it to npm. Tag releases so the entry can pin a
ref. New to plugins? Start withzcc plugin new <name>.Add your entry
Create
entries/<plugin-id>.jsonin the marketplace repository. Fork the repository first. The button opens a pre-filled file on GitHub; propose it on a branch to start a pull request.Build and open the pull request
From a clone of the repository, regenerate the manifest and this website, then commit everything together:
$npm ci && npm run build && npm test && git add entries marketplace.json docsOnce it merges, your plugin appears here and in Zana's Browse view on the next catalog refresh.
Example entry
The site block is for this website only and is removed from marketplace.json.
{
"id": "my-plugin",
"displayName": "My plugin",
"description": "One sentence shown on the catalog card.",
"overview": "A longer explanation for the plugin page: what it does, what it needs (CLIs, org aliases, permissions) and any caveats.",
"icon": {
"lucide": "Puzzle"
},
"tags": [
"developer-tools"
],
"author": {
"name": "Your name or team",
"url": "https://github.com/your-name"
},
"source": {
"git": {
"url": "https://github.com/your-name/zcc-plugin-my-plugin.git",
"ref": "v1.0.0"
}
},
"site": {
"category": "Developer Tools",
"addedAt": "2026-01-31"
}
}
Fields
| Field | Requirement | Meaning |
|---|---|---|
id | Required | Slug (a–z, 0–9, -). Must equal the file name stem. |
displayName | Required | Name on the card and plugin page. |
description | Required | One sentence for the card. |
author.name | Required | Team or person; add author.url to link it. |
source.git / source.npm | Required | Where Zana installs from: a public git repository (url, optional subdir and ref) or a published npm package (package, range). |
overview | Optional | Longer text for the plugin page (max 4000 characters). Blank lines start new paragraphs. |
tags, icon | Optional | Search keywords; icon.url (https) is shown on the website. |
site.category | Website | Groups the plugin on the website (max 40 characters). Defaults to "More plugins". |
site.addedAt | Website | YYYY-MM-DD; drives "New & notable" and the New sort. |
site.badge | Website | Short label next to the name, e.g. "Beta" (max 24 characters). |
site.screenshots | Website | Up to 6 https image URLs for the plugin page. |
site.featured | Website | Reserved for catalog maintainers. |
Keep listings accurate and sources public. A listing is not an endorsement or a security audit. Each plugin keeps its own license.