免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

清晰高效!自定义Claude Code状态栏

发布日期:2025-11-29 19:36:23 浏览次数: 1661
作者:字节笔记本

微信搜一搜,关注“字节笔记本”

推荐语

一键掌握Claude Code运行状态,自定义状态栏让开发效率翻倍!

核心内容:
1. 自定义状态栏的直观价值与多场景应用优势
2. Claude Code提供的完整状态数据结构解析
3. 两种实现方式:快捷指令配置与脚本文件修改

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

我们可以为Claude Code 创建自定义状态行以显示上下文信息,如图所示:

43e6c531-cda0-47a6-b902-68ea6966aadf.png

这里就显示了项目名,Claude Code 目前使用的模型,还有已经使用的Token数量。

通过自定义状态行,可以让一些有用的上下文信息直接显示输入框的下方,最大的好处就是非常直观的展示运行情况。

尤其是在多窗口多项目情况下,Claude  Code运行状态一键便知,类似于Token消耗也可以快速提醒我们是否达到了压缩的阈值,方便提前进行代码的收尾工作,以免触发不必要的压缩。

那么还可以显示哪些信息呢?

Claude Code本身提供发如下的输出结构

{
"hook_event_name": "Status",
"session_id": "abc123...",
"transcript_path": "/path/to/transcript.json",
"cwd": "/current/working/directory",
"model": {
"id": "claude-opus-4-1",
"display_name": "Opus"
},
"workspace": {
"current_dir": "/current/working/directory",
"project_dir": "/original/project/directory"
},
"version": "1.0.80",
"output_style": {
"name": "default"
},
"cost": {
"total_cost_usd": 0.01234,
"total_duration_ms": 45000,
"total_api_duration_ms": 2300,
"total_lines_added": 156,
"total_lines_removed": 23
}
}

要自定义自己个性化状态栏,最简单的方法是使用Claude Code内置的/statusline命令,我们只需要在这个命令后面加上需要配置和显示的内容就可以,非常的简单。

38423fd1-a345-4e67-a016-c3517c518217.png

比如下面就是将模型颜色改成橙色,Claude Code会调用这个指令来配置文件。

/statusline show the model name in orange

除了指令,还可以修改自定义配置文件,具体来说就是在这个配置文件修改.claude/settings.json 中添加脚本文件 ,对应到statusLine 命令字段。

{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh",
"padding": 0 // Optional: set to 0 to let status line go to edge
}
}

我的statusline.sh脚本如下,他就充分解析了Claude Code的内置参数,可以拿去直接抄作业。

#!/bin/bash
# Claude Code 状态行 - 包含目录、git 分支、模型和 token 统计

input=$(cat)

# 提取数据
cwd=$(echo "$input" | jq -r '.workspace.current_dir // .cwd')
cwd_name=$(basename "$cwd")
model=$(echo "$input" | jq -r '.model.display_name // "Claude"')
transcript=$(echo "$input" | jq -r '.transcript_path')

# 获取 git 分支(跳过可选锁)
git_branch=""
if [ -d "$cwd/.git" ]; then
git_branch=$(cd "$cwd" && git --no-optional-locks branch --show-current 2>/dev/null)
if [ -n "$git_branch" ]; then
git_branch=" on ${git_branch}"
fi
fi

# 统计 token 数量(从 transcript 文件)
token_info=""
if [ -f "$transcript" ]; then
# 提取所有 input_tokens 和 output_tokens
input_tokens=$(grep -o '"input_tokens":[0-9]*' "$transcript" | cut -d: -f2 | awk '{s+=$1} END {print s}')
output_tokens=$(grep -o '"output_tokens":[0-9]*' "$transcript" | cut -d: -f2 | awk '{s+=$1} END {print s}')

# 如果成功获取到 token 数据
if [ -n "$input_tokens" ] && [ -n "$output_tokens" ]; then
total_tokens=$((input_tokens + output_tokens))
# 格式化为 K(千)
if [ $total_tokens -gt 1000 ]; then
total_k=$((total_tokens / 1000))
token_info=" | ${total_k}K tokens"
else
token_info=" | ${total_tokens} tokens"
fi
fi
fi

# 颜色定义
CYAN='\033[36m'
GREEN='\033[32m'
YELLOW='\033[33m'
MAgentA='\033[35m'
RESET='\033[0m'

# 输出格式:目录 [分支] | 模型 | token 统计
printf "${CYAN}%s${YELLOW}%s${RESET} ${GREEN}❯${RESET} ${MAGENTA}%s${RESET}%s\n" "$cwd_name" "$git_branch" "$model" "$token_info"

最后的显示效果:

f252b5cf-8a47-4aed-a528-ca11b98e041b.png

不过要注意的是,修改完成配置后需要重新启动Claude Code,需要发送一条信息来激活状态,同时脚本也需要有完整的可执行权限才行。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询