Claude Code 状态栏怎么配置:/statusline 一句话生成,显示模型、上下文占用和 5 小时 / 7 天用量

Claude Code 底部状态栏可以自己定制:用 /statusline 说一句话让它生成脚本,或在 settings.json 的 statusLine 里指向自己的脚本。本文讲怎么配、脚本能读到哪些字段(模型、上下文、花费、订阅用量)、Windows 写法和不显示时的排查。

NNathaniel bigo··原创首发·AI 辅助撰写
12 分钟读完
资料核对于 2026-11-05 · 依据官方文档与公开资料整理 Pro 账号
本文根据 Claude Code 官方文档《Customize your status line》《Commands》整理,资料核对于 2026-11-05。配图为本站整理的示意图,不是界面截图。本站(bigolab.com)不是 Anthropic 官方网站。

适用于谁

  • 想在 Claude Code 界面底部一直看到当前模型、上下文用了多少的人;
  • 搜「claude hud」「claude code token 速度」,想知道状态栏能显示什么的人;
  • 想知道 5 小时、7 天用量能不能放进状态栏的订阅用户。

结论先说

  1. 状态栏是你自己配的一行(或多行)文字:Claude Code 每次更新时运行你设定的命令,把会话数据以 JSON 通过标准输入(stdin)传给它,命令打印什么就显示什么。
  2. 最省事的做法是 /statusline:官方说它接受自然语言描述,会在 ~/.claude/ 下生成脚本并自动改好设置。
  3. 手动配置在 settings.json 里加 statusLine 字段,type 设为 "command",command 指向脚本或内联命令。
  4. 状态栏在本地运行,不消耗 API token。
  5. 能读到的数据包括模型、上下文占用百分比、会话花费、5 小时与 7 天限额的使用百分比(仅订阅用户)、工作目录等。官方字段表里没有「token 速度」这一项。

配置状态栏的三种方式:/statusline、手写脚本、改 settings.json

图:本站根据 Claude Code 官方文档:Customize your status line 整理的示意图

一、最快的做法:/statusline

在会话里输入:

text
/statusline show model name and context percentage with a progress bar

官方示例用英文,你也可以用中文描述想显示的内容。命令会在 ~/.claude/ 下生成脚本,并更新设置。如果提示你批准文件编辑,批准即可。官方对这个命令的描述是:描述你想要的内容,或者不带参数运行,让它根据你的 shell 提示符自动配置。

想去掉状态栏,运行 /statusline 并告诉它删除,例如 /statusline delete、/statusline clear、/statusline remove it;也可以手动删掉 settings.json 里的 statusLine 字段。

二、手动配置:settings.json

在用户设置 ~/.claude/settings.json(Windows 上是用户目录下的 .claude\settings.json)或项目设置里加:

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

可选字段:

  • padding:额外的水平空白(字符数),默认 0;
  • refreshInterval:每隔 N 秒再运行一次命令,最小是 1。适合显示时间之类随时间变化的内容,不设置则只在事件触发时运行;
  • hideVimModeIndicator:设为 true 时去掉界面自带的 -- INSERT -- 提示,适合你的脚本自己显示 vim 模式的情况。

command 也可以直接写内联命令,官方示例用 jq 读 JSON:

json
{
  "statusLine": {
    "type": "command",
    "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'"
  }
}

官方还给了完整的逐步例子:脚本从标准输入读到 JSON,用 jq 取出模型名、目录和上下文百分比后打印,再用 chmod +x 设为可执行。保存设置后,Claude Code 会自动重新加载并立即运行脚本。更多配置项的位置和优先级见 /guides/claude-code-settings-json。

三、脚本能读到哪些数据

状态栏脚本能读到的常用字段

图:本站根据 Claude Code 官方文档:Customize your status line 整理的示意图

官方字段表里,常用的有:

  • model.id、model.display_name:模型标识和显示名;
  • workspace.current_dir、workspace.project_dir:当前目录和启动目录;
  • context_window.used_percentage、remaining_percentage:上下文已用、剩余的百分比;
  • context_window.context_window_size:窗口大小,默认 200000,扩展上下文的模型是 1000000;
  • cost.total_cost_usd:会话的估算花费,官方说是在本地按标价计算的,可能与实际账单不同;
  • cost.total_duration_ms、cost.total_api_duration_ms:运行时长、等待 API 的时长;
  • cost.total_lines_added、total_lines_removed:改动的行数;
  • rate_limits.five_hour.used_percentage、rate_limits.seven_day.used_percentage:5 小时、7 天窗口的使用百分比;resets_at 是重置时间的 Unix 秒数;
  • effort.level、fast_mode、thinking.enabled:思考强度、快速模式、是否启用扩展思考;
  • session_name、session_id、version、output_style.name、vim.mode、agent.name、worktree.、pr. 等。

要注意几点:

  • context_window.used_percentage 只按输入 token 算(输入 + 缓存创建 + 缓存读取),不含输出;
  • 状态栏读到的是上一次 API 响应的计数,而 /context 会额外估算之后新增的消息,所以 /context 的数字有时更高;
  • rate_limits 只对 claude.ai 的 Pro、Max、Ultra 订阅用户提供,并且要等第一次 API 响应之后才有;用 API 密钥时没有这个字段,脚本里要做缺省处理(官方示例用 // empty);
  • 字段在第一次 API 响应前可能是 null,用 // 0 之类写缺省值,否则会显示 -- 或空白。

订阅用量怎么看、什么时候重置,见 /guides/claude-usage-limits。额度不够、想换更大的订阅时,可以了解 /chongzhi/claude-code。

四、什么时候更新

官方说脚本在会话开始(包括恢复)时运行一次,之后在这些时刻再运行:有新的助手消息、/compact 完成、权限模式变化、vim 模式切换、你改了 command、refreshInterval 到时,以及限额窗口或提示缓存到期。更新有 300 毫秒的防抖;如果脚本还在跑时又有新更新,旧的脚本会被取消。

输出方面,脚本可以打印多行(每个 echo 一行)、用 ANSI 转义码加颜色、用 OSC 8 转义序列做可点击的链接(需要终端支持,如 iTerm2、Kitty、WezTerm)。脚本里读不到终端宽度,用环境变量 COLUMNS 和 LINES。

五、Windows 怎么配

官方说 Windows 上,装了 Git Bash 就通过 Git Bash 运行状态栏命令,没装就用 PowerShell。Git Bash 会吃掉未加引号的反斜杠,所以 command 里的路径要用正斜杠,~ 也可以用。

用 PowerShell 脚本的写法:

json
{
  "statusLine": {
    "type": "command",
    "command": "powershell -NoProfile -File C:/Users/username/.claude/statusline.ps1"
  }
}

官方给的 statusline.ps1 例子读 $input,用 ConvertFrom-Json 取出 cwd、model.display_name 和 context_window.used_percentage 后 Write-Host。装了 Git Bash 的话,也可以直接写成 "command": "~/.claude/statusline.sh" 运行 Bash 脚本。Windows 上 Git 的说明见 /guides/claude-code-install-methods-git-npm-official。

六、状态栏不显示,按顺序查

官方的排查清单:

  • 脚本是否可执行:chmod +x ~/.claude/statusline.sh;
  • 脚本是否把内容输出到 stdout,而不是 stderr;
  • 手动跑一遍脚本,看有没有输出;
  • Windows 且装了 Git Bash 时,路径里的反斜杠是不是被吃掉了;
  • 脚本必须以退出码 0 结束才会显示,非 0 或没有输出会让状态栏变空白;脚本太慢会阻塞更新;
  • 没接受工作区信任对话框时状态栏保持空白(claude --debug 会打印 Status line command skipped: workspace trust not accepted),接受后重启;
  • 企业管理设置里的 allowManagedHooksOnly 或 disableAllHooks 可能让自定义状态栏失效;
  • 用 claude --debug 查看脚本 stderr 和退出码。

另外官方提到:配了自定义状态栏之后,界面底部原来的多数键盘提示(如 esc to interrupt、? for shortcuts)不再显示。

现成的第三方项目

官方文档在「Tips」里提到两个社区项目,ccstatusline 和 starship-claude,提供带主题的现成配置。这是官方的提及,不是官方产品,装之前建议先看一眼代码,安全习惯见 /guides/ai-coding-security-secrets-permissions。

常见问题

Q:状态栏会消耗我的额度吗?

官方说状态栏在本地运行,不消耗 API token。

Q:能显示 git 分支吗?

普通会话的字段表里没有当前 git 分支名(只有 worktree 会话才有 worktree.branch,另有 pr.*),官方的例子是在脚本里自己运行 git,并提醒 git status 这类命令可能拖慢状态栏,可以缓存。

Q:能显示每秒多少 token 吗?

官方字段表里没有这一项。

相关教程

参考资料

  • Claude Code 官方文档:Customize your status line — https://code.claude.com/docs/en/statusline
  • Claude Code 官方文档:Commands — https://code.claude.com/docs/en/commands

Nathaniel 的更多内容

  1. 01

    Claude Code 支持语音输入吗:/voice 开启,按住空格说话,要 claude.ai 账号和本地麦克风,支持的听写语言有限

    Claude Code 命令行版支持语音输入(voice dictation):输入 /voice 开启,按住空格说话,转写文字直接进输入框。但必须用 claude.ai 账号登录、有本地麦克风,SSH 和云端会话不能用;官方的听写语言清单里没有中文。

    Claude0
  2. 02

    Claude Code 任务完成提醒、提示音、Windows 通知怎么设:终端响铃、Notification hook 和 Stop hook 的区别

    Claude Code 做完任务想收到提醒,官方有三条路:在设置里把 preferredNotifChannel 设为 terminal_bell 让终端响铃;用 Notification hook 在它等你输入或批准时弹窗;用 Stop hook 在每次回复完毕时执行命令。本文含 Windows 写法和排查。

    Claude0
  3. 03

    Claude Code 提示未登录、怎么退出登录、切换账号:/login、/logout、/status 和 CLAUDE_CONFIG_DIR

    Claude Code 提示 Not logged in 时运行 /login;退出登录用 /logout;想同时用两个账号,官方的做法是给每个账号单独设 CLAUDE_CONFIG_DIR。本文讲几个登录命令、登录凭据存哪、/status 怎么看当前账号,以及 API 密钥覆盖订阅的坑。

    Claude0
  4. 04

    Claude Code 安装卡住、很慢、失败怎么办:先测下载服务器,再按报错对照(下载中断、Killed、PATH、PowerShell)

    Claude Code 安装卡住或失败,官方的排查顺序是:先测 downloads.claude.ai 能不能连上,再按报错分类处理。本文整理下载中断、Linux 内存不足 Killed、Docker 里卡住、Windows 命令用错 shell 等情况的官方对策。

    Claude0
  5. 05

    Claude Code 怎么连接远程服务器(SSH):桌面版加 SSH 环境,或登录服务器后在终端里直接用

    Claude Code 连远程服务器有两种官方做法:桌面版 Code 标签页里添加 SSH 环境,桌面版会自动在服务器上装好 Claude Code;或者自己 SSH 登录服务器,在终端里安装并登录。本文讲两种做法的步骤、服务器要求和常见报错。

    Claude0
  6. 06

    Claude Code 历史记录在哪、文件夹在哪:~/.claude 里每个文件是什么,哪些 30 天后会被清掉,哪些不能删

    Claude Code 的会话记录、提示历史、配置和登录凭据都在用户目录下的 .claude 文件夹(Windows 是 %USERPROFILE%\.claude)。本文按官方文档列出各文件的用途、默认保留期、哪些不能删,以及怎么清理、怎么换位置。

    Claude0

同产品的其他教程

  1. 01

    Claude Code 怎么导出会话、导出上下文:/export、/copy 和 .jsonl 会话记录的区别

    Claude Code 导出对话用 /export(纯文本,可直接写入文件),只要最后一条回答用 /copy。本文讲两个命令的区别、会话记录 .jsonl 在哪、脚本怎么拿结构化结果,以及「导出上下文」换新会话时官方给的做法。

    Claude0
  2. 02

    Claude Code 代码改坏了怎么回退:/rewind 或连按两次 Esc,三种恢复方式,哪些改动回退不了

    Claude Code 改坏了代码,可以输入 /rewind(别名 /undo),或在输入框为空时连按两次 Esc,选择只恢复代码、只回退对话或两者一起。本文讲菜单里每一项的含义,以及 Bash 命令、子代理、外部改动为什么回退不了。

    Claude0
  3. 03

    别让 Claude Code 一直问你能不能执行:选 don't ask again、写 allow 规则、切 acceptEdits 或 auto 模式

    Claude Code 总弹「能不能执行」,可以分三层解决:弹窗里选 don't ask again 存规则,用 allow 规则放行常用命令,或按 Shift+Tab 切到 acceptEdits、auto 模式。本文按场景讲,并说明哪些提示官方就是关不掉。

    Claude0
  4. 04

    Claude Code 官网下载在哪、怎么安装:原生安装、npm、Homebrew、WinGet 怎么选,Windows 要不要装 Git

    搜「Claude Code 官网下载」「为什么要装 Git」「为什么不推荐 npm」,官方文档的答案是:安装说明在 code.claude.com,原生安装标为推荐,npm 要 Node.js 22,Windows 的 Git 是可选的。本文按官方文档逐项说明。

    Claude0
  5. 05

    Claude Code 无法粘贴、无法读取图片怎么办:Ctrl+V 和 Alt+V 的区别,拖放和路径三种放图方法

    Claude Code 里粘贴不了截图、读不到图片?官方文档给了三种把图放进对话的方法:拖放进窗口、Ctrl+V 粘贴(Windows 和 WSL 用 Alt+V)、直接写图片路径。官方没有为「粘贴失败」单列排查,本文把官方写明的做法和通用排查分开讲。

    Claude0
  6. 06

    Claude 报错 529 overloaded_error 怎么办:API 暂时过载是什么意思,和 429、500、504 怎么区分

    Claude API 返回 529 overloaded_error,官方的解释是 API 暂时过载,全体用户高峰时都可能遇到,不是你的 Key 或余额出了问题。本文按官方错误页(2026-10 查询)讲清它和 429、500、504 的区别、SDK 怎么自动重试、流式请求中途报错怎么处理。

    Claude0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~