生活分享

Claude Code 推出 mods:用 TypeScript 改寫行為與介面,裝在 plugin 裡

Anthropic 在 2026 年 10 月 1 日發表 Claude Code mods:裝在 plugin 裡、在 Claude Code 行程內執行的 TypeScript 或 JavaScript 函式,可改寫提示、管工具呼叫、畫新介面。Anthropic 說 CLI 與 desktop app 能用、mods 沒有沙盒,文件寫要 v2.1.287 以上(2026 年 10 月查證)。

閱讀時間約 8 分鐘

原創插圖:左邊一塊代表事件的方塊,經過中間一張代表 mod 的卡片(兩側各有一個接點),右邊的終端機視窗顯示對話文字與 mod 加上的一塊窗格;下方兩張虛線卡片代表依序載入的其他 mod;不含商標或介面截圖。
圖片:Mokaair (© Mokaair)

Anthropic 在 2026 年 10 月 1 日發表 mods(改寫 Claude Code 行為與介面的小型程式):用 TypeScript 或 JavaScript 寫的函式,裝在 plugin 裡,在 Claude Code 行程內執行。Anthropic 說 CLI 與 desktop app 都能用。

這一篇的資料在 2026 年 10 月 4 日查核,依據 Anthropic 的部落格與三頁文件。這個網站沒有安裝或執行任何 mod,下面的功能與限制都是 Anthropic 的說法。

mods 是什麼:裝在 plugin 裡、在 Claude Code 行程內跑的函式

Anthropic 說 Claude Code 每做一件事就發出事件,mod 是掛在事件上、在事件之前、之後或取代它執行的函式。文件寫一個小 mod 有三個檔案:.claude-plugin/plugin.json、hooks/hooks.json 與 hooks/register.js;hooks.json 的 modules 欄指向程式檔,有它才算 mod。

文件寫 Claude Code 把兩種都叫 hooks:設定檔裡的 shell 命令、HTTP 請求或提示,下面叫「設定檔 Hook」;在 Claude Code 內部執行的處理函式,叫「mod 的事件函式」。

載入時 Claude Code 呼叫 register(on),用 on 註冊事件函式;每個函式拿到 $(mods API)、e(事件資料)與 next(交給其他 mods 與 Claude Code 原本的行為)。文件列出三種處理方式:觀察、改寫,以及接手(自己處理,原本的行為不執行)。

能做什麼:改提示、管工具呼叫、畫介面、加指令

Anthropic 列出的能力有:在提示送到模型前改寫它;擋下、改寫或重試工具呼叫;核准或拒絕權限請求;在 Claude 讀到之前遮掉工具輸出裡的機密;修改或取代部分介面,並加按鈕與輸入框。文件補充可畫窗格與提示框上方的橫條,加不經 Claude 回合的 /command。

多個 mods 掛同一個事件時依載入順序執行,最先載入的最先看到事件、最後看到結果。內建的 /diff 現在是 mod,可在 /plugin 關掉,或換成自己的版本;文件說停用後 /diff 還在,由內建版本回答。Anthropic 說設定檔 Hook 不能改寫事件、畫新介面或取代功能,mods 可以;文件則寫設定檔 Hook 照舊執行,沒有任何一項被淘汰。下表四者中只有 mod 能畫介面。

mod、設定檔 Hook、skill 與 MCP server 的比較,依 Claude Code 文件 mods 總覽頁的比較表縮短,查核日 2026 年 10 月 4 日。
種類是什麼能改什麼寫什麼
modplugin 裡的函式,由 Claude Code 在自己的行程內呼叫工具呼叫、提示、指令、回合,以及介面畫什麼JavaScript 或 TypeScript
設定檔 HookClaude Code 在生命週期事件上執行的 shell 命令、HTTP 請求或提示工具呼叫或提示放不放行、參數與結果、加給 Claude 的脈絡一支腳本,加 settings.json 的一條設定
skillClaude 讀的 SKILL.md 指示檔Claude 知道什麼、做什麼Markdown
MCP server給 Claude 工具的外部行程或服務Claude 有哪些工具任何語言寫的伺服器

用在哪:團隊的管控與範例 mod

部落格舉了三個團隊可以用 mods 自己做的例子:在對話旁的窗格顯示 CI/CD 狀態;指令碰到 production 設定前要求確認;由最先載入的 mod 記下其他每個 mod 的每次呼叫。

文件的三個範例 mod 在 claude-code-playground repo,照原樣分享、不提供支援:token-weather 在提示框上方畫 context window 的預報;blast-radius 攔下 rm -rf 或 force push 這類高風險命令,顯示會改到什麼;replay-theater 加 /replay 命令,重播 Claude 上一輪的檔案修改。

內建的 mods 列在 /plugin 的 Installed 分頁 Built-in 底下,例如接手 /diff 的 cc-plugin-diff 與最後一節的 cc-plugin-sec-default;cc-plugin-you-should-know 預設關閉,文件寫「if available for your org」才會列出。

四格圖解:事件(工具呼叫、提示、畫面)、函式(觀察、改寫或接手)、介面(窗格、按鈕、指令)、管控(sec-default 先載入)
Claude Code 的 mods 接收工具呼叫、提示與畫面等事件,以函式觀察、改寫或接手,能加窗格、按鈕與指令;在有受管設定的電腦或以 Team/Enterprise 方案登入時,內建的 sec-default 先載入。依 Anthropic 部落格與 Claude Code 文件整理,查核日 2026 年 10 月 4 日。 · 圖片:Mokaair (© Mokaair)

怎麼開始用:版本、安裝、請 Claude 寫或自己寫

文件寫 mods 需要 Claude Code v2.1.287 或以上、預設開啟,用 claude --version 檢查。部落格說可從 Claude directory 或在 CLI 執行 /plugin 安裝含 mods 的 plugin;文件寫格式是 /plugin install 名稱@marketplace。

自己寫不需要 Node.js 或 build step;用 claude --plugin-dir 加目錄只在一個 session 載入,檔案一改就熱重載。請 Claude 寫時,文件說它依內建的 plugin-authoring skill 把 mod 寫在 ~/.claude/dev-mods/ 的 session 資料夾,要你核准才載入,超過 cleanupPeriodDays 會被刪。

安裝別人的 mod 前,可以先取得 plugin 的檔案、執行 claude plugin validate,不必執行 mod 就能列出它處理的事件與呼叫的方法。

文件寫,mod 的介面畫在終端機與 Desktop app 的 Code 分頁(Code 分頁畫不出只限終端機的元素);Desktop 的 WSL session 不能用 plugins,事件函式不跑;VS Code 外掛的聊天面板、claude -p、Agent SDK 與雲端 session(限送得進去的 plugin)只跑不畫;用 Remote Control 時,事件函式在你電腦上的 session 跑、畫在你電腦的終端機。

安全與企業管控:沒有沙盒,管理者可以怎麼管

文件寫 mods 沒有沙盒、以你的權限執行:能讀環境變數與設定檔(包括裡面的 API key)、在你被問之前核准工具呼叫、用你的方案或 API key 呼叫模型,但改不了權限提示本身;開了 sandboxing 也只隔離 Claude 執行的 Bash 命令,mod 啟動的程式在沙盒外。

內建的 sec-default 在電腦有 managed settings,或以 Team、Enterprise 方案登入時載入;用 API key 或 Amazon Bedrock、Google Cloud、Microsoft Foundry 的人,只在有 managed settings 的電腦才有。它只擋使用者的 mod 改管理者管的東西(例如受管設定檔 Hook 收到與決定的事、系統提示)與核准 deny 規則拒絕的工具呼叫,其他都允許;deny 規則也管不到 mod 自己的 $.fs 與 $.process 呼叫。

管理者的開關包括:allowManagedModsOnly 擋下使用者帶來的 mods;disableSideloadFlags 拒絕 --plugin-dir、--plugin-url 與 Claude 在 session 裡寫的 mods;prependPlugins 與 appendPlugins 決定組織 mod 的順序,設 prependPlugins 要列 sec-default@builtin 才保留內建 guard;managed settings 的 disableAllHooks 連組織的 mods 與受管的設定檔 Hook 都停。

個人可在 /plugin 的 Installed 分頁停用單一 mod,以 --safe-mode 停掉一個 session 的已安裝 mods(其他自訂也停),或在 ~/.claude/settings.json 設 disableAllHooks(設定檔 Hook 與自訂 status line 也停,組織管理的照常);後兩者不停內建 mods。

常見問題

要什麼版本才能用 mods?

文件寫 mods 需要 Claude Code v2.1.287 或以上,預設開啟,可以用 claude --version 檢查。

寫 mod 要不要裝 Node.js 或做 build step?

文件寫不需要。自己寫 mod 不需要 Node.js 或 build step。

mods 會取代設定檔 Hook 嗎?

不會。Anthropic 說的是設定檔 Hook 不能做的事,mods 做得到;文件寫設定檔 Hook 照舊執行,沒有任何一項被淘汰。

怎麼關掉 mods?

單一 mod 在 /plugin 的 Installed 分頁停用;一個 session 用 --safe-mode 啟動,其他自訂也停;或在 ~/.claude/settings.json 設 disableAllHooks 為 true,這會連設定檔 Hook 與自訂 status line 一起停,組織管理的照常。--safe-mode 與 disableAllHooks 都不會停掉內建 mods。

個人方案也能用 mods 嗎?

部落格只寫 mods 在 Claude Code CLI 與 desktop app 都能用。這裡引用的部落格與三頁文件,到查核日 2026 年 10 月 4 日都沒有逐一寫各個方案能不能用。

VS Code 外掛與雲端 session 能用 mods 嗎?

文件寫,mod 的事件函式在 VS Code 外掛的聊天面板會跑,雲端 session 則是對送進雲端的 plugin 會跑,但兩者都不畫窗格或橫條。

最新旅遊情報攻略

資料來源

生活分享