載入中

外掛程式

第 9 課7 分鐘
載入中

外掛程式

一旦您的整個團隊都在使用您信任的設定,它的價值就會大幅提升。問題在於如何搬移它。您建立了一個很棒的 .claude 目錄,裡面有技能、子代理和鉤子,然後呢?每個人都在機器之間複製貼上檔案,並祈禱它們能保持同步。外掛程式解決了這個問題。外掛程式是 Claude Code 將一套設定打包並從一個人傳遞給下一個人的方式。

這件事有兩個面向,我們會一併介紹。首先,使用其他人發布的外掛程式。其次,當您建立了值得分享的東西後,將其打包成自己的外掛程式。

外掛程式是什麼

外掛程式是一個可安裝的單元。它將您原本需要手動分享的所有東西打包在一起:技能、子代理、鉤子,以及 MCP 伺服器設定,還有更多像是語言伺服器協定伺服器、背景監控程式、主題,以及一部分的 settings.json。一個版本,一次安裝。

外掛程式存放的位置決定了您安裝它的方式。在工作階段中,您可以直接依名稱安裝:

/plugin install github@claude-plugins-official

此指令會先開啟外掛程式的詳細資訊,讓您可以檢視並選擇範圍。接著 Claude Code 會安裝它並印出簡短摘要。它會說明外掛程式在此工作階段中已經啟用,或是提及 /reload-plugins,並由 Claude Code 為您執行該重新載入。只有當重新載入警告您的下一則訊息將重新讀取整個對話時,您才需要介入:執行 /reload-plugins --force 以強制啟用該外掛程式。

為您的團隊新增市集

對團隊而言,更好的做法是一次性新增一個私有市集。市集是外掛程式解析所依據的共用來源:

/plugin marketplace add your-org/claude-plugins

您可以隨意命名。一旦新增之後,之後的每次安裝都會透過它來解析。您可以在同一個地方獲得集中式的探索、版本追蹤和更新,而不是分散在每個人的筆電上。

您可以從「探索」分頁瀏覽可用的項目。它會列出您市集中的外掛程式,方便您搜尋與挑選。

安裝前請先閱讀

這是最重要的部分。外掛程式會以您的權限在您的機器上執行程式碼。它的鉤子會在每次符合的工具呼叫時觸發。所以如果您為了某個外掛程式的技能而安裝它,無論您是否閱讀過,您也會一併取得它的 PreToolUse 和 Stop 鉤子。

想想這代表什麼。一個社群外掛程式可能附帶一個每次都會呼叫某個網路端點的 Stop 鉤子,而您的設定中不會有任何東西警告您這件事。這不是避免使用外掛程式的理由,而是先檢查的理由。

在安裝之前,請先檢查外掛程式的詳細資訊。Claude Code 會顯示它將安裝的內容,並估算上下文成本,同時附上一則明確的警告,說明 Anthropic 並不控制第三方外掛程式內部的內容。

關於外掛程式的來源,有兩件事值得了解:

  • 外掛程式之所以會出現在社群市集上,是因為撰寫它的人將其提交給了 Anthropic。
  • 官方市集則是透過另一條獨立的審核流程來策劃的。

但被列出並不等於值得信任。因此這項原則依然成立:只從您真正信任的來源安裝外掛程式和新增市集,並在啟用外掛程式之前,先檢查它實際上會做什麼。

元件會與您自己的元件並行執行

外掛程式不會覆寫您的設定。它的元件會與您自己的元件並行執行。這大多是好事,但也有一些您應該了解的後果。

鉤子會疊加。外掛程式的 PreToolUse 鉤子和您自己的 PreToolUse 鉤子都會在每次工具呼叫時觸發。兩者都不會取代對方。這正是為什麼您要先閱讀詳細資訊的原因。

技能、代理和指令都會以外掛程式名稱作為命名空間,因此永遠不會與您的發生衝突。外掛程式也可以附帶一個 settings.json 檔案,但範圍很窄。Claude Code 只會遵循其中兩個鍵:代理和子代理狀態列鍵。

那個代理鍵值得停下來想一想。設定它會將外掛程式的其中一個子代理提升為主執行緒,連同其系統提示、工具限制和模型一起。換句話說,啟用外掛程式可能會改變 Claude Code 預設的行為方式。這正是為什麼在您啟用它之前就要先檢查的主要原因之一。

一旦外掛程式安裝完成,您就可以在外掛程式面板中看到它新增的所有內容、管理它,並將其解除安裝。

打包您自己的外掛程式

現在來看另一個面向。一旦您建立了一個可以運作的 .claude 目錄,不要讓您的團隊在機器之間複製貼上它,而是將它打包起來。

好消息是您不需要重新架構任何東西。外掛程式使用的是您已經在使用的相同 .claude 結構:

  • 每個技能一個資料夾。
  • 在 agents 底下,每個子代理一個 markdown 檔案。
  • hooks/hooks.json 和 .mcp.json,位於外掛程式根目錄。

目錄結構完成了大部分的工作。Claude Code 會依照慣例來探索元件。

清單檔

除此之外,還有一個選用的清單檔。它位於 .claude-plugin/plugin.json,內含名稱、版本、描述和作者:

json
{
  "name": "svg-splitter-review",
  "version": "0.1.0",
  "description": "Reviews the SVG Splitter repo",
  "author": {
    "name": "Lewis Menelaws"
  }
}

清單檔是選用的。省略它,Claude Code 仍然會依照目錄慣例探索您的元件。但有幾個細節值得了解:

  • 名稱是唯一必填的欄位。 它會以 /plugin-name:skill-name 的形式為您的技能建立命名空間,因此此外掛程式中的技能會以 /svg-splitter-review:<skill-name> 的形式執行。這可以避免您的技能與其他人的技能發生衝突。
  • 像對待其他相依套件一樣為它設定版本。 這正是讓更新和版本追蹤能夠在您的團隊中運作的關鍵。

重點整理

兩條簡單的規則涵蓋了大部分的內容:

  • 當您使用外掛程式時,請先閱讀再安裝。外掛程式會以您的權限執行程式碼,因此請先檢查它的鉤子、代理和 MCP 伺服器。
  • 當您建立外掛程式時,一旦它能運作就立即打包您的 .claude。一份清單檔,一次安裝。

這就是重點所在。一個可安裝的單元,讓您信任的設定能夠觸及您的整個團隊。