关于 statusline-setup
为 Claude Code 用户提供状态栏配置指南,可用自定义脚本或 ccstatusline 显示模型、Git 分支、令牌用量等上下文信息。指南涵盖设置流程、输入 JSON 字段及常见格式示例。
主要功能
- 01通过脚本或 ccstatusline 配置状态栏
- 02显示模型、目录和 Git 分支
- 03展示上下文令牌用量与会话费用
- 04设置 ANSI 颜色和 Powerline 样式
- 05添加可点击文件链接
适用场景
- 01配置 Claude Code 的自定义状态栏
- 02查看会话中的模型与令牌用量
- 03在状态栏显示当前分支和工作目录
- 04为终端中的文件名添加可点击链接
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ b-open-io/ prompts --skill statusline-setup安装后在 Claude Code 中输入/statusline-setup确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.md.clawnet/unsigned-skill.jsonexamples/ccstatusline-config.jsonpeacock-statusline.shsimple-statusline.shreferences/ccstatusline-guide.mdjson-input-schema.mdscripting-patterns.mdscripts/install-statusline.shrestore-statusline.sh详细介绍
状态栏设置
创建并自定义 Claude Code 状态栏,以显示模型名称、Git 分支、令牌用量、项目颜色等上下文信息。
概述
Claude Code 支持在界面底部显示自定义状态栏。状态栏会在对话消息发生变化时更新,更新频率最高为每 300 毫秒一次。
交互式设置流程
设置状态栏时,请先检查是否已有配置,然后使用 AskUserQuestion 收集偏好设置。
预检查:现有状态栏
# Check for existing configuration
if [[ -f ~/.claude/settings.json ]]; then
EXISTING=$(jq -r '.statusLine // empty' ~/.claude/settings.json)
if [[ -n "$EXISTING" ]]; then
# User has existing status line - ask about backup
fi
fi
设置问题
- 方式:自定义脚本(完全掌控)、ccstatusline(基于组件的 TUI),或简单内联
- 功能:Git 分支、项目颜色、令牌用量、会话费用
- 样式:Powerline、极简,或与终端匹配
- 编辑器:Cursor、VS Code、Sublime,或无(用于可点击链接)
两种方式
1. 手动脚本(完全掌控)
创建一个 shell 脚本,通过 stdin 接收 JSON 数据,并输出带有 ANSI 颜色的单行内容。
快速设置:
cat > ~/.claude/statusline.sh << 'EOF'
#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(basename "$(echo "$input" | jq -r '.workspace.current_dir')")
echo "[$MODEL] $DIR"
EOF
chmod +x ~/.claude/statusline.sh
在设置中配置:
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh",
"padding": 0
}
}
2. ccstatusline(基于组件)
使用第三方工具 ccstatusline,通过 TUI 配置采用基于组件的方式。
快速设置:
bunx ccstatusline@latest
在设置中配置:
{
"statusLine": "bunx ccstatusline@latest"
}
JSON 输入结构
状态栏命令通过 stdin 接收结构化 JSON:
| 字段 | 说明 |
|---|---|
model.id | 模型标识符(例如,“provider/model-id”) |
model.display_name | 易于阅读的名称(例如,“Opus”) |
workspace.current_dir | 当前工作目录 |
workspace.project_dir | 原始项目目录 |
cost.total_cost_usd | 会话费用(美元) |
cost.total_duration_ms | 会话总时长 |
context_window.context_window_size | 最大上下文大小 |
context_window.current_usage | 当前令牌用量对象 |
transcript_path | 会话转录 JSON 文件的路径 |
session_id | 唯一会话标识符 |
常见模式
Git 分支显示
if git rev-parse --git-dir > /dev/null 2>&1; then
BRANCH=$(git branch --show-current 2>/dev/null)
DIRTY=""
git diff --quiet HEAD 2>/dev/null || DIRTY="*"
echo "[$MODEL] $BRANCH$DIRTY"
fi
上下文用量百分比
USAGE=$(echo "$input" | jq '.context_window.current_usage')
if [ "$USAGE" != "null" ]; then
TOKENS=$(echo "$USAGE" | jq '.input_tokens + .cache_creation_input_tokens + .cache_read_input_tokens')
SIZE=$(echo "$input" | jq -r '.context_window.context_window_size')
PERCENT=$((TOKENS * 100 / SIZE))
echo "Context: ${PERCENT}%"
fi
Peacock 项目颜色
SETTINGS=".vscode/settings.json"
if [[ -f "$SETTINGS" ]]; then
COLOR=$(jq -r '.["peacock.color"] // empty' "$SETTINGS")
fi
可点击文件链接(OSC 8)
FILE_URL="vscode://file${LAST_FILE}"
echo -e "\033]8;;${FILE_URL}\a${FILENAME}\033]8;;\a"
参考文件
如需详细的实现指南,请参阅:
references/json-input-schema.md— 完整的 JSON 输入文档,包含所有字段、Bash/Python/Node.js 提取示例,以及空值处理references/scripting-patterns.md— ANSI 颜色代码(256 色和真彩色)、Powerline 分隔符、Git 集成模式、项目检测、可点击链接(OSC 8)、终端集成和格式化辅助工具references/ccstatusline-guide.md— 完整的组件文档、安装、配置选项、可用组件、多行设置和故障排除
评论
支持 Markdown