Claude Code 状态栏编辑器statusline
把上下文、限额、花费、git 与项目环境放进终端底部,拖一拖就配好
- 125 个指标段
- 每次刷新 1.63 ms · 2.1 MiB 内存
- 比 Node.js 快 14 倍
- 开源 · 一条命令安装 · 支持 Codex
只有高亮区域是你的状态栏(可用 116 列)。上方输入框和分隔线、下方权限模式行,以及状态栏左右各 2 列的边距,都由 Claude Code 绘制,无法通过 statusLine 更改。预览与原生程序使用同一渲染器,git、项目与系统数据用示例值代替。
模型
上下文
累计 token
Prompt cache
费用与时间
限额
会话
工作区
轮次(transcript)
Git
语言与运行时
项目包
云与环境
系统
磁盘占用
自定义
点选一个段来修改图标、名称、颜色、格式和进度条样式。
安装这份配置
Claude Code 2 行、15 个段。在终端运行(macOS / Linux):
How it works
三步换上新状态栏
- 1
编排
从段目录拖入需要的指标,分成多行;点选一个段修改图标、名称、颜色、数字格式与进度条。预览用示例数据实时渲染。
- 2
复制命令
页面把布局压缩成一段配置码,拼进安装命令。配置码只是 JSON,可用 decode 子命令原样查看。
- 3
在终端运行
安装脚本下载对应平台的程序并校验 sha256,然后由 setup 打印配置摘要、备份 settings.json,只修改其中的 statusLine 一项。
不想编排,直接装默认布局:
curl -fsSL https://omnitt.com/statusline/install.sh | sh恢复原来的状态栏并删除程序:
~/.claude/bin/omnitt-statusline uninstallPerformance
性能:Zig 与 JavaScript、Python 对比
状态栏命令不是常驻进程:每条消息之后、以及设置了 refreshInterval 时每隔几秒,Claude Code 都会重新启动它一次。所以单次启动的耗时与内存,就是状态栏的延迟和长期耗电。同一份配置(两行 8 个段)、同一份会话输入,四种实现的输出先逐字节比对一致,再计时。
omnitt-statusline 每次刷新
1.63ms
峰值内存 2.1 MiB
比 Node.js 快 13.9×
- ZigZig 0.15.21.63 msCPU 1.15 ms2.1 MiB
- Node.jsv22.21.022.68 ms13.9× · CPU 21.32 ms40.2 MiB
- Bun1.4.012.46 ms7.6× · CPU 11.16 ms18.1 MiB
- Python3.14.720.16 ms12.4× · CPU 18.62 ms15 MiB
- Apple M4,Darwin 27.0.0,2026-10-20;hyperfine 预热 20 次后每种实现运行 300 次,取中位数。
- 测的是每次刷新都要付出的固定成本:进程启动、读配置、解析输入、格式化输出。git 等子进程各实现都要调用,耗时相同,没有计入。
- JS 与 Python 版本只用标准库、不依赖第三方包,是同类脚本里最轻的写法;脚本与测量命令都在仓库的 bench 目录,可在自己的机器上复现。
Trust
安装的是什么
开源(MIT)
源码在 github.com/imatrixme/statusline,Zig 编写的单个可执行文件,没有网络代码,没有自动更新。
来源可核验
只由仓库的 GitHub Actions 从带标签的提交构建,附带 artifact attestation,可用
gh attestation verify核验。下载即校验
本站的 install.sh 与 Release 中的同名文件逐字节一致,写死了各平台程序的 sha256,不一致就中止。
预览即实物
网页预览运行同一渲染器编译成的 WebAssembly,相同配置与输入下,输出与原生程序逐字节一致。
v1.2.0 的 sha256(与 Release 的 SHA256SUMS 相同)
| install.sh | f9394766d5f4af658e6433c99e4df78fd88b2748b30a8fae867188a832898923 |
| omnitt-statusline-darwin-arm64 | 5ff82083d89e04e6ec75055289822f440fd51b5c063220504b6630c76dc66aab |
| omnitt-statusline-darwin-x64 | 8924329a6f2431f30394b10ec6e428c8b3524df7de088a3d62d1d12d757f98f7 |
| omnitt-statusline-linux-arm64 | acdf388628769ec4113d47032659daf572a30498b95e43a4622920ac440919ba |
| omnitt-statusline-linux-x64 | dd0aeec6979d9d91f4830b705a1ff6b9d252eb45f77082553abb7f02e2c93204 |
Manual setup
手动配置 statusLine
安装脚本做的事就是在 ~/.claude/settings.json 写入下面的 statusLine 键(写前自动备份)。Claude Code 每次刷新状态栏时执行这条命令,把会话 JSON 从 stdin 传入,命令的 stdout 就是状态栏内容。路径必须是绝对路径。
{
"statusLine": {
"type": "command",
"command": "/Users/you/.claude/bin/omnitt-statusline",
"padding": 0
}
}125 segments
全部指标段
“会话输入”来自 Claude Code 每次刷新时传入的 JSON;git、对话记录、项目与系统信息由程序在本地读取。
模型7会话输入
- 模型名称
model - 模型 ID
model-id - 推理强度
effort - 扩展思考
thinking - 快速模式
fast-mode - 输出风格
output-style - Agent 名称
agent
上下文10会话输入
- 上下文进度条
ctx-bar - 上下文已用 %
ctx-used-pct - 上下文剩余 %
ctx-remaining-pct - 上下文 token(已用/上限)
ctx-tokens - 上下文上限
ctx-window-size - 上次调用输入
last-input - 上次调用输出
last-output - 上次缓存读取
last-cache-read - 上次缓存写入
last-cache-write - 超过 200k
exceeds-200k
累计 token2会话输入
- 输入 token
tokens-in - 输出 token
tokens-out
Prompt cache4会话输入
- 缓存命中率
cache-hit - 缓存冷热
cache-warm - 缓存剩余时间
cache-expires - 缓存未命中次数
cache-misses
费用与时间6会话输入
- 费用
cost - 会话时长
session-duration - API 时长
api-duration - API 时间占比
api-ratio - 新增行数
lines-added - 删除行数
lines-removed
限额9会话输入
- 5 小时限额 %
limit-5h-pct - 5 小时限额进度条
limit-5h-bar - 5 小时限额重置
limit-5h-reset - 7 天限额 %
limit-7d-pct - 7 天限额进度条
limit-7d-bar - 7 天限额重置
limit-7d-reset - 消费限额 %
spend-pct - 已消费
spend-used - 消费上限
spend-limit
会话4会话输入
- 会话名称
session-name - 会话 ID
session-id - Claude Code 版本
version - Vim 模式
vim-mode
工作区6会话输入
- 当前目录
dir - 项目目录
project-dir - 附加目录数
added-dirs - 仓库
repo - Worktree
worktree - Pull request
pr
轮次(transcript)8对话记录
- 本轮耗时
turn-time - 输出速度
speed - 压缩次数
compactions - 提问次数
prompts - 工具调用(会话)
tool-calls - 工具调用(本轮)
turn-tool-calls - 最近工具
last-tool - 空闲时长
idle
Git17git
- 分支
git-branch - 提交哈希
git-sha - 有未提交改动
git-dirty - 已暂存文件
git-staged - 未暂存文件
git-unstaged - 未跟踪文件
git-untracked - 领先远端
git-ahead - 落后远端
git-behind - stash 数
git-stash - 改动新增行
git-diff-add - 改动删除行
git-diff-del - 上次提交距今
git-last-commit - 最近标签
git-tag - 上游分支
git-upstream - 冲突文件
git-conflicts - worktree 数
git-worktrees - 进行中的操作
git-state
语言与运行时13项目文件与 PATH
- Node.js
node - Bun
bun - Deno
deno - Python
python - Python 虚拟环境
python-venv - Go
go - Rust
rust - Java
java - Ruby
ruby - PHP
php - Swift
swift - Zig
zig - .NET SDK
dotnet
项目包3项目文件与 PATH
- 包名
pkg-name - 包版本
pkg-version - 包管理器
pkg-manager
云与环境10环境变量与 CLI 配置
- Kubernetes context
k8s-context - Kubernetes 命名空间
k8s-namespace - Docker context
docker-context - AWS profile
aws-profile - AWS 区域
aws-region - Google Cloud 项目
gcloud-project - Terraform workspace
terraform - Nix shell
nix-shell - SSH 会话
ssh - 容器内
container
系统15系统
- 时钟
clock - 日期
date - 主机名
hostname - 用户名
user - 系统负载
load - 可用内存 %
mem-avail - CPU 占用
cpu - 已用内存
mem-used - 内存占用 %
mem-used-pct - 已用交换区
swap-used - 磁盘剩余
disk-free - 磁盘占用 %
disk-used-pct - 风扇转速
fan - 开机时长
uptime - 电量
battery
磁盘占用8后台测量的目录占用(缓存 5 分钟)
- 当前目录占用
dir-size - node_modules
node-modules - Rust target 目录
rust-target - Go 构建与模块缓存
go-cache - iOS Pods 目录
pods - Xcode DerivedData
xcode-derived - Gradle 缓存(Android / Java)
gradle-cache - Maven 本地仓库
maven-repo
自定义3自定义
- 静态文字
text - 环境变量
env - 命令输出
command
Codex CLI
Codex 内置状态栏项(0.163.0)
Codex 在 ~/.codex/config.toml 的 [tui] 中读取 status_line(内置项 id 的有序列表)与 status_line_use_colors。setup 只改这两个键,并丢弃当前 Codex 版本不认识的 id;未安装 Codex 时跳过。
- 模型
model - 模型与推理强度
model-with-reasoning - 推理强度
reasoning - 当前目录
current-dir - 项目名
project-name - 主机名
hostname - Git 分支
git-branch - PR 编号
pull-request-number - 相对默认分支的改动
branch-changes - 运行状态
run-state - 权限配置
permissions - 审批模式
approval-mode - 上下文剩余 %
context-remaining - 上下文已用 %
context-used - 主限额剩余
five-hour-limit - 周限额剩余
weekly-limit - Codex 版本
codex-version - 上下文窗口大小
context-window-size - 会话 token 总量
used-tokens - 输入 token
total-input-tokens - 输出 token
total-output-tokens - 线程额度(企业版)
thread-credits - 线程费用(企业版)
estimated-thread-cost - 线程 ID
thread-id - Fast 模式
fast-mode - Daybreak
daybreak - 原始滚动模式
raw-output - 线程名
thread-name - 线程标题
thread-title - 工作区通知(企业版)
workspace-headline - 任务进度
task-progress
FAQ
常见问题
为什么用 Zig 写,而不是 Node.js 或 Python?
Claude Code 每次刷新状态栏都会重新启动一次命令,启动开销就是延迟和耗电。同一配置、同一输入、输出逐字节一致的条件下(Apple M4,中位数):Zig 版 1.63 ms、峰值内存 2.1 MiB;Node.js 22.68 ms、40.2 MiB;Bun 12.46 ms、18.1 MiB;Python 20.16 ms、15 MiB。差距主要来自解释器与运行时的启动,而不是格式化逻辑本身。
安装会改动哪些文件?
程序装到 ~/.claude/bin/omnitt-statusline,配置写到 ~/.config/omnitt-statusline/config.json;~/.claude/settings.json 先备份,再只改 statusLine 一个键。配置里有 Codex 部分时,备份 ~/.codex/config.toml 后只改 [tui] 下的 status_line 与 status_line_use_colors。setup 会逐条打印改动。
怎么卸载或回到原来的状态栏?
运行 ~/.claude/bin/omnitt-statusline uninstall。它把 statusLine 与 Codex 的两个键恢复成安装前的样子,并删除程序与配置;settings.json 的备份会保留。
程序会联网或自动更新吗?
不会。渲染器只读取 Claude Code 通过标准输入传来的会话 JSON,以及本地 git、对话记录、项目文件与系统信息。语言段只在目录里有对应项目文件时,运行 PATH 上该工具的 --version 查询版本(结果缓存 60 秒);云与环境段只读环境变量和 kubectl、docker、aws、gcloud 的本地配置文件,不调用这些命令。磁盘占用段由一个低优先级的后台进程遍历对应目录(只统计大小,不读文件内容),结果缓存 5 分钟。源码中没有网络代码,也没有自动更新。联网的只有安装脚本:它从 GitHub Release 下载程序。
“命令输出”段安全吗?
命令输出段会在每次刷新时用 /bin/sh 执行你填写的命令。为防止别人分享的配置码夹带命令,setup 安装前会逐条显示这些命令并要求确认;没有终端可确认时直接丢弃这些段。
Codex 能用同样的状态栏吗?
不能完全一样。Codex(0.163.0)不能运行自定义命令,只能从 31 个内置项中挑选与排序,并开关主题颜色;图标、颜色、进度条都不可定制。页面的 Codex 标签页生成这部分配置,可一键对应 Claude 布局里有等价项的段。
图标显示成方框怎么办?
图标来自 Nerd Fonts,终端需要使用 Nerd Font 字体(例如 Maple Mono NF、JetBrainsMono Nerd Font)。也可以在属性面板里选择“不要图标”。