AI图鉴

AI图鉴首页 › AI 资讯 › Claude Code Mods:给终端装一块自己的仪表盘

Claude Code Mods:给终端装一块自己的仪表盘

来源:掘金 · 发布时间:10-12 · 由 AI图鉴每小时自动聚合

Claude Code 用久了,有件事一直很别扭:token 到底花在哪了?,需要我自己去查,或者通话 llm 去查。 想知道这次会话烧了多少 Token?手动敲 /context。

Claude Code 用久了,有件事一直很别扭:token 到底花在哪了?,需要我自己去查,或者通话 llm 去查。

想知道这次会话烧了多少 Token?手动敲 /context。想看工具调用次数?翻聊天记录数。想让这些数字一直挂在眼前?对不起,Claude Code 原生没这个能力——它的界面是封闭的,你改不了。

Mods 就是 Claude Code 最近放出来的插件能力,专门解决这类「想把信息显示出来」的需求。

一、Mods 到底能做什么

Anthropic Claude Code 团队核心成员 Thariq Shihipar 博客里这样回答了mods 能干嘛:

定制整个 Claude Code harness,执行逻辑和 UI 都能改。比如俄罗斯方块直接显示在终端里;比如每次对话结束自动 fork 一个 sub agent 考你“这个任务真的完成了吗”。因为 fork 会保留 prompt cache,成本非常低。它是“可变软件”的预览,让生成式软件可以被安全地定制。

“可变软件”的预览, 就是ui话定制化,功能监控,官方解释 Mods 是一个插件,一个由 JavaScript / TypeScript 事件处理函数组成的插件。这些函数直接跑在 Claude Code 自己的进程里,可以直接拿到:内部事件的完整上下文,以及界面本身的绘制权。

具体来说,它能做四件事:

- 画出新的界面元素:在转录流旁边的窗格、或输入框上方的条带,放上标签页、按钮、文本框。

- 重绘 Claude Code 自己的界面:替换它已经画好的部分,比如工具调用行、spinner(那个转圈的等待提示)、或者它反问你的对话框。

- 拦截工具调用和请求:比如在向用户提问时先挂起工具调用、回答问题但不让工具真的执行、把请求转发给另一个模型。

- 挂自己的命令和工具:注册一个 /command,立刻跑你的函数,不经过模型那一轮对话——哪怕 Claude 正在忙。

顺带提一句:Mods 官方还提到,同一个 Mod 里的多个 hook 共享它们所在文件里的变量。所以一个 hook 累加的计数,另一个 hook 可以直接拿来渲染。注意是「同一个文件」,跨文件就拿不到了。

二、mod 零 Token获取 数据 是怎么做到的

先看一个官方给的最小示例,它做的事情很简单:在 spinner 后面挂一个「工具调用次数」的计数器。

一个 Mod 的目录结构长这样:

first-mod/

├── .claude-plugin/

│ └── plugin.json

└── hooks/

├── hooks.json

└── register.js

核心逻辑都在 hooks/register.js:

// 两个 hook 共享的计数器

let calls = 0

// Mod 加载时 Claude Code 会调用一次

export function register(on) {

// 每次 Claude 即将调用工具时触发

on('tool.call', async ($, e, next) => {

calls += 1

// 让 Claude Code 重绘界面,新计数才会显示出来

$.ui.invalidate('ui.render')

// 放行,工具照常执行

return next(e)

})

// 每次 Claude Code 绘制 spinner 时触发

on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

// 保留原有 spinner,只在后面追加计数文本

return next({

...e,

props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' },

})

})

}

看完这段就能理解「零 Token」从哪来了:整个链路里没有任何一次模型调用。on('tool.call') 触发时,加 1 是个纯 JavaScript 运算;$.ui.invalidate('ui.render') 只是给界面发一个「重画」信号;next(e) 把事件原样放行。数据既没进模型上下文,也没等模型回话,自然就不产生 Token 消耗。

一个判断标准:只要你的 hook 里不让模型生成东西,它就不烧 Token。反过来说,如果你想在 Mod 里调一次模型去总结当前会话,那该花还是得花。

三、Mods Hook 还是 Settings Hook

最容易搞混的就是这两个概念。名字都带 Hook,但一个是进程内函数,一个是外部命令。

选择其实很直接:你想要「新的显示界面」或「自定义命令」,用 Mods;你想用已有脚本做拦截、阻断、审计,用 Settings Hook。

我的实际感受是这两者更像是互补而非替代。以前想给终端加个实时面板,唯一的办法就是写 hook 脚本往 stdout 打日志,然后接受它和主界面分离、还不好排版;现在 Mods 把「往界面上贴东西」这件事变得合法了。

四、用 Mods UI 监控 Token

回到开头那个让我一直别扭的问题:Token 到底花在哪了?

没有 Mods 的时候,我只有两个办法:

- 手动敲 /context 看一眼——每查一次,节奏全毁。

- 在 CLAUDE.md 里写一堆规则,让 AI 每隔几轮帮我汇报一次——能用,但这是拿 Token 换 Token,纯属左手倒右手。

有了 Mods 之后,Token 消耗可以显示在界面上。

我直接用了现成的 Mods——claude-mods.com 市场里的 context-bar。(也可以自己编写或者让让 Claude 编写)

版本要求:Claude Code 2.1.287 以上。

两条命令就能装上:

claude plugin marketplace add hamzafer/claude-code-mods

claude plugin install context-bar@claude-code-mods

装完之后,Token 分布就常驻在界面上了。

Mods :不是所有「让 AI 帮我做事」的需求都得塞进模型。显示、计数、布局这类事情,本质上是确定性的界面逻辑ui显示,让使用者更加直观的看到想要的数据和进度。mods 可能是后面cc 重要优化使用方向,就像Thariq 说的:

在极限情况下,我们设想的是 artifacts 会成为你进入整个 harness 的界面。你可以像评论一份实时文档一样评论你的工作计划,也许还能看到多个 agent 在做不同的事。为你的 harness 提供一个实时界面,大概就是事情发展的方向。

本文由 AI图鉴自动抓取并翻译,版权归原作者所有;如需查看原文请点下方链接。

相关 AI 工具

Claude Code

Anthropic 推出的AI编程工具

Loomi

创作版Claude Code,AI原生写作工具

OpenCode

开源 AI 编程工具 , Claude Code 最佳平替

UI Discovery

UI Discovery 是面向产品设计师和开发者的 AI 辅助界面灵感与设计发现平台,整理真实产品网站、W

相关免费羊毛

Future AGI

免费档含每月 10 万次网关请求

OpenRouter

免费模型库:19 个模型可白嫖

智谱 AI

GLM-4-Flash 模型调用免费

硅基流动

新用户注册送 14 元代金券

同源资讯

Hermes Agent 实战篇:AI 驱动的技术博客自动发布系统

掘金 · 10-12

从页面渲染到智能体:ARMS Node.js 探针解锁 SSR + AI 全链路可观测

掘金 · 10-12

Google用AI面试时,程序员还在刷LeetCode?

掘金 · 10-12

RocketMQ for AI:基于 LiteTopic 的 Agent 异步通信架构与生产实践

掘金 · 10-12

近段时间,AI加持下,我的开发感悟

掘金 · 10-12

从 Bun 到 Deno,AI 时代的开发工具正在经历什么?

掘金 · 10-12

阅读原文(juejin.cn)

标题、摘要与正文均来自该信源的公开页面,版权归原作者所有;本站自动聚合与翻译,仅作出处跳转。

← 返回 AI 资讯列表AI工具图鉴首页

返回 AI图鉴首页 · 提交工具 · 合作与友链 · 关于本站 · 528 款 AI 工具分类导航 · 每日 AI 热门项目与动态