✷ Harness

Claude Mods 是什么?

Claude Code 以前只是一个聊天窗口。现在你可以用 mods 扩展它:mods 是一种小插件,能在 Claude Code 里面加面板、按钮、命令,甚至游戏,直接画在 Claude Code 的界面里。

先打个比方

想想手机上的 App,或者浏览器里的扩展。Mod 就是同一个思路,只不过对象换成了 Claude Code。Claude Code 本身是一个让你聊天、让它写代码的窗口,mod 则让你往这个窗口里加东西。

  • 手机有 App。
  • 浏览器有扩展。
  • Claude Code 有 mods。

手机有 App,浏览器有扩展,Claude Code 有 mods

一个 mod 能改什么?

Claude Code 普通的设置只能运行命令。Mods 可以直接在界面里绘制:

  • 聊天旁边的侧边面板
  • 提示词上方的一条栏
  • 一个新的 /命令,即使 Claude 正在工作也能立刻执行
  • 重新设计过样式的加载动画或工具调用行

mod 能改动 Claude Code 窗口里的哪些部分

它是怎么工作的?

Claude Code 会广播事件:“Claude 调用了一个工具”“用户发了一条消息”“屏幕需要重绘”。Mod 监听这些事件,对每个事件可以:

  1. 只看一眼,放行
  2. 修改它,再往下传
  3. 自己接手处理

事件到达 mod,屏幕随之变化

十几行代码写成的 mod

这个 mod 会统计 Claude 的工具调用次数,并把数字加到加载动画上,让它显示成“Thinking · tool calls: 3…”。

let calls = 0

export function register(on) {
  on('tool.call', async ($, e, next) => {
    calls += 1
    $.ui.invalidate('ui.render')   // redraw the screen
    return next(e)                 // let the tool run as usual
  })

  on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
    return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
  })
}

两个钩子共用一个变量:一个负责计数,一个负责绘制。这就是一个 mod。

为什么不用 hook、skill 或 MCP server?

Claude Code 有好几种扩展方式,各自干的活不一样:

  • 设置里的 hook:事件发生时运行一条 shell 命令。适合拦截、放行或记录日志。
  • Skill:一份 Claude 会去读的 Markdown 说明。适合你总在重复粘贴同一段提示词的时候。
  • MCP server:给 Claude 新的工具,让它够得着外部系统。
  • Mod:在 Claude Code 内部运行的代码,也是唯一能在界面里绘制的一种。

还能做什么?

官方的示例 mods 展示了大致的范围:

  • token-weather:显示在提示词上方的上下文窗口“天气预报”。
  • blast-radius:拦下有风险的 shell 命令,并显示“继续”和“取消”按钮。
  • replay-theater:一个 /replay 命令,展示上一轮改了什么。

一个真实的例子:Idle Arcade

等 Claude 干活很无聊,所以我做了一批游戏,在聊天旁边的面板里运行。Claude 工作的时候你来玩。Claude 每调用一次工具,就会往你的游戏里掉一份奖励。Claude 做完后,游戏会暂停并告诉你。

Claude 工作时,每次工具调用都会变成你游戏里的一份奖励

Fish Shooter 是第一个游戏。金币数和下注额放在顶栏,每次工具调用成功,就会有一条金鱼游过水面。Claude 写代码,你打鱼。

在 Claude Code 里运行的 Fish Shooter

目前一共有 6 个原创游戏:fish shooter、brick breaker、snake、space shooter、tap flyer 和 jump runner。全部开源。

一个提醒

Mods 没有沙箱。它们以你的权限运行,能看到你的提示词和工具调用。只安装你信任的来源,并且先运行 claude plugin validate。想关掉某个 mod,在 /plugin 里禁用它,或者用 --safe-mode 启动 Claude Code。

一句话总结

Mod 是一个住在 Claude Code 里的小程序。它监听里面发生的事,然后往屏幕上加东西、改东西,或者替你做决定。它很强大,所以只安装你信任的 mods。

试一试

你需要终端里的 Claude Code v2.1.287 或更高版本。

/plugin install idle-arcade --marketplace beasaltfish/idle-arcade

然后输入 /idle。

想加一个你自己的游戏?仓库里的 AGENTS.md 会告诉你的编程 agent 怎么做一个,并提交 pull request。