把編輯器放進你的手裡:Anthropic 用 TypeScript Mods 打開 Claude Code 本體
Anthropic 推出的 mods 讓 Claude Code 徹底開放——小型 TypeScript 函式可在執行時改寫提示、攔截工具呼叫、遮蔽機密、重繪介面,連內建的 /diff 都已改寫為 mod。
過去兩年,AI 編程代理與開發者之間的默契很簡單:公司擁有 harness(代理框架),你只擁有提示詞。你可以設定、可以調教,甚至可以掛上在生命週期事件中觸發的 hooks,但真正組裝上下文、調度工具、繪製終端機介面的那部機器,始終是一個你只能「租用」的黑盒子。
這個默契剛被打破了。2026 年 10 月 1 日,Anthropic 為 Claude Code 推出 mods:小型 TypeScript 函式,能在執行時改變代理的行為。一個 mod 可以在提示送進模型前改寫它、封鎖或重試工具呼叫、核准或拒絕權限請求、在 Claude 讀取工具輸出前先遮蔽機密,甚至直接替換內建功能。Mods 也能重繪介面本身——編輯工具結果、加入按鈕與輸入欄位,並在使用者按下時做出回應。Mods 以插件形式發佈,透過現有的 /plugin 流程安裝,同時支援 Claude Code CLI 與桌面應用程式。
Mods 究竟是什麼
其運作機制說來簡單。Claude Code 每做一件事——呼叫工具、請求權限、繪製畫面——都會發出一個事件。Mod 就是掛鉤在這些事件上的函式,而且可以在事件之前、之後執行、取代事件,或包裹事件、在呼叫前後兩側都執行程式碼。
最後這一點正是威力所在。單一函式就能做到:
- 在提示送達模型前改寫——注入風格指南、剔除多餘上下文,或強制輸出格式
- 封鎖、改寫或重試工具呼叫——例如強迫每個
rm指令先做一次 dry-run - 以程式化方式核准或拒絕權限請求——落實公司政策,而不是第一千次去點「是」
- 在 Claude 讀取前先遮蔽工具輸出中的機密——讓外洩的
.env內容永遠進不了模型的上下文視窗
當多個 mods 掛鉤同一事件時,它們依載入順序執行:最先載入的 mod 最先看到事件、最後看到結果。這個順序設計讓 mods 可以堆疊組合——平台團隊的資安 mod 可以載在開源作者的便利 mod 之前,而安全邊界依然成立。
介面維度同樣罕見。Mod 可以編輯或替換 Claude Code 繪製的介面元件——工具結果、Claude 的提問——並加入按鈕與輸入欄位讓其他 mods 回應。目前 mod 可以指定作用於終端機、桌面應用,或兩者皆是。這種可塑性,在真正開源的編輯器之外幾乎找不到。
核心越變越小
公告中最關鍵的細節藏在中段:Claude Code 的部分內建功能現在改以 mods 形式發佈。第一個例子是 /diff——它現在是一個 mod,你可以在 /plugin 中關掉它,或換成自己的實作。Anthropic 表示未來會把更多內建功能遷移到 mods,「讓你可以把 Claude Code 削減到一個小核心,只加回你想要的」。
這是一個低調但重大的架構宣示。這個產品正朝「小核心 + 可替換零件生態系」重構——更接近 Emacs 或 Neovim 的精神,而非封閉的 SaaS 控制台。對一家傳聞中編程代理帶來數十億美元營收的公司而言,選擇讓 harness「可被使用者編程」而不只是「可被使用者設定」,是一個明確的策略豪賭:護城河從控制介面,移轉到在底下跑最好的模型。
「沒有沙箱」——誠實的警告
Anthropic 對風險模型的說明罕見地直白:「Mods 與 Claude Code 本身擁有相同的機器存取權。它們沒有沙箱,你只該安裝來自信任來源的 mods,就像安裝任何要在電腦上執行的程式碼一樣。」
這份坦白有其道理。一個能執行 shell 指令的代理,其插件生態系是一個拓撲全新的供應鏈攻擊面——惡意 mod 不需要利用任何漏洞,因為掛對事件本身就是攻擊。企業版的說明回應了這一點:Team 與 Enterprise 方案的管理員可從管理主控台允許或封鎖插件市集,API 方案則可將受管理的設定推送至使用者機器。在受管理的機器上,一個名為 sec-default(security default)的內建 mod 會最先載入,阻止使用者安裝的 mods 做危險的事,例如覆寫權限拒絕規則——Anthropic 已公開其原始碼,讓管理員能看清它到底限制了什麼。
官方列出的團隊示範案例,讀起來就像在回答「平台團隊實際上會拿這做什麼」:在對話旁的窗格顯示 CI/CD 管線狀態的 mod、在任何指令觸碰正式環境設定前要求確認的 mod,以及最先載入並記錄所有其他 mod 每次呼叫的稽核日誌 mod。
從 Hooks 到 Mods
脈絡很重要。Anthropic 先前的 hooks——由生命週期事件觸發的使用者自訂 shell 指令——已讓開發者嘗到確定性控制的甜頭,社群也以此大興土木:現成的 hook 插件市集、涵蓋全部 23 種 hook 的指南、自動格式化管線。但正如 Anthropic 現在承認的,hooks「無法改寫事件、繪製新 UI 或替換功能。Mods 可以。」
產品文件也看得出演進軌跡——現有 hooks「與 mods 並行持續運作」,這是擴充性模型的延伸,而非取代。值得注意的是,Anthropic 表示在發表前已先在 GitHub 上公開 mods 的設計以蒐集開發者意見,這種開放設計姿態在基礎建設專案比在商業代理框架常見得多。
還有一個自我指涉的巧思,同時也是生產力宣言:你可以用 Claude Code 來改造 Claude Code。叫代理建立一個 mod,它會自己寫 TypeScript、安裝,並在你的即時工作階段中熱重載——工具在你眼前打造改進它自己的功能。
為什麼重要
編程代理市場已收斂到一個熟悉的組合:強大的前沿模型、帶有代理式鷹架的 harness、連接器與權限系統。模型層的差異化昂貴且呈週期性;harness 層的差異化多半是功能清單的軍備競賽。Mods 把競爭搬到另一個戰場——誰的代理能成為最好的「平台」。
如果這個賭注成功,效益會複利累積:團隊專屬 mods 的生態系形成反向的轉換成本(你的擴充是可攜的 TypeScript,而非專屬設定)、社群免費稽核並強化 harness,而 Anthropic 則從數千種 /diff 的客製重實作中,學到哪些功能值得收回核心。如果不成功,mods 會停留在進階使用者的小眾圈,而封閉 harness 的競爭對手在預設體驗上迭代得更快。
無論如何,這次發表重畫了一條看似固定的界線。Harness 不再是禁區——它是一個 API。對兩年來一直在「繞過」工具而非「深入」工具的開發者來說,這才是真正的新聞:Claude Code 從此在某種意義上,是屬於你、任你改寫的。