ccstatusline
sirmalloc/ccstatusline加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象你在终端里跑了三个小时的 Claude Code。屏幕上只有一个闪烁的光标符在提示你输入——你根本不知道现在跑的是 Opus 还是 Haiku、上下文窗口还剩多少、这次会话烧掉了多少钱、当前分支有没有未提交的改动。屏幕右上角那个黑底的状态栏是 IDE 给的,但终端用户什么都没有。
ccstatusline 就是来解决这件事的:它不改变 Claude Code 的任何行为,只是把自己挂到提示符下方那一行,让这行字实时显示模型名、Git 分支、上下文占用、Token 消耗和会话成本。

图:ccstatusline 的实际运行效果,右侧面板为配置 TUI(图片来源:仓库 screenshots 目录)
Claude Code 有一个隐藏能力:在 ~/.claude/settings.json 里写入 statusLine 配置后,它每次渲染提示符时会把当前会话状态(模型、工作目录、成本、上下文等)以 JSON 形式从标准输入喂给你的命令,你打印什么它就显示什么。
ccstatusline 做的事情只有一句话:成为那个命令。
{
"statusLine": {
"type": "command",
"command": "npx -y ccstatusline@latest",
"padding": 0,
"refreshInterval": 10
}
}
注意 command 里的 npx -y——这意味着零安装,克隆都不用,用户第一次启动就能看到效果。TUI 里还提供"固定版本全局安装"选项,把当前版本锁进全局并让状态栏固定调用它,避免每次跟随 @latest 漂移。
真正让它从"又一个状态栏脚本"变成生态中枢的,是它 widget 化 的架构。仓库 src/widgets/ 目录下有超过 100 个单文件小组件,每个只负责渲染一个指标:

图:Powerline 分隔符风格的状态栏,可自由配置颜色与主题(图片来源:仓库 screenshots 目录)
这种设计的价值在于可组合:用户不需要写代码,只要在 TUI 里像整理抽屉一样增删、排序、改色,就能拼出符合自己工作流的一行。分隔符支持"弹性"模式——两端固定、中间自动撑满终端宽度。

图:工作目录与会话成本同时显示,数值可按项目前缀分组(图片来源:仓库 screenshots 目录)
这个项目 2025 年 8 月创建,到 2026 年 11 月已积累 13.5k Star、607 Fork、540 次提交、121 位贡献者,在 Claude Code 生态里属于头部项目。支撑这个速度的是几处容易被忽视的工程投入:
docs/WINDOWS.md(6.8KB)覆盖 PowerShell 安装、Windows Terminal 配置、WSL 与代码页问题,源码里有 windows-code-page.ts、usage-windows.ts 专门处理 Win 差异。HTTPS_PROXY,并同时支持 NO_PROXY 与 no_proxy 的主机/域名/端口级排除。locales.ts,状态栏文案可切语言。refreshInterval——ccstatusline 对这些都做了版本探测与降级,甚至专门在文档里开了一节解释"为什么某个目录状态栏是空的但别的目录正常"。CLI 路径(实际使用者):极低。npx -y ccstatusline@latest 一条命令进入 TUI,选几个组件、挑个颜色、确认写入 ~/.claude/settings.json,完事。前提是本地有 Node.js 14+(或 Bun)和 Claude Code CLI。
# 零安装试用
npx -y ccstatusline@latest
# 固定版本(避免每次跟随 latest)
npm install -g ccstatusline
ccstatusline
二次开发路径:门槛略高。项目用 Bun 做构建(bun build src/ccstatusline.ts --target=node --format=esm),用 TypeScript 7 原生编译器做类型检查,用 ESLint 10 加 stylistic 插件做规范约束,用 Vitest 跑测试,还用 Remotion 做宣传视频渲染。最有意思的是它给 ink@6.2.0 打了补丁(patches/ink@6.2.0.patch)——为了修终端渲染的某个问题。
第一,它不是"AI 项目"而是"AI 工具链项目"。 它的价值不在模型能力,而在把 Anthropic 的用量统计、上下文窗口这些黑箱数据可视化。它自己不训练也不推理任何模型。
第二,npx 启动有延迟。 项目自己在 README 里承认了这一点:状态栏每次刷新都要拉起一个进程,npx 冷启动可能要几百毫秒到数秒,在终端里是能感知到的卡顿。解法是全局安装或固定版本,这也是它把"Pinned global install"做成 TUI 首次运行默认引导的原因。
第三,高度依赖 Claude Code 的内部行为。 项目从会话 JSONL 转录文件里解析 Token 用量,依赖的是 Anthropic 未公开承诺稳定的文件格式;statusLine 协议本身也在演进。这是一把双刃剑:ccstatusline 总是比官方更新更快,但也总有被一次上游改动打断的可能。
第四,供应链风险面较大。 它会在你的机器上执行 shell 命令(git、gh/glab、jj、自定义命令),并会写入 ~/.claude/settings.json 这类关键配置文件。虽然项目在版本号校验、正则过滤、命令转义上做了不少防护(版本号用严格 semver 正则拦截,避免 shell 语法注入),但把它装进开发环境仍然需要用户自己判断。
第五,145 个 open issues。 在 13.5k Star 的体量下不算失控,但对于一个"把用户所有会话数据读一遍"的工具来说,社区争议主要集中在隐私边界上。
ccstatusline 并不是孤例。同生态里还有 CCometixLine(Rust 写的状态栏)、claude-powerline、codachi(养成类状态栏宠物)、claude-hud(29k Star 的 HUD 插件)等数十个项目在做同一件事。
这背后是一个更清晰的趋势:Claude Code 的 CLI 界面正在从"能干活"走向"好干活"。当大量开发者的核心工作流已经迁移到终端里的 AI 编码代理,终端自身的状态栏就成了新的"仪表盘"争夺战场——而这块屏幕此前完全空置。
ccstatusline 的位置很特殊:它不是流量最大的(Claude HUD 29k),也不是技术最激进的(CCometixLine 用 Rust 重写追求性能),但它是生态里最完整的一个——100+ 组件、跨平台、文档详尽、社区活跃(TUI 交互式配置本身就成了一种"配置体验"的范式)。
从这个角度看,它更像一个基础设施:别人做的那些炫酷的状态栏、养成宠物、实时用量监控,很可能最终都会把它当作数据来源或参照实现。
项目信息速览
| 项目 | 内容 |
|---|---|
| 仓库 | sirmalloc/ccstatusline |
| Star / Fork | 13,523 / 607 |
| 语言 | TypeScript(3.48 MB,467 个 TS/TSX 文件) |
| 许可证 | MIT |
| 创建时间 | 2025-08-08 |
| 最近推送 | 2026-11-02 |
| 提交数 / 贡献者 | 540 / 121 |
| 测试文件 | 约 220 个(Vitest) |
| 部署形态 | CLI / 终端 TUI,无 Web UI,不支持容器化 |