Claude Code 現有的 hooks 也在事件上執行,作為 shell 命令、HTTP 請求或您在設定檔中設定的提示。Mod 的處理程式是在 Claude Code 內執行的函式。Claude Code 呼叫兩種 hooks:在這些頁面上,「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 可以計算工具呼叫,而另一個在微調器旁邊顯示計數,或一個可以讀取每個請求的權杖使用量,而另一個在窗格中繪製它。請參閱對事件做出反應。
claude -p 和雲端工作階段中。如果設定 hook、skill 或 MCP 伺服器已經做了您需要的事情,在您編寫 mod 之前比較它們。若要為組織管理 mods,請參閱為您的組織管理 mods。
取得 mod
您可以透過以下三種方式之一開始使用 mod:- 使用您已經擁有的:Claude Code 的某些功能是 mods,例如
/diff。請參閱內建於 Claude Code 的 Mods。 - 建立一個:在 Claude Code 工作階段中描述您想要的內容,Claude 會編寫 mod。請參閱向 Claude 要求 mod。若要了解 mod 程式碼的運作方式,自己編寫一個。
- 安裝一個:請參閱安裝或更新 mod
安裝或更新 mod
Mod 作為外掛程式從市場安裝。提供外掛程式的名稱、@ 和市場的名稱。這些範例從名為 your-org 的市場安裝名為 token-chart 的外掛程式:
- 在 Claude Code 工作階段中,執行
/plugin install token-chart@your-org。 - 在您的 shell 中,執行
claude plugin install token-chart@your-org。
/reload-plugins 以載入它。否則,它會在您下次啟動 Claude Code 時載入。
決定是否信任 mod
Mod 是使用您的權限在 Claude Code 內執行的程式碼。僅從您信任的作者和市場安裝 mods。Mod 可以存取什麼
Mod 使用您的權限執行,因此在您安裝一個之前,請了解它可以存取什麼。載入後,mod 可以:- 在您的機器上以您的身份行動:讀取和寫入您的使用者帳戶可以存取的任何地方的檔案、啟動程式和發出網路請求
- 讀取您的機密:環境變數和設定檔,包括您保留在任一個中的 API 金鑰
- 查看您的工作階段:您傳送的每個提示和 Claude 進行的每個工具呼叫
- 變更您的工作階段:重寫提示或工具呼叫、提交提示,就像您輸入的一樣,或傳送訊息到您的另一個工作階段
- 在不詢問您的情況下行動:在詢問您之前核准工具呼叫
- 花費您的使用量:在您的計畫或 API 金鑰上呼叫模型
ask 規則會提示的呼叫,或您自己的 PreToolUse hooks 阻止的呼叫。使用 hooks 擴展權限列出此類 mod 可以核准的內容,包括何時可以核准 deny 規則拒絕的呼叫。
Mod 可以重新設定 Claude Code 介面的大部分,但不能重新設定權限提示。它無法變更提示顯示給您的內容。
在安裝 mod 之前列出它的功能
在您安裝 mod 之前,您可以列出它掛接的事件以及它要求 Claude Code 執行的操作,例如讀取檔案或發出網路請求,而無需執行它。首先取得外掛程式的檔案,例如透過複製其儲存庫。然後,在您的 shell 中,在外掛程式的目錄上執行claude plugin validate:
hooks: 和 calls: 行列出 mod 處理的事件以及它要求 Claude Code 執行的操作。檢查 mod 可以做什麼顯示輸出以及要查找的呼叫。
開啟或關閉 mods
Mods 需要 Claude Code v2.1.287 或更新版本,預設情況下它們是開啟的。在您的 shell 中,執行claude --version 以檢查,如果您的版本較舊,請更新 Claude Code。
若要關閉 mods,請選擇要停止多少個,以及停止多長時間。若要將它們重新開啟,請撤銷相同的變更:
- 一個 mod:從
/plugin中的已安裝標籤停用或解除安裝其外掛程式 - 每個已安裝的 mod,一個工作階段:使用
--safe-mode啟動 Claude Code,這也會排除您的其他自訂 - 您安裝的每個 mod,在每個工作階段中:在
~/.claude/settings.json中設定"disableAllHooks": true。您的設定 hooks 和自訂狀態行也會停止。您的組織管理的內容會繼續執行。
如果您在早期存取期間設定了
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 是一個外掛程式,其程式碼註冊事件處理程式,稱為 hooks。Claude Code 在其事件發生時執行 hook,例如當 Claude 呼叫工具或繪製微調器時。一個小 mod 有三個檔案:plugin.json:外掛程式的清單hooks.json:指向您的程式碼檔案register.js:您的程式碼,稱為 hooks 模組。它告訴 Claude Code 在哪些事件上執行您的函式。
register.js。它計算 Claude 進行的工具呼叫,並在 Claude 工作時在微調器旁邊顯示計數,如 Thinking · tool calls: 3…。
hooks/register.js
calls 變數:
tool.callhook 在 Claude 即將使用工具時執行。它將一個加到calls,要求 Claude Code 再次繪製介面,並讓工具照常執行。ui.renderhook 在 Claude Code 繪製微調器時執行。它保留 Claude Code 自己的微調器,並在單詞後面新增計數。
Thinking · tool calls: 1…,然後 2…,然後 3…。
Hook 可以對事件做什麼
Claude Code 在對事件採取行動之前執行您的 hook,因此 hook 決定接下來會發生什麼。它有三個選擇:- 觀察:注意正在發生的事情並讓它繼續不變,如範例中的
tool.callhook 所做的 - 重寫:在事件繼續之前變更事件,如
ui.renderhook 在將計數新增到微調器時所做的 - 回答:自己處理事件,因此通常的行為不會執行,例如拒絕命令
Mods 執行的位置
Mod 的 hooks 在載入外掛程式的每種工作階段中執行。繪製更窄:只有終端機和 Desktop 應用程式顯示 mod 的窗格、帶狀區域和取代的列。此表列出您可能執行 Claude Code 的每個位置:
繪製的 mod 可以檢查它執行的應用程式,並在文字記錄中的行或命令的文字回覆中回退,其中沒有任何內容繪製。
為您的組織控制 mods
管理員透過受管設定決定 mods 是否執行以及哪些執行。為您的組織管理 mods涵蓋預設情況、如何檢查 mod 以及如何使用您自己的 mod 強制執行原則。比較 mods、設定 hooks、skills 和 MCP 伺服器
Mods、設定 hooks、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 中的四個的來源在 Claude Code 儲存庫的mods 目錄中是公開的。每一個都是一個完整的外掛程式,具有其 hooks 模組和測試:
diff:/diff窗格,具有綁定到鍵盤動作的按鈕和 mod 自己處理的捲動agents-md:將AGENTS.md載入為專案指令,具有userConfig選項sec-default:了解預設情況下會發生什麼中描述的保護,強制執行原則的 mod 的模型telemetry:新增其他 mods 可以呼叫的方法,並發送其類型
後續步驟
- 建立 mod:建立一個計算工具呼叫、在微調器旁邊顯示計數並新增命令的 mod,並了解編輯和重新載入迴圈
- 在介面中繪製:窗格、提示上方的帶狀區域、按鈕、文字欄位和狀態
- 對事件做出反應:工具呼叫、提示、回合以及 mods 執行的順序
- 使用 mods API:命令、工具、模型呼叫、計時器和檔案
- 測試 mod:在沒有工作階段的情況下執行的自動化測試
- 對 mod 進行故障排除:mod 不執行任何操作的原因以及偵錯記錄
- 為您的組織管理 mods:預設值、受管設定、檢查 mod 和原則 mods
- Mods 參考:每個事件、方法、元素和限制