Skip to main content
Mod 是一個外掛程式,可改變 Claude Code 的外觀和行為。它由 JavaScript 或 TypeScript 事件處理程式組成:Claude Code 在事件發生時呼叫一個,例如工具呼叫、已提交的提示或介面的一部分被繪製,處理程式可以監視事件、變更事件或接管事件。使用 mod 為 Claude Code 新增您自己的功能,例如在每個請求後繪製您的內容有多滿的窗格。如需 mod 中的檔案和完整範例,請參閱Mod 的運作方式。
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 可以計算工具呼叫,而另一個在微調器旁邊顯示計數,或一個可以讀取每個請求的權杖使用量,而另一個在窗格中繪製它。請參閱對事件做出反應。
Mods 在 Claude Code CLI 和 Claude Desktop 應用程式的 Code 標籤中運作。請參閱Mods 執行的位置以了解它們在其他地方的行為,例如在 VS Code 擴充功能、claude -p 和雲端工作階段中。如果設定 hook、skill 或 MCP 伺服器已經做了您需要的事情,在您編寫 mod 之前比較它們。若要為組織管理 mods,請參閱為您的組織管理 mods。

取得 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

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

Mod 可以存取什麼

Mod 使用您的權限執行,因此在您安裝一個之前,請了解它可以存取什麼。載入後,mod 可以:
  • 在您的機器上以您的身份行動:讀取和寫入您的使用者帳戶可以存取的任何地方的檔案、啟動程式和發出網路請求
  • 讀取您的機密:環境變數和設定檔,包括您保留在任一個中的 API 金鑰
  • 查看您的工作階段:您傳送的每個提示和 Claude 進行的每個工具呼叫
  • 變更您的工作階段:重寫提示或工具呼叫、提交提示,就像您輸入的一樣,或傳送訊息到您的另一個工作階段
  • 在不詢問您的情況下行動:在詢問您之前核准工具呼叫
  • 花費您的使用量:在您的計畫或 API 金鑰上呼叫模型
核准工具呼叫的 mod 可以核准 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,管理員也可以限制哪些 mods 載入。管理員從停止使用者安裝的 mods 載入開始。 若要了解 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 是一個外掛程式,其程式碼註冊事件處理程式,稱為 hooks。Claude Code 在其事件發生時執行 hook,例如當 Claude 呼叫工具或繪製微調器時。一個小 mod 有三個檔案:
這是一個完整的 register.js。它計算 Claude 進行的工具呼叫,並在 Claude 工作時在微調器旁邊顯示計數,如 Thinking · tool calls: 3…。
hooks/register.js
該檔案註冊了兩個 hooks,兩者都使用頂部的 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 的 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 模組和測試:

後續步驟