跳转到内容

状态栏 Status Line

开车时你不会一直盯着仪表盘,但余光要能看到油量、速度、发动机状态——出了问题你才知道。

Status Line 就是 Claude Code 终端的「仪表盘」。它显示在输入框附近,实时告诉你当前会话的关键状态:用了多少上下文、在什么模型上、在哪个 git 分支。不用你主动查,余光一扫就清楚。

最该盯的一个数:上下文用量

我们在 上下文窗口 里讲过,Claude 用满 200K token 会悄悄变笨。但问题来了——你怎么知道快满了?默认界面不会一直提示你。等你发现 Claude 开始忘事,已经晚了。

状态栏解决这个:把上下文用量百分比常驻显示,你随时能看到「当前 62%」「当前 88%」。看到逼近 80%,就该考虑 /compact 压缩或开新会话了。这是主动管理上下文的第一道防线。

除了上下文,状态栏还能显示其它你在乎的信息:当前模型、git 分支、当前目录、会话时长——你配什么它显示什么。

状态栏配在 settings.json 的 statusLine 字段里。它支持「自定义脚本」——你写一段命令,命令的输出就是状态栏显示的内容:

{
"statusLine": {
"type": "command",
"command": "echo \"model: $CLAUDE_MODEL | branch: $(git branch --show-current)\""
}
}

这段配置让状态栏显示 model: sonnet | branch: feature/login$CLAUDE_MODEL 是 Claude Code 注入的环境变量,其它信息用普通 shell 命令取。

命令写长了塞进 JSON 不优雅。更常见的做法是写个独立脚本,statusLine 调用它:

{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}

脚本里你想怎么写就怎么写:

~/.claude/statusline.sh
#!/bin/bash
model="$CLAUDE_MODEL"
branch=$(git branch --show-current 2>/dev/null || echo "no-git")
context="${CLAUDE_CONTEXT_USED:-?}%"
# 上下文超 80% 标红
if [ "${CLAUDE_CONTEXT_USED:-0}" -gt 80 ]; then
ctx_color="\033[31m"
else
ctx_color="\033[32m"
fi
reset="\033[0m"
echo "🤖 $model | 🌿 $branch | ${ctx_color}ctx: $context${reset}"

这个脚本做了三件事:

  1. 显示当前模型($CLAUDE_MODEL
  2. 显示当前 git 分支
  3. 显示上下文用量百分比,超过 80% 变红色警示

脚本可以做得很复杂——根据上下文用量变色、显示会话花了多少钱、显示当前在哪个项目。完全由你掌控。

写状态栏脚本时,Claude Code 会注入几个有用的环境变量供你读取:

变量 含义
CLAUDE_MODEL 当前用的模型
CLAUDE_CONTEXT_USED 上下文已用百分比
当前目录、git 状态等 用普通 shell 命令取

具体变量名以官方文档为准,但核心是模型和上下文用量这两个——它们是最该常驻显示的。

回到开头那个问题:怎么主动管理上下文?状态栏是答案。

一个推荐配置:让状态栏总是显示上下文百分比,并按区间变色:

用量 颜色 含义
0-60% 绿色 健康,放心用
60-80% 黄色 该注意了,考虑压缩
80-95% 红色 危险,立刻 /compact 或开新会话
95%+ 自动触发 auto-compact

这样你不用主动查,余光看到颜色变了就知道该动手。这是从「被动等到 Claude 变笨」到「主动管理上下文」的关键习惯转变。

除了上下文用量,常见的状态栏元素:

元素 为什么有用
当前模型 知道在 sonnet 还是 opus,成本差很多
git 分支 防止在错误的分支上改代码
当前目录 多项目切换时不迷糊
会话时长 提醒自己别在一个会话里耗太久
本次 token 用量 配合 /cost 看花了多少

不用全显示,挑你在乎的。状态栏空间有限,信息越精炼越好——一长串看着累,关键数字一眼看到才实用。

Claude Code 自带两个查状态的命令:

  • /cost:显示当前会话的 token 用量和花费。
  • /status:显示版本、模型、账号信息。

这两个是主动查的——你想起来才敲。状态栏是被动看的——常驻显示,余光扫到。两者互补:状态栏管「日常余光监控」,/cost/status 管「仔细查一次」。

刚开始用状态栏,别一上来写复杂脚本。从最简配置起步:

{
"statusLine": {
"type": "command",
"command": "echo \"$CLAUDE_MODEL | $(git branch --show-current 2>/dev/null) | ctx: ${CLAUDE_CONTEXT_USED:-?}%\""
}
}

一行显示:模型、分支、上下文百分比。够用了。等熟悉了再慢慢加颜色、加信息。

Status Line 是终端的仪表盘——statusLine 配一段脚本,常驻显示模型、git 分支、上下文用量。最重要的用途是 context 用量监控:绿黄红三色提示,看到红了就 /compact,从被动变笨进化到主动管理上下文。


至此,核心概念板块的 11 个组件全部讲完。回到 概念总览 回顾它们怎么协作,或者去 进阶深入 看五大组件的深度玩法。🚀