claude-code-plugin
8
总安装量
4
周安装量
#35600
全站排名
安装命令
npx skills add https://github.com/miles990/claude-software-skills --skill claude-code-plugin
Agent 安装分布
opencode
4
gemini-cli
4
antigravity
4
windsurf
4
codex
4
Skill 文档
Claude Code Plugin 宿´æå
建ç«ãç¼å¸ãå®è£ãæ´æ°ã忥 Claude Code Plugin ç宿´æå
é©ç¨å ´æ¯
- éç¼æ°ç Claude Code Plugin
- ç¼å¸ Plugin å° Marketplace
- å®è£åæ´æ° Plugin
- 管ç Plugin çæ¬
- åæ¥ææ°çæ¬
- 建ç«èªè¨ Marketplace
Part 1: Plugin æ¶æ§
ç®éçµæ§
my-plugin/
âââ .claude-plugin/
â âââ plugin.json # Plugin manifestï¼å¿
è¦ï¼
â âââ marketplace.json # Marketplace ç´¢å¼ï¼é¸ç¨ï¼
âââ commands/ # Slash å½ä»¤ï¼å¨æ ¹ç®éï¼ï¼
â âââ my-command.md
âââ skills/ # Agent Skills
â âââ my-skill/
â âââ SKILL.md
âââ hooks/
â âââ hooks.json # Hook é
ç½®
âââ agents/ # Subagent å®ç¾©
âââ .mcp.json # MCP 伺æå¨é
ç½®
âââ CHANGELOG.md
âââ README.md
â ï¸ éè¦ï¼commands/ãskills/ãhooks/ å¿ é 卿 ¹ç®éï¼ä¸è¦æ¾é² .claude-plugin/
plugin.json è¦ç¯
{
"name": "my-plugin",
"version": "1.0.0",
"description": "Plugin åè½æè¿°",
"author": {
"name": "ä½è
å稱",
"email": "email@example.com"
},
"license": "MIT",
"keywords": ["keyword1", "keyword2"]
}
å大çµä»¶
| çµä»¶ | ç¨é | è§¸ç¼æ¹å¼ | æªæ¡æ ¼å¼ |
|---|---|---|---|
| Commands | ç¨æ¶å·è¡çæç·å½ä»¤ | /command æå |
Markdown |
| Skills | æ Claude å¦ä½åäº | èªåæ ¹æä¸ä¸æ | SKILL.md |
| Hooks | äºä»¶é© åèªåå | 系統äºä»¶è§¸ç¼ | JSON + Shell |
| MCP | æä¾å·¥å ·è½å | Claude å¼å« | .mcp.json |
Part 2: ç¼å¸ Plugin
æ¹å¼ä¸ï¼GitHub Marketplaceï¼æ¨è¦ï¼
Step 1: å»ºç« marketplace.json
{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
"name": "my-marketplace",
"description": "æç Plugin éå",
"owner": {
"name": "username",
"email": "email@example.com"
},
"plugins": [
{
"name": "my-plugin",
"version": "1.0.0",
"source": "./",
"description": "Plugin æè¿°",
"category": "development"
}
]
}
Step 2: æ¨éå° GitHub
git add .
git commit -m "feat: add Plugin marketplace format"
git tag -a v1.0.0 -m "Release v1.0.0"
git push origin main
git push origin v1.0.0
Step 3: ç¨æ¶å®è£
# æ·»å marketplace
/plugin marketplace add owner/repo
# å®è£ plugin
/plugin install my-plugin@my-marketplace
æ¹å¼äºï¼npm ç¼å¸
# 1. å¨ package.json ä¸å½åï¼å claude-plugin- åç¶´ï¼
{
"name": "claude-plugin-my-plugin",
"version": "1.0.0"
}
# 2. ç¼å¸
npm publish
# 3. ç¨æ¶å®è£
npm install -g claude-plugin-my-plugin
æ¹å¼ä¸ï¼ç´æ¥å享
# ç¨æ¶ä¸è¼å¾æ¬å°å®è£
/plugin install /path/to/my-plugin
Part 3: å®è£ Plugin
å¾ Marketplace å®è£
# 1. å
æ·»å marketplaceï¼åªé䏿¬¡ï¼
/plugin marketplace add owner/repo
# 2. ååºå¯ç¨ plugins
/plugin marketplace list
# 3. å®è£ plugin
/plugin install plugin-name@marketplace-name
å¾ GitHub ç´æ¥å®è£
# 宿´è·¯å¾å®è£
/plugin install github:owner/repo#path/to/plugin
# ç¯ä¾
/plugin install github:miles990/evolve-plugin
æ¬å°å®è£
# 徿¬å°ç®éå®è£
/plugin install /path/to/my-plugin
æ¥çå·²å®è£
# ååºææå·²å®è£ç plugins
/plugin list
# æ¥ç詳細è³è¨
/plugin info plugin-name@marketplace
è§£é¤å®è£
# è§£é¤å®è£ç¹å® plugin
/plugin uninstall plugin-name@marketplace
# ç¯ä¾
/plugin uninstall evolve@evolve-plugin
# å¼·å¶è§£é¤å®è£ï¼å¿½ç¥ç¸ä¾æ§ï¼
/plugin uninstall plugin-name@marketplace --force
è§£é¤å®è£æ³¨æäºé ï¼
- è§£é¤å®è£ä¸æç§»é¤ marketplaceï¼åªç§»é¤å·²å®è£ç plugin
- å¦æå ¶ä» plugin ä¾è³´æ¤ pluginï¼æè¦å
- è§£é¤å®è£å¾å¯é¨æéæ°å®è£
Part 4: æ´æ° Plugin
æª¢æ¥æ´æ°
# æª¢æ¥ææ plugins æ¯å¦ææ´æ°
/plugin update --check
# 檢æ¥ç¹å® plugin
/plugin update --check plugin-name@marketplace
å·è¡æ´æ°
# æ´æ°ç¹å® plugin
/plugin update plugin-name@marketplace
# æ´æ°ææ plugins
/plugin update --all
èªåçæ¬æª¢æ¥æµç¨
æ¬å°çæ¬ â é ç«¯çæ¬ â æ¯è¼
â â
plugin.json GitHub API / marketplace.json
â
è¥é ç«¯è¼æ° â æç¤ºç¨æ¶æ´æ°
æåçæ¬æª¢æ¥
# å徿¬å°çæ¬
cat ~/.claude/plugins/installed_plugins.json | jq '.plugins["plugin@marketplace"][0].version'
# åå¾é ç«¯çæ¬
curl -s https://raw.githubusercontent.com/owner/repo/main/.claude-plugin/plugin.json | jq -r '.version'
Part 5: çæ¬æ§ç®¡
çæ¬ä½ç½®ï¼å¿ é 忥ï¼
| ä½ç½® | 說æ |
|---|---|
.claude-plugin/plugin.json |
Plugin manifest |
.claude-plugin/marketplace.json |
Marketplace ç´¢å¼ |
skills/*/SKILL.md |
Skill çæ¬ï¼å¦é©ç¨ï¼ |
CHANGELOG.md |
è®æ´è¨é |
| Git tag | ç¼å¸æ¨è¨ |
èªæåçæ¬
MAJOR.MINOR.PATCH
â â âââ Bug fixesï¼ä¿®å¾©ï¼
â âââ æ°åè½ï¼åå¾ç¸å®¹ï¼
âââ ç ´å£æ§è®æ´ï¼ä¸ç¸å®¹ï¼
ç¼å¸æª¢æ¥æ¸ å®
# æ´æ°ææçæ¬ä½ç½®
- [ ] plugin.json â version
- [ ] marketplace.json â plugins[].version
- [ ] SKILL.md â version: (å¦é©ç¨)
- [ ] CHANGELOG.md â æ°æ¢ç®
- [ ] README.md â çæ¬å¾½ç«
# Git æä½
git add .
git commit -m "chore: bump version to vX.Y.Z"
git tag -a vX.Y.Z -m "Release vX.Y.Z: æè¿°"
git push origin main
git push origin vX.Y.Z
CHANGELOG.md æ ¼å¼
## [1.1.0] - 2026-01-16
### Added
- æ°åè½æè¿°
### Changed
- è®æ´æè¿°
### Fixed
- 修復æè¿°
### Security
- å®å
¨ä¿®å¾©
Part 6: åæ¥ææ°çæ¬
å¾ä¸» repo 忥å°ç¨ç« plugin repo
ç¶ plugin æ¯å¾ä¸»å°æ¡åé¢åºä¾æï¼
# 1. è¤è£½ skills ç®é
cp -r /path/to/main-project/skills /path/to/plugin-repo/
# 2. æ´æ°çæ¬
# 編輯 plugin.json, marketplace.json
# 3. æäº¤ä¸¦æ¨é
cd /path/to/plugin-repo
git add -A
git commit -m "chore: sync with main-project vX.Y.Z"
git push origin main
åæ¥è ³æ¬ç¯ä¾
#!/bin/bash
# sync-plugin.sh - 忥 plugin å°ç¨ç« repo
MAIN_REPO="$1"
PLUGIN_REPO="$2"
VERSION="$3"
# è¤è£½ skills
rm -rf "$PLUGIN_REPO/skills"
cp -r "$MAIN_REPO/skills" "$PLUGIN_REPO/"
# æ´æ°çæ¬
sed -i '' "s/\"version\": \".*\"/\"version\": \"$VERSION\"/" \
"$PLUGIN_REPO/.claude-plugin/plugin.json"
# æäº¤
cd "$PLUGIN_REPO"
git add -A
git commit -m "chore: sync with main-project v$VERSION"
git push origin main
èªå忥ï¼ä½¿ç¨ GitHub Actionsï¼
# .github/workflows/sync-plugin.yml
name: Sync Plugin
on:
push:
branches: [main]
paths:
- 'skills/**'
- 'evolve-plugin/**'
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Sync to plugin repo
run: |
# Clone plugin repo
git clone https://github.com/owner/plugin-repo.git
# Copy files
cp -r skills/ plugin-repo/
cp evolve-plugin/.claude-plugin/* plugin-repo/.claude-plugin/
# Push
cd plugin-repo
git add -A
git commit -m "chore: auto-sync from main repo"
git push
Part 7: Marketplace 管ç
建ç«èªå·±ç Marketplace
Step 1: å»ºç« marketplace.json
{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
"name": "my-marketplace",
"description": "æç Plugin éå",
"owner": {
"name": "username"
},
"plugins": [
{
"name": "plugin-a",
"version": "1.0.0",
"source": "./plugin-a",
"description": "Plugin A æè¿°",
"category": "development"
},
{
"name": "plugin-b",
"version": "2.0.0",
"source": "./plugin-b",
"description": "Plugin B æè¿°",
"category": "productivity"
}
]
}
Step 2: çµç¹ç®éçµæ§
my-marketplace/
âââ .claude-plugin/
â âââ marketplace.json
âââ plugin-a/
â âââ .claude-plugin/
â â âââ plugin.json
â âââ commands/
â âââ skills/
âââ plugin-b/
â âââ .claude-plugin/
â â âââ plugin.json
â âââ commands/
âââ README.md
管ç已添å ç Marketplace
# ååºå·²æ·»å ç marketplaces
/plugin marketplace list
# æ·»å æ° marketplace
/plugin marketplace add owner/repo
# ç§»é¤ marketplace
/plugin marketplace remove marketplace-name
# æ´æ° marketplace ç´¢å¼
/plugin marketplace refresh
å·²ç¥ Marketplaces å²åä½ç½®
~/.claude/plugins/known_marketplaces.json
Part 8: Hooks éç¼
Hook äºä»¶é¡å
| äºä»¶ | ææ© | ç¨é |
|---|---|---|
| PreToolUse | å·¥å ·å·è¡å | 黿/ä¿®æ¹å·¥å ·èª¿ç¨ |
| PostToolUse | å·¥å ·å·è¡å¾ | å¾èçãéç¥ |
| UserPromptSubmit | ç¨æ¶è¼¸å ¥æ | è¼¸å ¥é©è |
| SessionStart | æè©±éå§ | åå§å |
| SessionEnd | æè©±çµæ | æ¸ ç |
| Stop | AI å®æåæ | å¾èç |
| SubagentStop | Subagent 宿 | åä»»åèç |
hooks.json é ç½®
{
"hooks": [
{
"type": "command",
"event": "PreToolUse",
"command": "./hooks/protect-env.sh"
},
{
"type": "command",
"event": "PostToolUse",
"command": "./hooks/format-code.sh"
},
{
"type": "command",
"event": "SessionStart",
"command": "./hooks/init.sh"
}
]
}
ç¯ä¾ Hookï¼ä¿è·æææªæ¡
#!/bin/bash
# hooks/protect-env.sh
FILE_PATH=$(echo "$1" | jq -r '.tool.input.path // .tool.input.file_path // empty')
if [[ "$FILE_PATH" =~ \.(env|key|secret|credentials)$ ]]; then
echo '{"decision": "block", "reason": "Protected file type"}' >&2
exit 1
fi
exit 0
ç¯ä¾ Hookï¼èªåæ ¼å¼å
#!/bin/bash
# hooks/format-code.sh
FILE_PATH=$(echo "$1" | jq -r '.tool.input.path // empty')
if [[ "$FILE_PATH" =~ \.(ts|tsx|js|jsx)$ ]]; then
prettier --write "$FILE_PATH" 2>/dev/null
fi
exit 0
Part 9: 常è¦é¯èª¤è解決
Sharp Edges
SE-1: ç®éçµæ§é¯èª¤
- å´é度: critical
- çç:
/plugin list顯示 plugin ä½å½ä»¤ä¸åå¨ - åå : commands/ãskills/ æ¾é² .claude-plugin/ ç®é
- 解決: æææçµä»¶ç®éç§»å° plugin æ ¹ç®é
SE-2: çæ¬ä¸åæ¥
- å´é度: high
- çç:
/plugin listè CHANGELOG çæ¬ä¸ç¬¦ - åå : plugin.jsonãmarketplace.json çæ¬ä¸ä¸è´
- 解決: 建ç«ç¼å¸ checklistï¼æ¯æ¬¡é½æª¢æ¥ææä½ç½®
SE-3: Hook æ¬ééé«
- å´é度: high
- çç: æå¤çæªæ¡è®æ´ãæ¸æä¸å¤±
- åå : Hook ä»¥ç¨æ¶æ¬éå·è¡ï¼ç¯å太廣
- 解決: 精確æå® Hook ç®æ¨ï¼å å ¥å®å ¨æª¢æ¥
SE-4: MCP Prompt Injection
- å´é度: critical
- çç: Claude å·è¡æå¤æä½
- åå : MCP å¾ä¸ä¿¡ä»»ä¾æºç²åå §å®¹
- 解決: åªä½¿ç¨ä¿¡ä»»ä¾æºç MCP
常è¦é¯èª¤å°ç §è¡¨
| é¯èª¤ | æ£ç¢ºåæ³ |
|---|---|
| æ commands/ æ¾é² .claude-plugin/ | æ¾å¨ plugin æ ¹ç®é |
| çæ¬èä¸ä¸è´ | åæ¥æ´æ°ææä½ç½® |
| Hook ç¯å太廣 | 精確æå®ç®æ¨å·¥å · |
| å¿è¨ git tag | æ¯æ¬¡ç¼å¸é½è¦ tag |
| ç´æ¥ä¸ç·æªæ¸¬è©¦ | å ç¨ –plugin-dir 測試 |
Part 10: æ¬å°æ¸¬è©¦
# 測試 pluginï¼ä¸å®è£ï¼
claude-code --plugin-dir /path/to/my-plugin
# é©èçµæ§
tree /path/to/my-plugin
# æª¢æ¥ plugin.json èªæ³
cat /path/to/my-plugin/.claude-plugin/plugin.json | jq .
# é©è hooks
cat /path/to/my-plugin/hooks/hooks.json | jq .
宿¹ææª
- Plugins
- Plugins Reference
- Plugin Marketplaces
- Hooks Guide
- Hooks Reference
- Skills
- MCP
- Subagents
- Slash Commands
å»¶ä¼¸è³æº
- Claude Code GitHub
- Official Plugins
- evolve-plugin ç¯ä¾ï¼åè
evolve-plugin/.claude-plugin/çµæ§