Comma-separated. Powers marketplace search.
User configuration
Prompted at plugin enable time. Values are available as ${user_config.KEY} in MCP configs and hook commands, and exported as CLAUDE_PLUGIN_OPTION_KEY env vars. Mark sensitive fields to store them in the system
keychain.
No config fields yet.
Executables (bin/)
Files shipped in bin/ land on the Bash tool's PATH while your plugin is enabled. The generated README reminds users to chmod +x after unzipping.
No files yet.
Commands (legacy flat markdown)
commands/ is the legacy flat format — use skills/ for new plugins. Shipped here for importing older plugins or authoring single-file commands.
No files yet.
Output styles
Custom response formatting definitions. Each file becomes an output-style Claude can switch into.
No files yet.
Install your plugin
Download the ZIP, unzip it, then run one of these.
claude --plugin-dir ./my-plugin /reload-plugins /plugin marketplace add owner/repo To share this plugin with others, publish it to a GitHub repo and add it to a marketplace. Learn more →
Share your plugin
Generate install commands, a markdown badge, and an embeddable HTML snippet for others to add to their docs. Set your Repository URL in the metadata section for accurate links.
/plugin marketplace add your-username/your-repo codex plugin install your-username/your-repo [](https://github.com/your-username/your-repo) <a href="https://github.com/your-username/your-repo"> <img src="/api/card.svg?name=plugin&desc=&skills=0" alt="Install plugin" width="600" /> </a>
From template ▾
Use ${CLAUDE_PLUGIN_ROOT} to reference files inside your plugin.
Add an MCP server above before wiring a channel.
Users must install the language server binary separately. Common languages already have official plugins — use this for niche or custom languages.