📌 项目地址:jarrodwatts/claude-hud | ⭐ 24,030 颗星 | 🔧 JavaScript | 📜 MIT
一句话回答“到底还剩多少”
Claude Code 不会主动告诉你上下文用掉多少,API 配额还剩多少。等你被 “context limit reached” 打断时,已经晚了。
claude-hud 做的事很简单:把这两条关键数据变成两行状态栏,永远显示在你的输入框上面。
项目 400 行 JavaScript,两个维护者,GitHub 24030 个 star。
安装:两个平台各有一个坑
在 Claude Code 会话里执行:
/plugin marketplace add jarrodwatts/claude-hud
/plugin install claude-hud
/reload-plugins
/claude-hud:setup
然后重启 Claude Code,让新的 statusLine 配置生效。
Linux 用户翻车点:如果报 EXDEV: cross-device link not permitted,是因为 /tmp 是独立文件系统(tmpfs),插件安装无法跨设备链接。解决方案是先改临时目录:
mkdir -p ~/.cache/tmp && TMPDIR=~/.cache/tmp claude
在这个新会话里执行安装。这不是插件的问题,是 Claude Code 的平台限制。
Windows 用户翻车点:如果 /claude-hud:setup 报找不到 JavaScript runtime,先装 Node.js LTS:
winget install OpenJS.NodeJS.LTS
重启 shell,再跑一次。Node.js LTS 是 Windows 上唯一支持的运行时。
完成安装后,终端里出现类似这样的两行:
[Opus] │ my-project git:(main*)
Context █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (1h 30m / 5h)
默认两行怎么读、怎么用
第一行:模型类型(Opus)、提供商标识(比如 Bedrock、Vertex)、项目目录(可配置1-3级深度)、git 分支。扫一眼确认当前环境,信息密度不高。
第二行是本插件唯一的、不可替代的价值。
上行是 Context 条。绿(0-65%)→ 黄(65-80%)→ 红(80%+),代表上下文窗口占用率。
我自己的规则:
- 到 65%(黄色区),执行
/compact。实测一个多文件重构会话从 70% 压缩到 38%,压缩后每轮响应从 40+ 秒降到 15 秒左右。代价是压缩后 Claude 需要约 30 秒重新加载上下文,但这个成本我接受。 - 到 80% 以上(红色区),手动删掉历史对话里无用的文件引用(比如过去
read调用的长输出),通常能释放 10-15%。没有这个插件之前,我只能等 Claude 报错才知道顶到了上限。
下行是 Usage 条,括号里是当前会话时长和 5 小时重置窗口。
- 到 50% 放慢提问节奏
- 到 80% 只能等重置,没有别的办法
这两条进度条的价值在于:用量是客观的,感觉是偏差的。全靠直觉判断还剩多少上下文或额度,多半会误判。
可选三行:什么时候打开、怎么看
用 /claude-hud:configure 可以开启额外显示。每行对应一个具体诊断场景。
工具活动行
◐ Edit: auth.ts | ✓ Read ×3 | ✓ Grep ×2
告诉你 Claude 当前在读、写、搜索哪些文件。
有一次我看到它反复 grep 同一个词 7 次,每次间隔不到 1 秒,没有任何写入——说明它在原地绕圈。我直接 Ctrl+C,给了更精确的指令,省了 5 分钟。
另一次,我看到它持续 edit 同一个文件超过 20 次,说明它理解出了问题,改了又改。我介入后发现是之前的某次修改破坏了代码逻辑,从那个点回退重做更有效率。
子代理状态行
◐ explore [haiku]: Finding auth code (2m 15s)
每个子代理显示模型类型、运行时长和当前操作。
如果某个子代理状态超过 4 分钟没变(一直显示 “Searching”),我会 cancel 重做。2 分钟是我个人的心理阈值——低于这个继续等,超过这个大概率走偏。
做多文件重构时,我开过 6 个子代理并行跑,各自负责不同文件模块。这一行让我一眼看出哪个子代理还卡着没开始。
TODO 进度行
▸ Fix authentication bug (2/5)
自动识别 - [ ] 格式的任务列表。如果你在对话里写了任务清单,这行就自动显示完成进度。
它的实际价值:当你开多个任务时,不用翻聊天记录去查做到第几步了。状态行直接告诉你。
原理与性能
Claude Code 提供了 statusline API。插件通过 stdin 接收 JSON 格式的事件数据,处理后把格式化文本写到 stdout,直接显示在终端里。
Claude Code → stdin JSON → claude-hud → stdout → displayed in your terminal
不需要额外窗口,不需要 tmux,不需要特殊终端。整个项目约 400 行 JavaScript,几乎没有性能开销。我在低配 MacBook Air 上挂着跑一周,没有感知到卡顿。
什么时候用得上
如果你是单轮问答,写完两三文件就关,这个插件的信息量确实过剩。
如果你需要:
- 持续监控长会话,看上下文何时逼近上限
- 并行子代理调试时,监控每路进展
- 批量文件操作时,确认工具是否在正确目标上
它给的数据是实打实的。
卸载:
/plugin remove claude-hud
完整配置选项在 GitHub README 里,包括调整目录深度、TODO 文件路径等。