A forkable template for engineering teams to create their own Claude Code plugin marketplace. Fork this repo, customize the placeholders, and give your team shared engineering standards, onboarding tools, and automated workflows.
- Fork this repo (or click "Use this template" on GitHub)
- Rename the marketplace in
.claude-plugin/marketplace.json— change"name"to match your GitHub repo (e.g.,"my-org-claude-plugins") - Customize the plugin — replace
{YOUR_*}placeholders inteam1-plugin/(see Customization Guide) - Add the marketplace in Claude Code:
/plugin marketplace add your-org/your-repo-name - Install the plugin:
/plugin install team1-plugin@your-marketplace-name
| Component | Description |
|---|---|
| CLAUDE.md + SessionStart hook | Engineering standards auto-loaded every session |
/team1-plugin:setup-dependencies |
Check and install required dev tools (onboarding) |
/team1-plugin:create-pr-flow [title] |
Run checks, commit, push, and create a PR |
See team1-plugin/README.md for details.
.
├── .claude-plugin/
│ └── marketplace.json # Marketplace manifest (rename "name" to your repo)
├── team1-plugin/ # Your first plugin
│ ├── .claude-plugin/
│ │ └── plugin.json # Plugin manifest
│ ├── hooks/
│ │ └── hooks.json # SessionStart hook → loads CLAUDE.md
│ ├── skills/
│ │ ├── setup-dependencies/
│ │ │ └── SKILL.md # Onboarding dependency checker
│ │ └── create-pr-flow/
│ │ └── SKILL.md # PR workflow automation
│ ├── CLAUDE.md # Engineering standards (customize this!)
│ ├── README.md
│ └── EXAMPLES.md
└── README.md # This file
Edit .claude-plugin/marketplace.json:
"name"— must match your GitHub repo name (used in install commands)"owner"— your team or org name
Edit team1-plugin/.claude-plugin/plugin.json:
"name"— rename if you want a different plugin name"author"— your team name
Edit team1-plugin/CLAUDE.md — replace all {YOUR_*} placeholders:
{YOUR_TEAM},{YOUR_COMPANY}— team and company name{YOUR_LANGUAGE}— preferred language{YOUR_LINT_COMMAND},{YOUR_BUILD_COMMAND},{YOUR_TEST_COMMAND},{YOUR_FORMAT_COMMAND}— your actual CLI commands{YOUR_PATTERN},{YOUR_PACKAGE_NOTES}— branch naming and conventions
Edit team1-plugin/skills/setup-dependencies/SKILL.md:
- Replace
{YOUR_TOOL},{YOUR_PLUGIN},{YOUR_MCP}with your team's actual dependencies - Add or remove checks as needed
Edit team1-plugin/skills/create-pr-flow/SKILL.md:
- Replace
{YOUR_*_COMMAND}placeholders (must match your CLAUDE.md) - Replace
{YOUR_TICKET_PREFIX}with your ticket system prefix
- Create a new directory:
my-second-plugin/ - Add
.claude-plugin/plugin.jsoninside it - Add skills, hooks, or agents as needed
- Register it in
.claude-plugin/marketplace.json:{ "name": "my-second-plugin", "source": "./my-second-plugin", "description": "What this plugin does" }
Test your plugin without installing:
claude --plugin-dir ./team1-pluginValidate the marketplace:
claude plugin validate .- Create plugins — Anthropic's plugin authoring guide
- Plugin marketplaces — Marketplace creation and distribution
- Skills reference — SKILL.md format and frontmatter
- Plugins reference — Complete technical specifications