A Claude plugin marketplace. One repo, referenced from both Claude Code and claude.ai.
Claude Code
/plugin marketplace add <your-github-user>/toolshed
/plugin install prompt-spec@toolshed
If the install summary says Run /reload-plugins to activate., run that.
claude.ai / Claude Desktop
Customize menu → Plugins tab → Personal plugins → + → Add marketplace →
add from a GitHub repository, using the same owner/repo.
| Plugin | What it does |
|---|---|
prompt-spec |
Runs a seven-point interview (Material, Constraints, Example, Format, Done, Audience, Role) and compiles the answers into an executable spec. |
plugins/<plugin-name>/
├── .claude-plugin/
│ └── plugin.json ← name + description, required
├── skills/
│ └── <skill-name>/
│ ├── SKILL.md ← name + description frontmatter, required
│ └── references/ ← optional, loaded on demand
├── agents/ ← optional, Claude Code subagents only
├── commands/ ← optional, flat .md files become slash commands
└── .mcp.json ← optional
Then add an entry to .claude-plugin/marketplace.json:
{
"name": "<plugin-name>",
"source": "./<plugin-name>",
"description": "..."
}metadata.pluginRoot is set to ./plugins, so sources are written relative to
that directory rather than the repo root.
No version field is declared in plugin.json or the marketplace entries. That's
deliberate: with a git source, Claude resolves the version from the commit SHA, so
every push is picked up automatically. If you add a version string, it pins the
plugin and you have to bump it on every release or users keep the cached copy.
claude plugin validate . # the marketplace
claude plugin validate ./plugins/prompt-spec # one plugin's manifest and frontmatter
Test locally without pushing:
/plugin marketplace add ./toolshed
- Plugin and marketplace names must be kebab-case. claude.ai's marketplace sync rejects other forms even though Claude Code accepts them.
- Plugins are copied into a cache on install, so nothing can reference files
outside its own plugin directory (
../shared/will not resolve). agents/only does something in Claude Code. Write anything that needs to work in both surfaces as a skill.