![]()
Claude Code的用户正在经历一种新型焦虑:写代码写到一半,突然不确定自己还剩多少额度。这时候你得停下手里的事,输入/usage,等系统吐出一堆格式化文本,读完再回来——上下文已经断了一半。一位开发者在高强度编码时统计过,这种打断一天能发生十几次,且总在最关键的时刻。
额度体系本身够复杂了。活跃上下文窗口、会话配额、周配额、单模型配额,四层限制互相重叠。但Anthropic没给实时可视化工具,用户只能在黑箱里盲开。这就像开车时仪表盘被藏进了手套箱,想知道油量得停车翻找。
有人决定自己造一个仪表盘。不是等官方,是用一个Bash脚本,在单次Claude Code会话里现写现用。成果是屏幕底部一条常驻状态栏,背景刷新,永不阻塞终端。
状态栏长什么样
最终效果可以一眼读完:
main │ Sonnet 4.6 │ Ctx ▓▓░░░░░░ 34% │ ⏳ ▓▓▓░░░░░ 46% → 19h00 (3h20m) │ 42% / Snt 59% ↻ Mon 14h 5m
五个色块各司其职。分支名和模型版本是环境锚点。上下文用量用进度条+百分比,会话配额显示当前消耗和下次重置时间,周配额和Sonnet专用配额并列,右侧是倒计时。颜色规则简单粗暴:50%以下绿色,50%-80%黄色,80%以上红色。
这套编码让用户在扫视瞬间做决策:绿色意味着可以启动大规模重构,黄色提醒尽快收尾,红色就是现在立刻保存。不需要记忆任何数字,不需要心算剩余时间。
官方埋的钩子
Anthropic其实预留了接口,只是没宣传。~/.claude/settings.json里有个statusLine字段,支持把任意命令的输出钉在界面底部。配置只有四行:
"statusLine": {
"type": "command",
"command": "~/.claude/hooks/statusline.sh"
![]()
Claude Code每次刷新状态栏都会调用这个脚本,把stdout原样渲染。约束很硬:这条路径必须快。任何同步网络请求都会直接冻结界面,用户体验瞬间崩解。
开发者采用了缓存优先架构。渲染路径只读本地文件,更新路径在后台异步跑。两条路径完全解耦,这是状态栏类工具的黄金法则。
没有API,怎么拿数据
核心难题:Claude Code没有公开的额度查询接口。/usage命令的输出是纯文本,为人类阅读设计,不是机器可读格式。更麻烦的是,Claude Code是交互式CLI(命令行界面),没有--quiet或--json模式能静默取数。
解决方案绕了个弯。脚本每10分钟启动一个脱离的tmux会话,命名claude-usage-bg,在里面新开Claude Code实例,自动执行/usage,用正则解析文本输出,把结构化数据写入~/.claude/usage-exact.json。主界面永远只读这个缓存文件,延迟忽略不计。
tmux在这里是技术关键。只有把它关进脱离会话,才能避免阻塞用户当前的工作终端。锁文件/tmp/claude-usage-refresh.lock防止重复抓取,120秒超时机制兜底僵尸进程。整套流程像给Claude Code做了个胃镜——无痛、定期、不影响宿主活动。
为什么这事值得看
这个脚本的真正价值不在功能本身,而在示范了一种用户自治的路径。当官方工具缺位时,社区可以用现有接口拼装出生产级方案。Anthropic的settings.json钩子设计得足够开放,让这种二次开发成为可能,但又没开放到需要承担API稳定性承诺的程度。
状态栏的呈现方式也有讲究。进度条比数字更直观,颜色编码比文字更快,倒计时比时间戳更友好。这些不是炫技,是降低认知负荷的刻意设计。开发者说,自从装上这个脚本,他再也没在编码中途打断自己去查额度。
目前这个方案在GitHub上被 fork 了数百次,衍生出多个变体:有人加了声音警报,有人接入了Home Assistant,还有人把数据流进了Prometheus做长期监控。原始作者保持克制,核心代码至今不到200行。
一个细节:脚本里硬编码了模型名称的映射表,因为/usage输出里的模型标识符和官方文档不完全一致。这种fragile(脆弱)的解析是技术债,但在官方提供机器可读格式之前,这是唯一可行的桥接方案。作者在每个版本更新后手动验证正则,把维护成本压到了最低。
如果Anthropic未来开放正式API,这套架构可以无缝迁移——只需要替换tmux抓取层,渲染和缓存逻辑完全复用。这种前瞻性设计让脚本有了超出临时工具的生命周期。
现在的问题是:当你的主力工具不提供你想要的可见性时,你愿意花一个下午自己造,还是继续忍受中断式的工作流?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.