规范文件
Claude Code 状态栏:用 stdin JSON 显示上下文比例
把状态栏脚本当独立数据接口,处理缺值后再接入设置;离线演算不等于产品运行。
状态栏接收会话 JSON,通过脚本 stdout 显示信息。本文目标是写一个只显示模型名与上下文比例的原创 Node.js 脚本,再用合成输入检查缺值处理。前提是本机有 Node.js 且使用支持 statusLine 的 Claude Code;没有配置真实状态栏。
- 核验日期
- · 未实测
- 适用于
- Claude Code 适用于本机 Claude Code;官方页面未给统一版本门槛,以 2026-11-04 核验与实际界面为准。[1]
- 涉及工具
文件位置
| 路径 | 适用范围 | 读取方式 |
|---|---|---|
~/.claude/settings.json → statusLine | 状态栏命令配置;脚本路径按自己的本地文件指定。 | Claude Code 将会话 JSON 传给命令 stdin,显示其 stdout。[1] |
什么时候用
- 需要显示当前会话模型与上下文比例,并能审查脚本。[1]
什么时候不用
- 希望状态栏输出证明任务成功、账单结算或精确剩余额度。[1]
输入和显示是两个接口
官方说明 statusLine 的命令接收 stdin JSON,并显示 stdout;可配置 type: command 与 command。本练习只读取 model.display_name、context_window.used_percentage,不读取凭据或调用网络。缺值时显示 unknown,避免用 0 假装已确认上下文为空。[1]
原创脚本与本地演算
把下面脚本保存成自己目录中的 .mjs 文件。用合成输入提供 display_name: demo-model 和 used_percentage: 25,预期输出 demo-model | context 25%;缺少两字段时显示 unknown。脚本不执行输入中的文本,但真实采用时仍应审查你配置的命令及其所有依赖。[1]
import fs from "node:fs";
const data = JSON.parse(fs.readFileSync(0, "utf8"));
const name = data.model?.display_name ?? "unknown";
const used = data.context_window?.used_percentage;
const pct = typeof used === "number" ? `${used}%` : "unknown";
console.log(`${name} | context ${pct}`);
接入前检查命令和依赖
确认 Node.js 可用、脚本路径正确,再在 settings 的 statusLine.command 指向它。官方还提供 /statusline 让 Claude 生成脚本并修改设置,此流程会涉及文件编辑与模型使用。本页采用可审查的手工样例,只解释配置位置,没有运行该生成命令或写入设置。[1]
验收显示与停止条件
离线演算已检查完整输入、缺值输入和合法脚本语法。实际启用后另查看状态栏显示与错误;解析失败、路径错误或异常值时先停用命令排查。上下文比例是会话字段,不能直接推算订阅剩余额度或已结算费用。本文未启动 Claude Code 状态栏或调用模型。[1]
来源
以下均为官方页面,核验日期见各条;链接指向核验时的版本。