自定义状态栏
用任意 shell 脚本在 Claude Code 底部显示上下文用量、成本、git 状态等:/statusline 生成、手动配置、数据如何流入脚本。
状态栏是 Claude Code 底部一条可定制的栏,它运行你配置的任意 shell 脚本:脚本从 stdin 收到会话数据的 JSON,把它打印出来的内容显示出来,让你随时一眼看到上下文用量、成本、git 状态等。
适合这些场景:想在工作时监控上下文窗口用量;需要追踪会话成本;同时在多个会话里工作、需要区分它们;想让 git 分支和状态始终可见。
状态栏渲染在内置页脚徽章上方自己的一行里,并不会替换它们。配置了自定义状态栏后,Claude Code 会不再显示页脚大部分的键盘提示(如 esc to interrupt)。
设置状态栏
两种方式:用 /statusline 命令让 Claude Code 帮你生成脚本,或手动创建脚本并加进设置。
用 /statusline 命令:它接受描述你想显示什么的自然语言,Claude Code 在 ~/.claude/ 里生成脚本文件并自动更新你的设置:
/statusline show model name and context percentage with a progress bar手动配置:在用户设置(~/.claude/settings.json)或项目设置里添加 statusLine 字段,type 设为 "command",command 指向脚本路径或内联 shell 命令:
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh",
"padding": 2
}
}command 字段在 shell 里运行,所以也可以用内联命令而不是脚本文件。下面的例子用 jq 解析 JSON 输入,显示模型名和上下文百分比:
{
"statusLine": {
"type": "command",
"command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'"
}
}可选字段:
padding:给状态栏内容增加额外的水平间距(以字符计),默认0refreshInterval:除了事件驱动的更新外,每 N 秒重新运行你的命令,最小为1;状态栏显示时钟这类基于时间的数据,或后台子智能体在运行时用它hideVimModeIndicator:抑制提示下方内置的-- INSERT --文字;当你的脚本自己渲染vim.mode时设为true,避免模式显示两次
禁用状态栏:运行 /statusline 并让它移除或清除状态栏(如 /statusline delete),或手动从 settings.json 里删掉 statusLine 字段。
一步步做一个状态栏
下面手动创建一个显示当前模型、工作目录和上下文窗口用量百分比的状态栏,这就是 /statusline 替你做的事。示例用 Bash 脚本(macOS 和 Linux 可用;Windows 见官方的 PowerShell 和 Git Bash 示例)。
-
Claude Code 通过 stdin 把 JSON 数据发给你的脚本。下面的脚本用命令行 JSON 解析器
jq(可能需要安装)提取模型名、目录和上下文百分比,再打印一行格式化的文字。保存为~/.claude/statusline.sh:#!/bin/bash # 读取 Claude Code 发到 stdin 的 JSON 数据 input=$(cat) # 用 jq 提取字段 MODEL=$(echo "$input" | jq -r '.model.display_name') DIR=$(echo "$input" | jq -r '.workspace.current_dir') # "// 0" 在字段为 null 时提供回退值 PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1) # 输出状态栏;${DIR##*/} 只取文件夹名 echo "[$MODEL] 📁 ${DIR##*/} | ${PCT}% context" -
让脚本可执行:
chmod +x ~/.claude/statusline.sh -
告诉 Claude Code 把你的脚本作为状态栏运行,在
~/.claude/settings.json里加上:{ "statusLine": { "type": "command", "command": "~/.claude/statusline.sh" } }
保存文件后,Claude Code 会自动重新加载设置并立即运行你的脚本,状态栏出现在界面底部。
官方原文还列出了脚本能拿到的所有字段(模型、工作区、上下文窗口、成本、提示缓存、vim 模式等)、多行状态栏、颜色与可点击链接、子智能体状态栏,以及可直接使用的示例脚本。