Claude Code 状态栏
显示 Claude Code 会话的状态信息。
功能
- Git分支显示
- 当前使用模型
- Context用量
- 输出Token数量
- 会话时长
- 代码改动行数
安装
第一步:配置 settings.json
在 ~/.claude/settings.json 中添加:
{
"statusLine": {
"type": "command",
"command": "bash ~/.claude/statusline-command.sh"
}
}
第二步:创建脚本
将以下脚本保存到 ~/.claude/statusline-command.sh:
#!/bin/bash
# Claude Code Status Line Script
get_git_branch() {
if command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
git_branch=$(git branch --show-current 2>/dev/null | tr -d '\n')
[ -z "$git_branch" ] && git_branch=$(git symbolic-ref --short HEAD 2>/dev/null | tr -d '\n')
fi
[ -z "$git_branch" ] && git_branch="no-git"
}
get_model() {
model_name=$(grep -o '"model": *"[^"]*"' ~/.claude/settings.json 2>/dev/null | cut -d'"' -f4 | tr -d '\n')
[ -z "$model_name" ] && model_name="unknown"
}
get_changed_lines() {
if command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
changed=$(git diff --stat 2>/dev/null | tail -1 | awk '{print $1"+"$4}' | tr -d '\n')
[ -z "$changed" ] || [ "$changed" = "+" ] && changed="0+0"
changed_lines="$changed"
else
changed_lines="no-git"
fi
}
main() {
get_git_branch
get_model
get_changed_lines
echo "${git_branch} | ${model_name} | N/A | N/A | N/A | N/A | ${changed_lines}"
}
main
第三步:添加执行权限
chmod +x ~/.claude/statusline-command.sh
效果
重新启动 Claude Code 后,状态栏将显示:
git_branch | model_name | N/A | N/A | N/A | N/A | 10+5
前提条件
- 需要
jq(用于解析 JSON):brew install jq - 需要在 Git 仓库中(否则显示 no-git)
自定义
可根据需要修改脚本,例如:
- 添加 Context 用量检测
- 添加 Token 统计
- 添加花费计算
- 添加会话时长
MIT License
