Claude Code 自定义状态栏 Status Line 教程
来源:互联网
时间:2026-07-24 07:00:15
状态栏这东西,最实用的地方可不是把终端底部塞得满满当当,而是让你一眼就能看到模型、项目目录、上下文占用还有Git状态这些关键信息。Claude Code 会把当前会话的所有数据打包成JSON,传给一条本地命令,然后把命令的标准输出直接显示在输入框下方。
动手之前,先确认两件事:一是Claude Code能正常进入项目会话,二是你已经同意了当前工作目录的信任提示。macOS和Linux的示例一般用Bash;Windows这边,如果装了Git Bash就走Git Bash,没装的话就用PowerShell。如果脚本需要解析JSON,可以用jq,换成Python或者Node.js也完全没问题。对了,状态栏命令是在你本地执行的,根本不消耗API令牌。
先用 /statusline 生成个基础状态栏
在哪操作:
具体做啥:
/statusline
怎么算成了:
出问题咋整:

这张图里重点别看提示符,要看它下面单独的那一行:模型名、项目目录和上下文百分比都显示出来了,就说明Claude Code已经读到了状态栏配置,并且成功跑通了本地命令。
手动配置脚本和 settings.json
让脚本能读取会话 JSON
在哪操作:
具体做啥:
model.display_name
workspace.current_dir
context_window.used_percentage
怎么算成了:
出问题咋整:
把脚本接到状态栏上
在哪操作:
具体做啥:
statusLine
command
command
padding
refreshInterval
怎么算成了:
出问题咋整:
把上下文占用换成进度条
在哪操作:
context_window.used_percentage
具体做啥:
怎么算成了:
出问题咋整:

截图里的字符条和右边的百分比说的是同一个状态。为啥要留着数字呢?因为字符宽度可能会受终端字体的影响,百分比还是能给你最明确的判断。
加上 Git 分支和变更数量
在哪操作:
具体做啥:
怎么算成了:
出问题咋整:

图里分支名后面的两组数字,分别对应不同的变更状态。脚本要做到数据不存在的时候就悄悄省略,别把命令错误啥的挤到状态栏里。
显示会话估算成本和持续时间
在哪操作:
具体做啥:
怎么算成了:
出问题咋整:

金额和计时器适合用来观察单次会话的相对消耗。它们跟模型名放在同一行就行,没必要把更多低频字段都堆进来。
信息太多就拆成两行
在哪操作:
具体做啥:
怎么算成了:
出问题咋整:

这张图的分层特别清楚:第一行回答“我正在哪个项目里干活”,第二行回答“当前会话用了多少资源”。要是一眼看不出这两个层次,说明字段还得再精简精简。
在支持的终端里加个仓库链接
在哪操作:
具体做啥:
怎么算成了:
出问题咋整:

悬停提示里能看到仓库地址,就说明终端已经识别了链接序列。正文显示的内容还是要短,只留仓库名就行。
完成检查清单
- Claude Code 能正常进入项目会话,当前目录已经同意了工作区信任。
- 状态栏脚本能独立读取模拟JSON,并且只往标准输出里写需要显示的内容。
- 设置里的statusLine类型是command,命令路径在当前系统里能正常执行。
- 下一次交互后能看到基础状态栏,模型、目录和上下文比例都和当前会话一致。
- Git、成本、时长、进度条或者多行输出,只保留真正需要的字段,窄终端下不会被严重截断。
- 碰到空值、卡顿、乱码或者链接点不了的情况,已经分别检查了字段回退、缓存、纯文本输出和终端能力。