SpyBara
Go Premium

plugins/mods/create.md 2026-11-05 23:03 UTC to 2026-11-06 23:01 UTC

No changes for this document in this history range.

2026
Tue 10 21:57

建立 mod

讓 Claude 從描述中寫出 Claude Code mod,或自己寫一個來計算工具呼叫並新增命令。學習重新載入和驗證迴圈。

Mod 是一個 Claude Code 外掛,具有一個進入檔案,稱為 hooks module:一個 JavaScript 或 TypeScript 檔案,其函數在事件發生時由 Claude Code 呼叫。若要建立 mod:

  • 要求 Claude 寫它:在 Claude Code 工作階段中描述你想要的
  • 自己寫:按照教學學習 mod 程式碼的運作方式。你不需要 Node.js、bundler 或建置步驟,因為 Claude Code 直接載入 .js 和 .ts 檔案。

如果你還沒決定 mod 是否是正確的工具,請先閱讀概述上的比較。

[!NOTE]

請使用 Claude Code v2.1.287 或更新版本。在您的 shell 中,執行 claude --version 來檢查。若要查看 mod 是否可以為您載入,請參閱檢查 mod 是否可以載入。

要求 Claude 寫 mod

在互動式 Claude Code 工作階段中描述你想要的 mod,Claude 會寫出來。Claude 使用名為 plugin-authoring 的內建 skill,它告訴 Claude 在哪裡寫 mod、你的版本有哪些事件和方法,以及 mod 如何被載入。當你要求 mod 時,Claude 可以載入該 skill,或者你可以在 Claude Code 提示符處執行 /plugin-authoring 來自己載入它。

mod 在你批准後執行,除了在mod Claude 寫的無法載入的工作階段中。

1. 描述 mod

用你自己的話要求 mod,例如 make a mod that shows the current git branch above the prompt。Claude 在工作階段的 mod 資料夾中的自己的目錄中寫 mod,該資料夾是 ~/.claude/dev-mods/ 後跟工作階段的 ID。mod 的完整路徑看起來像 ~/.claude/dev-mods/3f2a9c1e-5b7d-4e8a-9c21-6d0f4b8a7e13/git-branch/。

[!NOTE]

在 default 和 acceptEdits 權限模式中,Claude Code 會在 Claude 建立 mod 的每個檔案之前請您批准,因為 mod 資料夾是受保護的路徑。請在每個檔案出現時逐一批准。

2. 批准 mod

當 Claude 儲存第一個檔案時,Claude Code 詢問是否為工作階段啟用熱重新載入。熱重新載入執行此工作階段中 Claude 寫的 mod,並在每個稍後變更它們的轉向結束時選擇每個變更。

選擇以下其中一個答案:

  • 為此工作階段啟用:工作階段的 mod 資料夾中的 mod 在轉向結束時載入,並在每個變更它們的轉向結束時重新載入。你的答案在工作階段期間持續,包括在你恢復它之後。
  • 暫時不要:現在什麼都不載入。檔案保留在 Claude 寫的地方,mod 在該工作階段下次啟動時載入。若要防止 mod 永遠載入,請刪除其目錄。

3. 檢查 mod 是否已載入

在 Claude Code 提示符處執行 /plugin,然後按 Tab 直到選擇已安裝標籤。它列出 mod,你可以在那裡關閉它。

4. 試試 mod

使用您所要求的功能。以範例提示詞而言,目前的分支名稱會出現在提示詞輸入框上方。如果 mod 沒有達到您想要的效果,請告訴 Claude 要修改什麼。mod 會在每個變更其檔案的回合結束時重新載入,因此您可以在 Claude 完成後立即試用變更。

如果逐字稿中有一行以 mod 名稱開頭,並指出變更未能載入,請在下一則訊息要求 Claude 修正時貼上該行。除非您貼上,否則 Claude 看不到該行。

在其他工作階段中使用 mod

Claude 寫的 mod 只在建立它的工作階段中載入,Claude Code 在該工作階段的 mod 資料夾比 cleanupPeriodDays 更舊後刪除它。若要保留 mod,將其目錄複製出 mod 資料夾到你自己的地方,例如 ~/mods/git-branch。然後選擇如何載入它:

  • 在你啟動的工作階段中:在你的 shell 中,執行 claude --plugin-dir ~/mods/git-branch
  • 對於其他人:將其新增到市場,以便他們可以安裝它

Claude 寫的 mod 無法載入的工作階段

Claude 寫的 mod 只在你批准後載入,在允許 mod 執行的受信任工作區中。在這些工作階段中它不會載入:

  • 沒有人在那裡批准:工作階段無法向你顯示提示,如在 claude -p 執行或 dontAsk mode 中
  • 工作區不受信任:你還沒有接受目錄的信任提示
  • Mod 已停用:您以 --safe-mode 或 --bare 啟動、設定了 disableAllHooks,或您組織的受管設定封鎖了它

自己寫 mod

在本教學中,你建立一個名為 first-mod 的 mod,它計算 Claude 進行的工具呼叫,在 Claude 工作時在微調器旁邊顯示計數,並新增一個 /tally 命令來列印它。然後你讀取 Claude Code 在 mod 旁邊寫的型別宣告,並執行 claude plugin validate。它們一起向你展示你的版本提供的事件和方法,以及 Claude Code 從你的程式碼中讀取的內容。

此錄製顯示完成的 mod。微調器計算工具呼叫,/tally 列印計數,程式碼的編輯在工作階段執行時生效: