Skip to main content Home Creators agent0ai agent-zero a0-contribute-plugin
a0-contribute-plugin Guide for publishing an Agent Zero plugin to the community Plugin Index (a0-plugins repo). Covers GitHub repo setup, index.yaml creation, CI validation rules, and PR submission. Use when the user wants to share, publish, submit, or contribute a plugin to the Plugin Hub so other Agent Zero users can find and install it.
Jump to install Skills Marketplace Discover and explore AI skills built by the community.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Copy promptShow prompt details A direct command skips the review prompt. Inspect the source before running it.
npx skills add https://github.com/agent0ai/agent-zero --skill a0-contribute-pluginThe command stays on one line. Scroll horizontally to inspect it before copying.
Prefer a local copy? Download the files currently available to SkillsMP.
Download Zip Downloading... More from this repository Create, extend, or modify Agent Zero plugins. Follows strict full-stack conventions (usr/plugins, plugin.yaml, Store Gating, AgentContext, plugin settings). Use for UI hooks, API handlers, lifecycle extensions, or plugin settings UI.
Create a new Agent Zero agent profile (subordinate). Covers where profiles live (user / plugin-distributed / project-scoped), the agent.yaml schema, the prompt inheritance & override model, and optional profile-specific tools and extensions. Use for any "create/add/new agent profile" request.
Briefly guide installing, connecting, or troubleshooting the A0 CLI on the user's host so Dockerized Agent Zero can work with real local files. Use for install A0, enable the host connector, connect local files, remote tools, host-vs-container confusion, or A0 CLI setup problems.
Related occupations SOC
Based on SOC occupation classification
name a0-contribute-plugin description Guide for publishing an Agent Zero plugin to the community Plugin Index (a0-plugins repo). Covers GitHub repo setup, index.yaml creation, CI validation rules, and PR submission. Use when the user wants to share, publish, submit, or contribute a plugin to the Plugin Hub so other Agent Zero users can find and install it. version 1.0.0 tags ["plugins","contribute","publish","plugin-hub","community","index","PR"] trigger_patterns ["contribute plugin","publish plugin","share plugin","submit plugin","contribute to plugin hub","plugin index","community plugin","open source plugin"]
Agent Zero Plugin Contribution
This skill guides publishing a plugin to the Plugin Index , making it discoverable and installable by all Agent Zero users.
Prerequisites
Before starting, verify:
Plugin exists and works locally in /a0/usr/plugins/<name>/
Plugin has been reviewed - if not, offer to run a0-review-plugin first:
"I recommend running a full review before contributing. Should I do that now?"
User has a GitHub account and git / CLI available
gh
Step 0: Ask Automation Preference Before doing any git work, ask:
"Do you want me to handle the git operations (fork, branch, commit, PR) automatically, or would you prefer I give you the steps to run manually?"
Automatic : proceed using gh and git commands via the code execution tool
Manual : provide exact commands at each step for the user to run
Step 1: Prepare the Plugin GitHub Repository The plugin must live in its own standalone GitHub repository with plugin contents at the repo root (not inside a subfolder).
Required repo structure your-plugin-repo/ <- GitHub repository root
├── plugin.yaml <- runtime manifest (REQUIRED)
├── README.md <- strongly recommended (shown in Plugin Hub detail view)
├── LICENSE <- REQUIRED for Plugin Index submission (place at repo root)
├── default_config.yaml <- optional
├── api/ <- API handlers
├── tools/ <- agent tools
├── helpers/ <- shared Python logic
├── prompts/ <- prompt templates
├── agents/ <- agent profiles
├── conf/ <- config files (e.g. model_providers.yaml)
├── extensions/ <- lifecycle, UI, and implicit @extensible hooks
└── webui/ <- frontend pages, stores, components
Inside extensions/, use python/<point>/ for named lifecycle hooks, python/_functions/<module>/<qualname>/<start|end>/ for implicit @extensible hooks, and webui/<point>/ for UI breakpoints. Do not publish the retired flattened python/<module>_<qualname>_<start|end>/ form.
Runtime plugin.yaml requirements The remote plugin.yaml must include a name field - this is validated by CI and must exactly match the index folder name:
name: my_plugin
title: My Plugin
description: What this plugin does.
version: 1.0 .0
settings_sections: []
per_project_config: false
per_agent_config: false
always_enabled: false
If the plugin was built locally, help the user create the GitHub repo and push it:
gh repo create <repo-name> --public --description "Agent Zero plugin: <title>"
git init
git add .
git commit -m "feat: initial plugin commit"
git remote add origin https://github.com/<user>/<repo-name>.git
git push -u origin main
Step 2: Choose the Index Folder Name The folder name in the index must:
Match the name field in your remote plugin.yaml exactly
Follow ^[a-z0-9_]+$ (lowercase letters, numbers, underscores - no hyphens )
Be unique in the index
Not start with _ (reserved for internal use)
Verify uniqueness by fetching the current index:
https://github.com/agent0ai/a0-plugins/releases/download/generated-index/index.json
Check that the intended name does not appear as a key in plugins.
Step 3: Create the Index Submission
Fork and set up
gh repo fork https://github.com/agent0ai/a0-plugins --clone --remote
cd a0-plugins
git checkout -b add-<plugin_name>
Create the plugin folder mkdir -p plugins/<plugin_name>
Create index.yaml The index uses index.yaml (not plugin.yaml). These are different schemas:
title: My Plugin
description: One-sentence description of what the plugin does for the user.
github: https://github.com/<user>/<repo-name>
tags:
- tools
- example
Optional additional fields:
screenshots:
- https://raw.githubusercontent.com/<user>/<repo>/main/docs/screenshot1.png
- https://raw.githubusercontent.com/<user>/<repo>/main/docs/screenshot2.webp
Recommended tags Use tags from https://github.com/agent0ai/a0-plugins/blob/main/TAGS.md (up to 5).
Common tags: tools, automation, workflow, api, web, database, memory, integration, security, development, llm, agents
Optional thumbnail Add a square image named thumbnail.png, thumbnail.jpg, or thumbnail.webp (max 20 KB, must be square aspect ratio) to plugins/<plugin_name>/.
Step 4: Pre-validate Before PR Run these checks locally before opening the PR (mirrors what CI will verify):
Check Rule index.yaml exists in plugins/<name>/Required Only index.yaml + optional thumbnail in the folder No other files/subdirs title lengthMax 50 characters description lengthMax 500 characters index.yaml total lengthMax 2000 characters tags countMax 5 screenshots countMax 5, each URL must be reachable github URLPoints to existing public repo Remote plugin.yaml Exists at repo root Remote plugin.yaml name field Matches index folder name exactly Remote LICENSE Exists at repo root (Plugin Index policy) Folder name pattern ^[a-z0-9_]+$, no leading _github URL uniquenessNot already in the index for another plugin
Verify the remote plugin.yaml name match:
curl -s https://raw.githubusercontent.com/<user>/<repo>/main/plugin.yaml | grep "^name:"
Step 5: Commit and Open PR
git add plugins/<plugin_name>/
git commit -m "feat: add <plugin_name> plugin"
git push origin add-<plugin_name>
gh pr create \
--repo agent0ai/a0-plugins \
--title "feat: add <plugin_name>" \
--body "## Plugin: <title>
<description>
- GitHub: <github_url>
- Tags: <tags>"
PR rules
One plugin per PR (adding exactly one new folder under plugins/)
CI validates automatically on open/sync/reopen
A human maintainer reviews after CI passes
If PR has no activity for 7+ days after CI failure it may be auto-closed
Two Schemas at a Glance File Location Purpose Key fields plugin.yamlYour plugin's GitHub repo root Runtime manifest (drives Agent Zero behavior) name (required!), title, description, version, settings_sections, per_project_config, per_agent_config, always_enabledindex.yamla0-plugins/plugins/<name>/Index manifest (drives discoverability) title, description, github, tags, screenshots
Never mix these up. They have different schemas and different purposes.
References