Claude Code 可以改装了:几行 TypeScript,能改它的提示词、工具调用和界面

2026-10-05 AnthropicClaude Code发布工程实践

10 月 1 日,Anthropic 给 Claude Code 加了一个叫 mods 的东西。官方定义就一句:一小段 TypeScript 函数,用来改 Claude Code 的行为。

此前你能改的只有 hooks 那层——在某个动作前后插一段脚本。hooks 改不了事件本身,也画不出界面。mods 把这两件事都开了。

它挂在什么上

Claude Code 每次做事都会发一个事件:调用工具、申请权限、画屏幕上的某一块。mod 就是挂在某个事件上的函数,四种挂法:

  • before:事件之前跑,可以改写要送进模型的东西
  • after:事件之后跑
  • instead:直接顶掉这个事件
  • wrap:前后各跑一次,把事件包在中间

一个函数能做到的事,官方列了四类:在提示词到达模型之前改掉它;拦下、改写或重试一次工具调用;批准或拒绝一次权限请求;在 Claude 读到工具输出之前把里面的密钥抹掉。

界面也能改。mod 可以重画工具结果那一行、重画 Claude 提问的弹窗,也可以加按钮和输入框,别的 mod 还能响应你点的按钮。目标可以只选终端、只选桌面端,或者两个都选。

怎么装

mods 跟着插件走,安装方式和普通插件一样:CLI 里跑 /plugin,或者从 Claude 的插件目录装。多个 mod 挂同一个事件时按加载顺序执行,先加载的先看事件、最后看结果,所以不同作者的 mod 可以叠着用。

已经搬成 mod 的内置功能,官方明确点名的是 /diff——你可以在 /plugin 里把它关掉,或者换成自己写的版本。官方说后面会把更多内置功能搬成 mod,让 Claude Code 能精简到一个很小的核心,再按需要加回来。

一人公司拿它做什么最划算

不是写酷炫插件,是把你自己每天重复做的那个确认动作自动化掉。

  • 固定套路免确认。 某几类命令你每次都点”允许”,写个 mod 直接批掉,剩下的照旧问。
  • 生产环境保护。 官方举的例子就是:任何要碰生产配置的命令,先弹一次确认再执行。
  • 审计日志。 最先加载的 mod 可以记录后面所有 mod 的每一次调用。一个人干活也要有这层——出事的时候你能回答”它到底动了什么”。

泼冷水

第一,mod 和 Claude Code 拥有同一份机器权限,不沙箱化。装一个 mod 等于把本机的读写、网络、环境变量里的 API key 都交给了别人写的代码。官方的原话是”只装你信任的来源,跟你装任何软件一个标准”。

第二,sec-default 这个内置保护 mod,只在 Team、Enterprise 以及有托管设置的机器上自动最先加载。用 API 按量付费的个人用户没有这层默认保护,风险自己扛。

第三,生态第一天。官方的样例代码放在 GitHub 上,第三方市场里的 mod 质量没法保证。能只用官方样例就先用官方的。

第四,它和 hooks 的能力有重叠。已经用 hooks 做稳的事别急着重写,两套并存时出问题是按加载顺序互相覆盖的那种问题,很难查。

另外,官方博客通篇没写最低版本号;网上流传的”需要 2.1.287 以上”来自第三方整理,装不上时再去查文档确认。

具体建议

  1. 先在 /plugin 里把 /diff 关掉试一天,确认你能接受”内置功能可替换”这件事,再动手写自己的。
  2. 第一个自己写的 mod 就写审计日志,别写功能。它最先加载、逻辑最简单,还能顺手看清 Claude 一天到底调了多少次工具。
  3. 装别人的 mod 之前,先读它 hook 了哪些事件、要了什么权限。看不懂 TypeScript 就别装,这不是能通过试用发现问题的东西。
  4. 让 Claude 帮你写 mod 是可以的——官方说它能自己写、自己装、还会热重载。但写完之后那段代码你得自己读一遍,它不会替你承担供应链风险。

原文:https://claude.com/blog/claude-code-mods

原文出处 · 事实以此为准
Claude 官方博客 · Customize Claude Code with mods
阅读原文 ↗