Skip to main content
mod 是一種會改變 Claude Code 外觀與行為的外掛。它由 JavaScript 或 TypeScript 事件處理常式組成:當事件發生時(例如工具呼叫、提交提示詞,或繪製介面的某個部分),Claude Code 會呼叫對應的處理常式,而處理常式可以監看該事件、變更它,或完全接管它。您可以使用 mod 為 Claude Code 新增自己的功能,例如一個在每次請求後以圖表呈現 context 使用量的窗格。如需了解 mod 中包含的檔案以及完整範例,請參閱 mod 的運作方式。
Claude Code 既有的 hooks 也會在事件發生時執行,其形式是您在設定檔中設定的 shell 命令、HTTP 請求或提示詞。相對地,mod 的處理常式則是在 Claude Code 內部執行的函式,而非上述形式。Claude Code 將這兩種都稱為 hook:在這些頁面中,「hook」指的是 mod 的處理常式,而設定檔中的那種則稱為「設定 hook」。

Mod 可以做什麼

設定 hooks、skills、狀態行和 MCP 伺服器從 Claude Code 外部運作:每一個都執行指令碼,或為 Claude 提供文字或工具。Mod 在 Claude Code 內執行,因此它可以做他們無法做的事情:
  • 繪製您可以使用的介面:文字記錄旁邊的窗格或提示上方的帶狀區域,具有標籤、按鈕和文字欄位。請參閱在介面中繪製。
  • 重新繪製 Claude Code 自己的介面:取代或重新設定 Claude Code 自己繪製的部分,例如工具呼叫的列、微調器或 Claude 提出問題的對話框。請參閱變更 Claude Code 已繪製的內容。
  • 進入工具呼叫或請求:例如,在您詢問使用者問題時保留工具呼叫、在不執行工具的情況下回答,或將一個請求傳送到不同的模型。請參閱保護或變更工具呼叫和跟隨一個回合。
  • 在命令上執行您自己的程式碼:一個 /command,立即執行您的函式,沒有 Claude 回合,即使 Claude 正在工作。請參閱新增命令或工具。
  • 在 hooks 之間共享資料:mod 的 hooks 共享其檔案中的變數,因此一個 hook 記錄的內容,另一個可以顯示。例如,一個 hook 可以計算工具呼叫,而另一個在微調器旁邊顯示計數,或一個可以讀取每個請求的權杖使用量,而另一個在窗格中繪製它。請參閱對事件做出反應。
Mod 可在 Claude Code CLI、Claude Desktop 應用程式的 Code 標籤以及 VS Code 擴充功能中運作。請參閱mod 執行的位置以了解它們在其他地方的行為,例如在 claude -p 和雲端工作階段中。如果設定 hook、skill 或 MCP 伺服器已經做了您需要的事情,在您編寫 mod 之前比較它們。若要為組織管理 mod,請參閱為您的組織管理 mod。

取得 mod

若要開始使用 mod:

安裝或更新 mod

Mod 是使用您的權限執行的程式碼。它可以讀取和寫入您的檔案、啟動程序和發出網路請求。僅從您信任的作者和市集安裝 mods。請參閱決定是否信任 mod。
Mod 作為外掛程式從市集安裝。提供外掛程式的名稱、@ 和市集的名稱。這些範例從名為 your-org 的市集安裝名為 token-chart 的外掛程式:
  • 在 Claude Code 工作階段中,執行 /plugin install token-chart@your-org。
  • 在您的 shell 中,執行 claude plugin install token-chart@your-org。
安裝外掛程式涵蓋市集、範圍、VS Code 擴充功能和 Desktop 應用程式,以及保持外掛程式更新,所有這些都適用於包含 mod 的外掛程式,無需變更。 如果您在工作階段開啟時從 shell 安裝或更新 mod,請在該工作階段中執行 /reload-plugins 以載入它。否則,它會在您下次啟動 Claude Code 時載入。

試用範例 mod

Anthropic 在 claude-code-playground 儲存庫的 claude-code/mods 目錄中分享範例 mods。每一個都是完整的外掛程式,其 README 說明了它的建構方式。該儲存庫按原樣分享這些範例,不提供支援。
  • token-weather:在提示詞上方繪製您上下文視窗的預報
  • blast-radius:暫停有風險的 shell 命令(例如 rm -rf 或強制推送),並顯示它會變更的內容,附有繼續或取消的按鈕
  • replay-theater:新增 /replay 命令,逐步檢視 Claude 在上一個回合中所做的檔案編輯
範例 mod 會使用您的權限執行。若要在載入之前了解它的作用,請列出它的 hook 和呼叫。 若要試用,請複製該儲存庫,並使用 --plugin-dir 在單一工作階段中載入 mod 的目錄。若要確認 mod 已載入,請檢查工作階段載入了哪些 mods。 若要保留它,請將複製的 claude-code/mods 目錄新增為市集,然後從 claude-code-playground-mods 安裝該 mod。該市集指向您的複製,因此如果您移動或刪除它,mod 就會停止載入。

決定是否信任 mod

Mod 是使用您的權限在 Claude Code 內執行的程式碼。僅從您信任的作者和市集安裝 mods。

Mod 可以存取什麼

Mod 使用您的權限執行,因此在您安裝一個之前,請了解它可以存取什麼。載入後,mod 可以:
  • 在您的機器上以您的身份行動:讀取和寫入您的使用者帳戶可以存取的任何地方的檔案、啟動程式和發出網路請求
  • 讀取您的機密:環境變數和設定檔,包括您保留在任一個中的 API 金鑰
  • 查看您的工作階段:您傳送的每個提示詞和 Claude 進行的每個工具呼叫
  • 變更您的工作階段:重寫提示詞或工具呼叫、提交提示詞,就像您輸入的一樣,或傳送訊息到您的另一個工作階段
  • 在不詢問您的情況下行動:在詢問您之前核准工具呼叫
  • 花費您的使用量:在您的計畫或 API 金鑰上呼叫模型
Mods 不在沙箱中執行。如果您開啟沙箱機制,沙箱會隔離 Claude 執行的 Bash 命令,而 mod 啟動的程序則會在沙箱之外執行。 核准工具呼叫的 mod 可以核准 ask 規則會提示的呼叫,或您自己的 PreToolUse hook 阻止的呼叫。使用 hook 擴展權限列出此類 mod 可以核准的內容,包括何時可以核准 deny 規則拒絕的呼叫。 Mod 可以重新設定 Claude Code 介面的大部分,但不能重新設定權限提示。它無法變更提示顯示給您的內容。

在安裝 mod 之前列出它的功能

在您安裝 mod 之前,您可以列出它處理的事件以及它要求 Claude Code 執行的操作,例如讀取檔案或發出網路請求,而無需執行它。首先取得外掛程式的檔案,例如透過複製其儲存庫。然後,在您的 shell 中,在外掛程式的目錄上執行 claude plugin validate:
輸出中的 hooks: 和 calls: 行列出 mod 處理的事件以及它要求 Claude Code 執行的操作。檢查 mod 可以做什麼顯示輸出以及要查找的呼叫。

開啟或關閉 mods

mod 預設為開啟。在終端機中,請使用 Claude Code v2.1.287 或更新版本。Desktop 應用程式內含自己的 Claude Code 副本,mod 從 v2.1.286 起即可在其中運作。請在您使用 mod 的地方檢查版本:
  • 終端機:在您的 shell 中執行 claude --version。如果您的版本較舊,請更新 Claude Code。
  • Desktop 應用程式:在 Code 標籤的本機工作階段中,輸入 /status 並查看 Claude Code 列,其中會顯示版本,例如 2.1.286。如果您的版本較舊,請更新 Desktop 應用程式。
若要關閉 mods,請選擇要停止多少個,以及停止多長時間。若要將它們重新開啟,請撤銷相同的變更:
  • 一個 mod:從/plugin 中的已安裝標籤停用或解除安裝其外掛程式
  • 每個已安裝的 mod,一個工作階段:使用 --safe-mode 啟動 Claude Code,這也會停用您的其他自訂
  • 您安裝的每個 mod,在每個工作階段中:在 ~/.claude/settings.json 中設定 "disableAllHooks": true。您的設定 hook 和自訂狀態列也會停止。您的組織管理的內容會繼續執行。
如果您透過組織使用 Claude Code,管理員也可以限制哪些 mods 載入。管理員從停止使用者安裝的 mods 載入開始。 disableAllHooks 和您組織的 allowManagedModsOnly 會停止 mod,並保留其外掛的其餘部分:外掛會維持安裝狀態,其 skill、命令、agent 和 MCP 伺服器都會載入。其他設定和旗標的影響範圍更廣。disableAllHooks 和在 allowManagedHooksOnly 下執行的內容列出了每一項對外掛及其設定 hook 的影響。 若要了解 mods 是否可以為您載入,請參閱檢查 mods 是否可以載入。
如果您在早期存取期間設定了 CLAUDE_CODE_ENABLE_FUNCTION_HOOKS,請移除它。Claude Code v2.1.287 及更新版本會忽略它,因此將其設定為 0 不會保持 mods 關閉。

查看工作階段載入了哪些 mods

若要查看終端機工作階段載入了哪些 mods,請在 Claude Code 提示處執行 /plugin。標籤下的暗行提供計數和名稱,例如 1 mod active · first-mod。如果您安裝的 mod 未在那裡命名,請參閱找出為什麼 mod 不執行任何操作。

Mod 的運作方式

Mod 是一個外掛程式,其程式碼註冊事件處理程式,稱為 hook。Claude Code 在其事件發生時執行 hook,例如當 Claude 呼叫工具或繪製微調器時。一個小 mod 有三個檔案:
這是一個完整的 register.js。它計算 Claude 進行的工具呼叫,並在 Claude 工作時在微調器旁邊顯示計數,如 Thinking · tool calls: 3…。
hooks/register.js
該檔案註冊了兩個 hook,兩者都使用頂部的 calls 變數:
  • tool.call hook 在 Claude 即將使用工具時執行。它將 calls 加一,要求 Claude Code 再次繪製介面,並讓工具照常執行。
  • ui.render hook 在 Claude Code 繪製微調器時執行。它保留 Claude Code 自己的微調器,並在單詞後面新增計數。
此錄影顯示 mod 的運作。觀看提示詞輸入框上方的微調器行:當 Claude 列出目錄並讀取兩個檔案時,它顯示 Thinking · tool calls: 1…,然後 2…,然後 3…。

Hook 可以對事件做什麼

Claude Code 在對事件採取行動之前執行您的 hook,因此 hook 決定接下來會發生什麼。它可以:
  • 觀察:注意正在發生的事情並讓它繼續不變,如範例中的 tool.call hook 所做的
  • 重寫:在事件繼續之前變更事件,如 ui.render hook 在將計數新增到微調器時所做的
  • 回答:自己處理事件,因此通常的行為不會執行,例如拒絕命令
若要在其自己的程式碼之外執行任何操作,例如繪製、新增命令、呼叫模型、讀取檔案、啟動程序或發出網路請求,hook 會呼叫 mods API。Hook 沒有其他方式來執行這些操作,這就是為什麼 Claude Code 可以在您安裝之前列出 mod 的功能。 如需每個選擇背後的程式碼,請參閱對事件做出反應。如需 hook 可以呼叫的內容,請參閱使用 mods API。

Mods 執行的位置

Mod 的 hook 在載入外掛程式的每種工作階段中執行,無論由哪個供應商提供模型,包括 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry。繪製的範圍較窄:mod 繪製的內容會出現在終端機、Desktop 應用程式和 VS Code 擴充功能中。此表列出您可能執行 Claude Code 的每個位置: 會繪製內容的 mod 可以檢查它在哪個應用程式中執行,並在無法繪製的地方改為在逐字稿中顯示一行文字或使用命令的文字回覆。

為您的組織控制 mods

管理員透過受管設定決定 mods 是否執行以及哪些執行。為您的組織管理 mods涵蓋預設情況、如何檢查 mod 以及如何使用您自己的 mod 強制執行原則。

比較 mods、設定 hook、skills 和 MCP 伺服器

Mods、設定 hook、skills 和 MCP 伺服器的功能有所重疊。此表顯示每一個是什麼以及何時選擇它。 其他每一個都有自己的頁面:Hooks、Skills 和 MCP。外掛程式可以包含上述所有項目,因此 mod 可以與 skill 和 MCP 伺服器一起在同一個外掛程式中發布。

內建於 Claude Code 的 Mods

Claude Code 的某些功能是 mods。若要查看您的工作階段擁有的功能,請在 Claude Code 提示處執行 /plugin 並前往已安裝標籤,該標籤在內建下列出它們。您無法更新或解除安裝內建 mod,表格的最後一欄說明如何關閉每一個。mods active 行排除內建 mods。 此表按 /plugin 顯示的名稱列出每個項目: 停止已安裝 mods 的設定和旗標,例如 disableAllHooks、--bare 和 --safe-mode,不會停止內建 mods。

讀取內建 mods 的來源

這些 mods 中部分 mod 的來源在 Claude Code 儲存庫的 mods 目錄中是公開的。每一個都是一個完整的外掛程式,具有其 hooks 模組和測試:

後續步驟