claude plugin,或在 Claude Code 工作階段內執行 /plugin 和 /reload-plugins。本參考提供每個命令的旗標、預設值、輸出和結束代碼,以及在單一工作階段中載入 plugin 的兩個旗標。
在您的組建上執行 claude plugin --help 以確認您的版本有哪些子命令。
這些情況涵蓋在其他頁面上:
- 安裝和管理步驟,以及
/plugin執行的位置:請參閱 安裝和管理 plugins - 命令在磁碟上變更的內容以及哪個範圍優先:請參閱 Plugin 載入參考
- 錯誤訊息的含義:請參閱 Troubleshoot plugins
claude plugin 命令
從 shell 或指令碼執行claude plugin <subcommand>,在 Claude Code 工作階段外。這些子命令安裝和管理 plugins,而不開啟 /plugin 面板。
claude plugins 是 claude plugin 的別名。
每個子命令共享這些結束代碼、plugin 引數和範圍值:
- 結束代碼:成功時為
0,失敗時為1。validate為非預期錯誤新增結束2,eval新增 其部分 中列出的代碼。 - Plugin 引數:
<plugin>引數是 pluginname或name@marketplace。當兩個市場提供相同名稱時,使用限定形式。 - 範圍:
--scope接受user、project或local,並命名命令寫入的設定檔。update也接受managed。
plugin init
在~/.claude/skills/<name>/ 建立新 plugin 的架構。它在您的下一個工作階段中以 <name>@skills-dir 的形式載入,無需安裝步驟。
new 是 init 的別名。
對於以此命令開始的建立、測試和編輯工作流程,請參閱 建立 plugin。
<name> 成為 ~/.claude/skills/ 下的目錄名稱和 plugin 的 manifest 中的 name。
該命令沒有另一個位置的旗標。若要改為在專案內建立架構,請參閱 建立 plugin。
使用起始 skill 和 hook 檔案建立 plugin 的架構:
Created plugin "my-helper" at ~/.claude/skills/my-helper,後面跟著它載入的 id 和關閉它的 claude plugin disable 命令。
當 Claude Code 無法安全地建立架構時,它會結束 1 而不寫入,訊息會命名原因。這些是常見原因:
- 未知的
--with值 - 目標處現有的架構,沒有
--force - 阻止 skills-directory plugins 的受管設定
plugin install
從您已新增的市場安裝 plugin。i 是 install 的別名。
headersHelper 的 plugin,Claude Code 首先列印命令並詢問 Run this command now? [y/N]。
從您自己的終端傳遞
-y 以接受顯示的命令,無需提示。以下是沒有 TTY 和 Claude 執行命令時發生的情況:
- stdin 或 stdout 不是 TTY,且您既不傳遞
-y也不傳遞--accept-command:安裝被拒絕。輸出說命令只是顯示,結束代碼為1 - Claude 透過其 Bash 工具執行命令:
-y被忽略。改為從您自己的終端執行命令
Successfully installed plugin: formatter@my-marketplace (scope: project)。當沒有新安裝時,輸出說明原因:
- 已在該範圍安裝:輸出為
Plugin "formatter@my-marketplace" is already installed (scope: project),結束代碼為0 - 您拒絕命令來源提示:輸出為
Aborted.,結束代碼為1 - 您拒絕
headersHelper提示,或無法在沒有 TTY 的情況下確認:輸出為Aborted — the command was not run.,結束代碼為1
JSON 結果格式
當您將--json 傳遞給 plugin install 時,stdout 的最後一行是一個 JSON 物件。只解析該行,因為 Claude Code 在其前面列印市場宣告的任何命令。
三個欄位始終存在:
command:執行的子命令,例如installoutcome:ok或failedmessage:結果的人類可讀說明
pluginId、scope 和 failureCode)僅在適用時出現。
使用錯誤(例如無效的 --scope)不列印結果行,結束 1,stderr 上有原因。
接受顯示的安裝命令
當--json 執行顯示市場宣告的命令且不執行它時,failed 結果也會帶有 shownCommand 物件。其欄位包括顯示的命令、它所屬的 plugin 和命令的 sha256。
若要接受完全相同的命令,從您自己的終端使用該 sha256 作為 --accept-command 重新執行,因為旗標在 Claude Code 工作階段內無效。需要 Claude Code v2.1.271 或更新版本。
sha256 計為完全相同的命令、plugin 和市場目錄的接受。如果自命令顯示以來其中任何一個已變更,Claude Code 不接受 sha256 並再次顯示命令。執行自己的市場重新整理擷取的變更也計為此類變更。
如果 shownCommand.acceptCommandMatched 為 false,您傳遞的 sha256 與現在顯示的命令不符。在使用其 sha256 重新執行之前,檢查該命令。
plugin uninstall
從一個範圍移除已安裝的 plugin。remove 和 rm 是 uninstall 的別名。
從專案範圍卸載 plugin:
Successfully uninstalled plugin: formatter (scope: project)。當 plugin 未在該範圍安裝時,命令列印以 Failed to uninstall plugin "formatter@my-marketplace": 開頭的行,並結束 1。
plugin enable
啟用已停用的 plugin。對於 從 claude.ai 同步的 plugin,將<name>@synced 作為 plugin 傳遞。
不使用
--scope,命令按本地、專案、使用者的順序檢查您的設定檔,並使用第一個提及 plugin 的範圍。
如果您傳遞 plugin 未宣告的 --scope,命令要麼寫入覆寫,要麼失敗:
- 優先於 宣告範圍的範圍:Claude Code 在您傳遞的範圍寫入覆寫。例如,
claude plugin disable formatter --scope local為您單獨關閉專案啟用的 plugin - 任何其他範圍:命令失敗,訊息為
Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.
Plugin "formatter" is already enabled 並結束 1。使用 --json,結果有 "failureCode": "already_in_goal_state" 和 "alreadyInGoalState": true,因此指令碼可以將該情況視為成功。
當 plugin 宣告 dependencies 時,Claude Code 也啟用它們。命令在這些情況下失敗:
- dependency 未安裝:啟用失敗並列印每個遺漏 dependency 的
claude plugin install命令 - dependency 被您組織的 plugin 原則阻止:啟用失敗並命名被阻止的 dependency
- dependency 在優先於目標範圍的範圍設定為
false:啟用失敗。在該範圍啟用 dependency,或傳遞--scope以在那裡寫入
Successfully enabled plugin: formatter (scope: project),命名它偵測到的範圍。
plugin disable
停用 plugin 而不卸載它。對於 從 claude.ai 同步的 plugin,將<name>@synced 作為 plugin 傳遞。
不使用
--scope,範圍以與 plugin enable 相同的本地、專案、使用者順序自動偵測。
如果您既不傳遞 plugin 名稱也不傳遞 --all,Claude Code 列印 Please specify a plugin name or use --all to disable all plugins 並結束 1。停用已停用的 plugin 列印 Plugin "formatter" is already disabled 並結束 1,如 plugin enable 對已啟用 plugin 所做的那樣。
命令對仍然需要的 plugin 失敗:
- 另一個啟用的 plugin depends on 它:命令失敗並命名要先停用的相依項
- 您的組織要求它作為同步 plugin:命令失敗並保存任何內容
Successfully disabled plugin: formatter (scope: project)。
plugin update
將 plugin 更新到其市場提供的最新版本。新版本在您的下一個工作階段中載入,或在執行中的工作階段中執行/reload-plugins 後載入。
managed 是您可以更新但不能安裝的唯一範圍。對於管理員安裝的 plugins,請參閱 為您的組織管理 plugins。
更新 plugin:
Checking for updates for plugin "formatter@my-marketplace"…,然後是結果。當沒有更新時,它列印 formatter is already at the latest version (1.0.0). 並結束 0。
您可以傳遞裸 plugin 名稱,命令會根據您安裝的 plugins 進行比對。當來自不同市場的已安裝 plugins 共享名稱時,命令拒絕更新並列出要執行的限定 plugin-name@marketplace-name 命令。按裸名稱更新需要 Claude Code v2.1.246 或更新版本。
plugin list
列出已安裝的 plugins,包括其版本、範圍和狀態。
Claude Code 按每個 plugin 的載入方式對人類可讀的輸出進行分組:
Installed plugins::您從市場安裝的 pluginsSession-only plugins (--plugin-dir / --plugin-url)::由同一命令中的這些旗標載入的 plugins,如claude --plugin-dir ./my-plugin plugin listSkills-directory plugins (.claude/skills/*)::Claude Code 在 skills 目錄中找到的 pluginsSynced from claude.ai:從您的 claude.ai 帳戶同步的 plugins
No plugins installed. Use `claude plugin install` to install a plugin.
JSON 輸出
使用--json,Claude Code 列印一個陣列,每個安裝一個物件。每個物件帶有下面的欄位。id、version、scope、enabled 和 installPath 始終存在,其他欄位僅在適用時出現。
使用
--json --available,Claude Code 列印一個物件而不是陣列。其 installed 欄位保存已安裝 plugin 物件的陣列,其 available 欄位保存每個未安裝市場 plugin 的一個物件,欄位如下。
plugin details
顯示 plugin 的元件清單及其預計的 token 成本。 plugin 必須已載入:已安裝、在 skills 目錄中找到,或在同一命令中使用--plugin-dir 或 --plugin-url 傳遞。<name> 是 plugin name 或 name@marketplace。
--help 外不接受任何旗標。
顯示已安裝 plugin 的貢獻:
Component inventory:plugin 的 skills、agents、hooks、MCP 伺服器和 LSP 伺服器Projected token cost:plugin 添加到每個工作階段的始終開啟 tokensPer-component (rounded):每個 skill、agent 和命令的始終開啟和按調用估計。當 plugin 沒有時省略
Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk. 並結束 1。
plugin prune
移除自動安裝的 dependencies,沒有已安裝的 plugin 再需要。命令永遠不會移除您自己安裝的 plugin。autoremove 是 prune 的別名。
預覽修剪將移除的內容:
(dry run — nothing removed) 結尾。沒有要移除的內容時,它列印以 Nothing to prune 開頭的行。
不使用 --dry-run,命令僅在您在提示處確認或傳遞 -y 後移除孤立的 dependencies。
無論您在提示處的答案如何,結束代碼都是 0。
prune 的作用取決於是否附加了終端以及您是否傳遞了 -y:
plugin eval
執行 plugin 的 eval cases 並報告評分結果。需要 Claude Code v2.1.269 或更新版本。 每個案例是一個提示加上評分者。Claude Code 在隔離的工作階段中執行它多次,僅載入目標 plugin,預設情況下也不載入 plugin,以便報告顯示差異。 請參閱 使用 evals 測試 plugins 以了解案例格式、評分者、結果和 CI 使用。target 預設為目前目錄,並採用以下任何形式:
- plugin 目錄
- 單個
prompt.md或case.yaml檔案 - 已安裝的 plugin,如
name或name@marketplace name@skills-dir
--tag、--allow-tools 和 --json 之前。這些選項中的每一個都將其後面的單詞作為其值,因此在其中一個之後寫入的目標被讀作標籤、工具名稱或 JSON 輸出路徑,而不是目標。
此表列出大多數執行使用的選項。執行 claude plugin eval --help 以獲得完整集合,包括 --case、--tag、--output-dir、--report、--allow-real-servers、--keep-temp 和 --verbose。
結束代碼報告執行如何結束。若要在管道中對其進行操作,請參閱 在 CI 中執行 evals。
plugin eval init
為目前目錄中的 plugin 建立 eval 套件。需要 Claude Code v2.1.269 或更新版本。請參閱 建立您的第一個 eval 套件。- 讀取 plugin
- 詢問您它應該做什麼
- 提議案例和評分者
- 寫入案例檔案
- 執行案例並與您檢查評分,以確認評分者按您的方式評分
--bare 或沒有終端,命令改為寫入空白單案例範本。當 Claude 從 Claude Code 工作階段內執行命令時,命令列印該工作階段要遵循的訪談說明,而不是寫入範本。
可選的 name 是案例名稱。它在 --bare 或沒有終端時需要,因為命令為該案例寫入空白範本。訪談不需要。
命令接受這些選項:
plugin tag
為 plugin 發佈建立名為<name>--v<version> 的帶註解 git 標籤。標籤前,命令檢查 plugin 的 plugin.json 和任何列出它的市場項目是否同意版本。
有關何時標籤發佈,請參閱 發佈 plugin。
[path] 是 plugin 目錄,預設為目前目錄。命令透過從該目錄向上走到列出 plugin 的 .claude-plugin/marketplace.json 來找到市場項目。
預覽市場簽出中 plugin 的標籤:
- plugin 名稱
- 版本及其來自的檔案
- 匹配的市場項目,當有時
- 標籤名稱
- 它將執行的
git tag和git push命令
--dry-run,Claude Code 列印 Created tag formatter--v1.0.0 並列印 Pushed to origin 或您自己執行的推送命令。如果推送失敗,標籤仍在本地建立,命令以錯誤結束。
當命令無法安全地標籤時,它結束 1 並列印原因。常見原因是:
plugin.json或市場項目中沒有version- 標籤已存在
- 工作樹是髒的
plugin validate
驗證 plugin manifest、市場 manifest 或目錄中的 skills、agents 和命令,並以 CI 工作可以對其進行操作的代碼結束。對於建立、測試和編輯工作流程,請參閱 建立 plugin。對於驗證器在每個 manifest 中檢查的內容,請參閱 plugin manifest 參考 和 市場參考。
在提交前驗證 plugin:
驗證目錄
<path> 是 manifest 檔案或目錄。給定目錄,Claude Code 透過在其中找到的內容選擇要驗證的內容:
.claude-plugin/marketplace.json,當它存在時- 否則
.claude-plugin/plugin.json - 否則元件檔案,由目錄的名稱選擇。驗證沒有 manifest 的元件檔案需要 Claude Code v2.1.233 或更新版本:
- 名為
skills、agents或commands的目錄:其中的檔案 - 名為
.claude的目錄:其中的skills、agents和commands目錄 - 任何其他目錄:其
.claude下的這三個目錄
- 名為
- plugin 或
.claude根下的連結skills、agents或commands目錄:Claude Code 警告其中的任何內容都未被讀取。 skills、agents或commands目錄內的連結項目:Claude Code 跳過它並警告,每個目錄,它跳過了多少項目,工作階段會載入。- 您命名的
skills、agents或commands目錄本身是符號連結,或其父.claude目錄是:Claude Code 報告錯誤並檢查其中的任何內容。改為命名真實目錄。
- plugin 根處的
SKILL.md:當您針對 plugin 目錄執行claude plugin validate時,Claude Code 不檢查 plugin 根處的SKILL.md - plugin 根處的
CLAUDE.md:在 plugin 執行中,Claude Code 也警告 plugin 根處的CLAUDE.md - 市場執行中的 Plugin 檔案:從市場目錄,Claude Code 不開啟 plugins 的 skill、agent、command 或 hook 檔案。若要在這些檔案中找到錯誤,驗證每個 plugin 目錄
輸出和結束代碼
Claude Code 列印它驗證的檔案、任何帶有其路徑的錯誤和警告,以及判決行。結束代碼遵循判決:
使用
--json,Claude Code 將報告寫入 stdout 作為具有這些頂級欄位的一個 JSON 物件:
success:結束代碼給出的相同判決strict:執行是否將警告視為錯誤target:Claude Code 驗證的解析路徑manifest:manifest 自己的結果,或沒有 manifest 的執行為nullcontents:每個檔案的結果,命名其file並帶有errors、warnings和notes陣列
2 時,命令不向 stdout 寫入任何內容。錯誤訊息進入 stderr。
claude plugin marketplace 命令
從 shell 執行claude plugin marketplace <subcommand> 以新增、列出、重新整理和移除您安裝 plugins 的市場。
- 結束代碼:這些子命令遵循 plugin 命令的 exit-code convention
- 範圍:它們的
--scope旗標沒有-s短形式
plugin marketplace add
從 GitHub 儲存庫、git URL、託管marketplace.json 或本地路徑新增市場,並在設定檔中宣告它。
新增後,Claude Code 安裝您已安裝 plugins 遺漏的任何 dependencies。
<source> 採用下表中的任何形式,其形式決定來源類型以及 Claude Code 如何擷取市場。對於結果來源物件,請參閱 市場參考。
對於其複製 URL 不帶
.git 尾碼的主機(例如 AWS CodeCommit),改為在 extraKnownMarketplaces 中將市場新增為 git 項目。Claude Code 複製 git 項目,無論其 URL 是否以 .git 結尾。
Claude Code 也複製具有嵌套子群組的 gitlab.com URL,例如 https://gitlab.com/group/subgroup/project。
新增市場並與專案共享:
Successfully added marketplace: your-marketplace (declared in project settings),使用市場自己的 manifest 中的 name。重複新增或無效來源列印以下結果之一:
- 市場已在磁碟上:輸出為
Marketplace 'your-marketplace' already on disk — declared in project settings,結束代碼為0 - 無法識別的來源:輸出為
Invalid marketplace source format. Try: owner/repo, https://..., or ./path,結束代碼為1 - 裸主機,例如
gitlab.example.com/team/plugins:新增失敗,因為無效的owner/repo速記,訊息告訴您新增https://或使用本地路徑
claude plugin marketplace list 的 From claude.ai: 部分中列印的名稱新增 claude.ai 上託管的市場:
--claudeai,命令拒絕 --scope 和 --sparse。市場為您的帳戶託管,未在設定檔中宣告,因此您無法透過專案的 .claude/settings.json 共享它。
plugin marketplace list
列出您新增的每個市場及其來源。
Claude Code 列印
Configured marketplaces: 和每個市場一個 Source: 行,或 No marketplaces configured。
使用 --json,Claude Code 列印一個陣列,每個市場一個物件,帶有下面的欄位。每個欄位都是字串。
已新增的 claude.ai 市場 沒有本地複製,因此其項目帶有其 claude.ai 識別碼
marketplaceId 和 organizationUuid,代替 installLocation。它也帶有 scope(當記錄時)和 status。
如果您的終端工作階段 從您的 claude.ai 帳戶同步 plugins,文字列表以 From claude.ai: 部分結尾。該部分命名 claude.ai 為您的帳戶列出的市場,您未新增的市場,包括基於 git 的和託管的。它需要 Claude Code v2.1.273 或更新版本。
若要從該部分新增市場,請參閱 從 claude.ai 新增市場。
--json 輸出僅涵蓋已配置的市場,並將部分留出。
plugin marketplace remove
從您的設定中移除市場的宣告。rm 是 remove 的別名。
<name> 是 plugin marketplace list 顯示的市場名稱,而不是您傳遞給 add 的來源。
從每個範圍移除市場:
Successfully removed marketplace: your-marketplace,當您限定範圍時新增 (from project settings)。如果您限定範圍到不宣告市場的設定檔,命令失敗,訊息為 Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.
plugin marketplace update
重新整理一個市場或每個市場,從其來源擷取新 plugins 和版本。使用分支或標籤ref 新增的市場更新到該 ref 的最新提交,而不是儲存庫的預設分支。
--help 外不接受任何旗標。
重新整理一個市場:
Successfully updated marketplace: your-marketplace。當您省略名稱時,它列印計數,例如 Successfully updated 2 marketplaces。沒有新增市場時,它列印 No marketplaces configured 並結束 0。
/plugin 在工作階段中
在互動式工作階段內,/plugin 開啟 plugin 面板。每個子命令在標籤上開啟面板、在那裡執行操作或內聯列印結果。/plugins 和 /marketplace 是 /plugin 的別名。
您只能在互動式終端工作階段中執行這些命令。在非互動式執行(例如 claude -p)中,Claude Code 回覆 /plugin 在此環境中不可用。
有關哪些表面有 /plugin、如何在沒有它的情況下安裝以及每個面板標籤顯示的內容,請參閱 安裝和管理 plugins。
<plugin> 是 plugin name 或 name@marketplace。
下表列出每個工作階段形式。shell 子命令 init、update、details、prune、eval 和 eval init 沒有工作階段形式。
如果您在
/plugin enable、disable、uninstall 或 configure 中命名目前專案中未安裝的 plugin,Claude Code 列印 Plugin "<plugin>" is not installed in this project 而不是執行操作。
/reload-plugins
在不重新啟動工作階段的情況下,將待處理的外掛程式變更套用到執行中的工作階段。待處理的變更是指自工作階段啟動以來,您在磁碟上安裝、更新、啟用、停用或編輯的外掛程式。 當您關閉/plugin 面板且在其中進行了待處理的變更時,Claude Code 會為您執行 /reload-plugins。在外掛程式面板外發生的變更(例如您在另一個終端機中執行的 claude plugin 命令)之後,請自行執行此命令。
重新載入摘要
Claude Code 重新載入每個作用中的外掛程式,並列印一行摘要Reloaded: N plugins · N skills · N agents · N hooks · N plugin MCP servers · N plugin LSP servers,在沒有互動式終端機的工作階段中省略外掛程式 MCP 伺服器計數。當任何外掛程式失敗時,摘要會新增 N errors during load. Run /plugin for details.
技能計數涵蓋外掛程式提供的每項技能,包括其 commands/ 項目和其 SKILL.md 技能。代理計數是在工作階段中載入的代理數量,包括不來自外掛程式的代理。
當重新載入的外掛程式的相依性遺失時,Claude Code 會安裝它們、重新載入,並在摘要中附加 (+ N dependencies: <names>) resolved。
變更 MCP 工具的重新載入
當重新載入會新增或移除外掛程式 MCP 伺服器或LSP 工具,且該變更會使提示快取失效時,Claude Code 不會套用重新載入。它會列印類似 This reload changes MCP tools (<server>) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply. 的一行。傳遞 --force 以無論如何套用它。
沒有互動式終端機的工作階段
/reload-plugins 也在沒有互動式終端機的工作階段中執行,例如桌面應用程式、Agent SDK 和非互動模式搭配 -p。需要 Claude Code v2.1.260 或更新版本。
在這些工作階段中,命令只在您自行將其輸入到工作階段時執行,例如在 -p 提示或桌面應用程式的提示方塊中。當它以其他方式到達時,例如透過遠端控制或從 Slack 轉送的訊息,命令會回覆 /reload-plugins isn't available over a remote connection in this session. 並且不重新載入任何內容。
這些工作階段中的重新載入不會連接或斷開外掛程式 MCP 伺服器。這些變更會在您的下一個工作階段中生效。
為單一工作階段載入 plugin 的旗標
兩個claude 旗標為單一工作階段載入 plugin,無需安裝它。兩者都可重複。
Plugin 作者使用它們在發佈前測試 plugin。對於載入-編輯-重新載入工作流程,請參閱 開發而不使用市場。
任一旗標載入的 plugin 是工作階段專用 plugin。
claude plugin list 將其顯示為 <name>@inline,範圍為 session,但僅當相同旗標在子命令前時。例如,執行 claude --plugin-dir ./my-plugin plugin list。
當工作階段專用 plugin 與已安裝的 plugin 共享名稱時,Claude Code 為該工作階段載入工作階段專用複製並跳過已安裝的複製。如果您使用 claude plugin disable <name>@inline 停用工作階段專用複製,或受管設定鎖定該 plugin 名稱,已安裝的複製改為載入。對於優先順序,請參閱 Plugin 載入參考。
管理員可以拒絕兩個旗標和 CLAUDE_CODE_PLUGIN_DIRS 變數中命名的資料夾,使用受管 disableSideloadFlags 設定。Claude Code 然後列印旗標被您組織的受管設定停用,並結束 1 而不啟動。
從 Agent SDK,plugins 選項等同於 --plugin-dir。
後續步驟
- 安裝和管理 plugins:與步驟相同的操作,以及您在每一個看到的內容
- Plugin 載入參考:每個命令在磁碟上變更的內容以及哪個範圍生效
- Troubleshoot plugins:安裝、市場、載入和驗證錯誤訊息及其修復
- Plugin manifest 參考:
claude plugin validate檢查的欄位