作者:互联网 时间: 2026-07-24 08:20:16
状态栏最实用的点,可不是把终端底部堆得满满当当,而是能让你一眼看到模型、项目目录、上下文占用还有Git状态这些关键信息。Claude Code 会把当前会话的所有数据打包成JSON传给一条本地命令,再把这条命令输出到标准输出的内容,直接显示在输入框的下方。
动手之前先确认好两件事:一是Claude Code能正常进入项目会话,二是你已经同意了当前工作目录的信任提示。macOS和Linux的示例一般用Bash;Windows这边如果装了Git Bash就走Git Bash跑,没装的话就用PowerShell。要是脚本需要解析JSON,你可以用jq,换成Python或者Node.js也完全没问题。对了,状态栏命令是在你本地执行的,根本不会消耗API令牌哈。
在哪操作:直接在Claude Code会话的输入框里就行。具体做啥:输入 /statusline,然后用大白话说清楚你想显示哪些字段,比如模型名称、当前目录、上下文百分比这些;要是弹出文件写入授权的提示,先核对下目标路径是你自己的Claude配置目录,没问题再确认。怎么算成了:等你下一次跟Claude Code交互之后,输入框下面会多出单独一行,能看到模型、项目目录还有上下文比例,就搞定了。出问题咋整:要是命令跑完了还没看到状态栏,先确认你已经同意了工作区信任,再查查生成的脚本单独跑能不能输出内容,还有设置里是不是开了关闭全部Hook的选项。

这张图里重点别看提示符,要看它下面单独的那一行:模型名、项目目录和上下文百分比都显示出来了,就说明Claude Code已经读到了状态栏配置,并且成功跑通了本地命令。
在哪操作:你个人Claude配置目录里的状态栏脚本文件。具体做啥:新建一个脚本,从标准输入读取整段JSON,再提取 model.display_name、workspace.current_dir 和 context_window.used_percentage 这几个字段,最后用一条输出语句打印结果就行;要是用macOS或者Linux,记得给脚本加个可执行权限。怎么算成了:给脚本传一份模拟的JSON进去,终端只输出一行干净的文本,没有调试日志也没有报错,就对了。出问题咋整:输出为空的话先查字段路径对不对、有没有做空值回退;提示权限不够就重新检查可执行权限;Windows那边路径的反斜杠被吞了的话,换成正斜杠或者明确调用PowerShell就行。
在哪操作:个人设置文件或者当前项目的设置文件都行。具体做啥:加上 statusLine 配置,把类型设为 command,再让 command 指向你刚才写的脚本;要是需要额外缩进就再加个 padding 设置,想要定时刷新就配个 refreshInterval。怎么算成了:保存设置之后再发一次消息交互,状态栏会自动刷新,根本不用重新装Claude Code。出问题咋整:界面没更新的话先查JSON语法对不对、脚本的绝对路径对不对,再直接跑一遍那条命令试试;别把脚本的错误信息只写到标准错误里,正常输出也得留着。
在哪操作:状态栏脚本里处理 context_window.used_percentage 的地方。具体做啥:把百分比换算成固定长度的填充块和空白块,末尾还是保留原始百分比,颜色可以按低、中、高三个区间来切换。怎么算成了:输入框下面出现长度固定的进度条,百分比变了之后,进度条也会在下一次状态更新的时候跟着变。出问题咋整:首次会话显示空值的话,给字段加个零值回退就行;条形长度不对的话,先把小数转成整数,再限制一下范围;颜色乱码的话,先暂时去掉ANSI转义序列,只留纯文本的进度条试试。

截图里的字符条和右边的百分比说的是同一个状态。为啥要留着数字呢?因为字符宽度可能会受终端字体的影响,百分比还是能给你最明确的判断。
在哪操作:状态栏脚本读取完项目目录之后的位置。具体做啥:先判断当前目录是不是Git仓库,是的话就读取当前分支、已暂存的文件数和未暂存的文件数;要是不在仓库里就直接省略Git这部分内容。怎么算成了:进入Git项目之后,状态栏能显示分支名,还有暂存、修改的数量;切换到普通目录的时候,也不会蹦出错误文本。出问题咋整:要是碰到大型仓库明显卡顿的话,别每次刷新都跑完整的差异扫描,可以按会话ID建个短时缓存,把缓存有效期控制在几秒内就行。

图里分支名后面的两组数字,分别对应不同的变更状态。脚本要做到数据不存在的时候就悄悄省略,别把命令错误啥的挤到状态栏里。
在哪操作:脚本里处理Claude Code输入JSON的成本字段的地方。具体做啥:读取会话的估算成本和持续时间,把成本固定成好读的小数位数,再把毫秒换算成分钟和秒。怎么算成了:状态栏能同时显示金额和已经用了多久,开新会话之后数值会按新会话重新计算。出问题咋整:成本字段暂时为空的话,就用零值或者先不显示;别把这里的客户端估算值当成最终账单哦,实际费用还是要以账户的计费记录为准。

金额和计时器适合用来观察单次会话的相对消耗。它们跟模型名放在同一行就行,没必要把更多低频字段都堆进来。
在哪操作:脚本的最终输出区域。具体做啥:把项目相关的信息放在第一行,上下文、成本和时长放在第二行;每行各输出一次,输出的顺序就是界面上显示的顺序。怎么算成了:状态栏变成两行,第一行显示模型、目录和Git信息,第二行显示会话指标,就算是窄终端也能看清核心信息。出问题咋整:内容被截断的话,先删掉装饰符号和低频字段,再根据Claude Code提供的终端列数调整输出;要是多行加颜色之后出现错位,先退回单行纯文本试试对不对。

这张图的分层特别清楚:第一行回答“我正在哪个项目里干活”,第二行回答“当前会话用了多少资源”。要是一眼看不出这两个层次,说明字段还得再精简精简。
在哪操作:状态栏脚本里读取Git远程仓库信息的地方。具体做啥:把仓库地址转换成终端支持的OSC 8超链接序列,状态栏里只显示仓库名称就行;macOS那边按Command加单击打开,Windows和Linux按Control加单击。怎么算成了:仓库名称有可点击的样式,按住对应的修饰键就能从终端打开仓库页面。出问题咋整:文字在但是点不了的话,先确认你的终端支不支持OSC 8;要是系统自带的Terminal.app不支持这个功能,别当成是脚本的问题哈。要是远程会话或者终端复用器里显示转义字符,就换成能可靠解释转义序列的输出方式,或者退回到普通的仓库名显示。

悬停提示里能看到仓库地址,就说明终端已经识别了链接序列。正文显示的内容还是要短,只留仓库名就行。