何時使用 plugins 與獨立配置
Claude Code 支援兩種方式來新增自訂 skills、agents 和 hooks:| 方法 | Skill 名稱 | 最適合 |
|---|---|---|
獨立(.claude/ 目錄) | /hello | 個人工作流程、專案特定的自訂、快速實驗 |
Plugins(包含 .claude-plugin/plugin.json 的目錄) | /plugin-name:hello | 與隊友共享、分發到社群、版本化發佈、跨專案重複使用 |
- 您正在為單一專案自訂 Claude Code
- 配置是個人的,不需要共享
- 您在將 skills 或 hooks 打包之前進行實驗
- 您想要簡短的 skill 名稱,例如
/hello或/deploy
- 您想與您的團隊或社群共享功能
- 您需要在多個專案中使用相同的 skills/agents
- 您想要版本控制和輕鬆更新您的擴展
- 您正在透過市場進行分發
- 您可以接受命名空間化的 skills,例如
/my-plugin:hello(命名空間可防止 plugins 之間的衝突)
快速入門
本快速入門將引導您建立具有自訂 skill 的 plugin。您將建立一個清單(定義您的 plugin 的配置檔案)、新增一個 skill,並使用--plugin-dir 旗標在本地進行測試。
先決條件
- Claude Code 已安裝並驗證
- Claude Code 版本 1.0.33 或更新版本(執行
claude --version以檢查)
如果您沒有看到
/plugin 命令,請將 Claude Code 更新到最新版本。如需升級說明,請參閱 Troubleshooting。建立您的第一個 plugin
建立 plugin 清單
位於 然後使用此內容建立
如需
.claude-plugin/plugin.json 的清單檔案定義您的 plugin 的身份:其名稱、描述和版本。Claude Code 使用此中繼資料在 plugin 管理器中顯示您的 plugin。在您的 plugin 資料夾內建立 .claude-plugin 目錄:my-first-plugin/.claude-plugin/plugin.json:my-first-plugin/.claude-plugin/plugin.json
| 欄位 | 用途 |
|---|---|
name | 唯一識別碼和 skill 命名空間。Skills 以此為前綴(例如 /my-first-plugin:hello)。 |
description | 在瀏覽或安裝 plugins 時在 plugin 管理器中顯示。 |
version | 使用語義版本控制追蹤發佈。 |
author | 選用。有助於歸屬。 |
homepage、repository 和 license 等其他欄位,請參閱完整清單架構。新增 skill
Skills 位於 然後使用此內容建立
skills/ 目錄中。每個 skill 是一個包含 SKILL.md 檔案的資料夾。資料夾名稱成為 skill 名稱,以 plugin 的命名空間為前綴(在名為 my-first-plugin 的 plugin 中的 hello/ 建立 /my-first-plugin:hello)。在您的 plugin 資料夾中建立一個 skill 目錄:my-first-plugin/skills/hello/SKILL.md:my-first-plugin/skills/hello/SKILL.md
測試您的 plugin
使用 Claude Code 啟動後,嘗試您的新 skill:您將看到 Claude 以問候語回應。執行
--plugin-dir 旗標執行 Claude Code 以載入您的 plugin:/help 以查看您的 skill 列在 plugin 命名空間下。為什麼要命名空間? Plugin skills 始終被命名空間化(例如
/greet:hello),以防止多個 plugins 具有相同名稱的 skills 時發生衝突。若要變更命名空間前綴,請更新 plugin.json 中的 name 欄位。新增 skill 引數
透過接受使用者輸入使您的 skill 動態化。執行 Claude 將按名稱向您問候。如需有關將引數傳遞給 skills 的更多資訊,請參閱 Skills。
$ARGUMENTS 佔位符會擷取使用者在 skill 名稱後提供的任何文字。更新您的 SKILL.md 檔案:my-first-plugin/skills/hello/SKILL.md
/reload-plugins 以取得變更,然後嘗試使用您的名稱執行 skill:- Plugin 清單 (
.claude-plugin/plugin.json):描述您的 plugin 的中繼資料 - Skills 目錄 (
skills/):包含您的自訂 skills - Skill 引數 (
$ARGUMENTS):擷取使用者輸入以實現動態行為
Plugin 結構概述
您已建立了具有 skill 的 plugin,但 plugins 可以包含更多內容:自訂 agents、hooks、MCP servers 和 LSP servers。| 目錄 | 位置 | 用途 |
|---|---|---|
.claude-plugin/ | Plugin 根目錄 | 包含 plugin.json 清單(如果元件使用預設位置,則為選用) |
commands/ | Plugin 根目錄 | 作為 Markdown 檔案的 Skills |
agents/ | Plugin 根目錄 | 自訂 agent 定義 |
skills/ | Plugin 根目錄 | 具有 SKILL.md 檔案的 Agent Skills |
hooks/ | Plugin 根目錄 | hooks.json 中的事件處理程式 |
.mcp.json | Plugin 根目錄 | MCP server 配置 |
.lsp.json | Plugin 根目錄 | 用於程式碼智慧的 LSP server 配置 |
settings.json | Plugin 根目錄 | 啟用 plugin 時應用的預設設定 |
後續步驟:準備好新增更多功能?跳至開發更複雜的 plugins 以新增 agents、hooks、MCP servers 和 LSP servers。如需所有 plugin 元件的完整技術規格,請參閱 Plugins 參考。
開發更複雜的 plugins
一旦您熟悉了基本 plugins,您就可以建立更複雜的擴展。將 Skills 新增到您的 plugin
Plugins 可以包含 Agent Skills 以擴展 Claude 的功能。Skills 是模型調用的:Claude 根據任務上下文自動使用它們。 在您的 plugin 根目錄中新增skills/ 目錄,其中包含包含 SKILL.md 檔案的 Skill 資料夾:
SKILL.md 需要包含 name 和 description 欄位的前置事項,後面跟著說明:
/reload-plugins 以載入 Skills。如需完整的 Skill 編寫指南,包括漸進式揭露和工具限制,請參閱 Agent Skills。
將 LSP servers 新增到您的 plugin
LSP(語言伺服器協議)plugins 為 Claude 提供即時程式碼智慧。如果您需要支援沒有官方 LSP plugin 的語言,您可以透過將.lsp.json 檔案新增到您的 plugin 來建立自己的:
.lsp.json
使用您的 plugin 提供預設設定
Plugins 可以在 plugin 根目錄中包含settings.json 檔案,以在啟用 plugin 時應用預設配置。目前,只支援 agent 金鑰。
設定 agent 會啟動 plugin 的其中一個自訂 agents 作為主執行緒,應用其系統提示、工具限制和模型。這讓 plugin 可以在啟用時透過預設方式變更 Claude Code 的行為。
settings.json
agents/ 目錄中定義的 security-reviewer agent。來自 settings.json 的設定優先於在 plugin.json 中宣告的 settings。未知的金鑰會被無聲地忽略。
組織複雜的 plugins
對於具有許多元件的 plugins,請按功能組織您的目錄結構。如需完整的目錄配置和組織模式,請參閱 Plugin 目錄結構。在本地測試您的 plugins
使用--plugin-dir 旗標在開發期間測試 plugins。這會直接載入您的 plugin,無需安裝。
--plugin-dir plugin 與已安裝的市場 plugin 具有相同名稱時,本地副本在該工作階段中優先。這讓您可以測試已安裝的 plugin 的變更,而無需先卸載它。由受管設定強制啟用的市場 plugins 是唯一的例外,無法被覆蓋。
當您對 plugin 進行變更時,執行 /reload-plugins 以取得更新,無需重新啟動。這會重新載入命令、skills、agents、hooks、plugin MCP servers 和 plugin LSP servers。測試您的 plugin 元件:
- 使用
/plugin-name:skill-name嘗試您的 skills - 檢查 agents 是否出現在
/agents中 - 驗證 hooks 是否按預期工作
偵錯 plugin 問題
如果您的 plugin 未按預期工作:- 檢查結構:確保您的目錄位於 plugin 根目錄,而不是在
.claude-plugin/內 - 個別測試元件:分別檢查每個命令、agent 和 hook
- 使用驗證和偵錯工具:如需 CLI 命令和故障排除技術,請參閱偵錯和開發工具
共享您的 plugins
當您的 plugin 準備好共享時:- 新增文件:包含
README.md,其中包含安裝和使用說明 - 版本化您的 plugin:在您的
plugin.json中使用語義版本控制 - 建立或使用市場:透過 plugin 市場 進行分發以進行安裝
- 與他人測試:在更廣泛的分發之前讓團隊成員測試 plugin
將您的 plugin 提交到官方市場
若要將 plugin 提交到官方 Anthropic 市場,請使用其中一個應用內提交表單:- Claude.ai:claude.ai/settings/plugins/submit
- Console:platform.claude.com/plugins/submit
如需完整的技術規格、偵錯技術和分發策略,請參閱 Plugins 參考。
將現有配置轉換為 plugins
如果您已經在.claude/ 目錄中有 skills 或 hooks,您可以將它們轉換為 plugin,以便更輕鬆地共享和分發。
遷移步驟
建立 plugin 結構
建立新的 plugin 目錄:在
my-plugin/.claude-plugin/plugin.json 建立清單檔案:my-plugin/.claude-plugin/plugin.json
遷移 hooks
如果您在設定中有 hooks,請建立一個 hooks 目錄:使用您的 hooks 配置建立
my-plugin/hooks/hooks.json。從您的 .claude/settings.json 或 settings.local.json 複製 hooks 物件,因為格式相同。命令在 stdin 上接收 hook 輸入作為 JSON,因此使用 jq 來提取檔案路徑:my-plugin/hooks/hooks.json
遷移時的變更
獨立(.claude/) | Plugin |
|---|---|
| 僅在一個專案中可用 | 可以透過市場共享 |
.claude/commands/ 中的檔案 | plugin-name/commands/ 中的檔案 |
settings.json 中的 Hooks | hooks/hooks.json 中的 Hooks |
| 必須手動複製以共享 | 使用 /plugin install 安裝 |
遷移後,您可以從
.claude/ 中移除原始檔案以避免重複。載入時,plugin 版本將優先。後續步驟
現在您已了解 Claude Code 的 plugin 系統,以下是針對不同目標的建議路徑:對於 plugin 使用者
- 探索和安裝 plugins:瀏覽市場並安裝 plugins
- 配置團隊市場:為您的團隊設定儲存庫級別的 plugins