mcpField
S
statusline-setup

statusline-setup

github.com/b-open-ioAgent 工作流16107 次安装4 周前更新
代码仓库

关于 statusline-setup

为 Claude Code 用户提供状态栏配置指南,可用自定义脚本或 ccstatusline 显示模型、Git 分支、令牌用量等上下文信息。指南涵盖设置流程、输入 JSON 字段及常见格式示例。

主要功能

  1. 01通过脚本或 ccstatusline 配置状态栏
  2. 02显示模型、目录和 Git 分支
  3. 03展示上下文令牌用量与会话费用
  4. 04设置 ANSI 颜色和 Powerline 样式
  5. 05添加可点击文件链接

适用场景

  1. 01配置 Claude Code 的自定义状态栏
  2. 02查看会话中的模型与令牌用量
  3. 03在状态栏显示当前分支和工作目录
  4. 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.json
examples/
ccstatusline-config.json
peacock-statusline.sh
simple-statusline.sh
references/
ccstatusline-guide.md
json-input-schema.md
scripting-patterns.md
scripts/
install-statusline.sh
restore-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
设置问题
  1. 方式:自定义脚本(完全掌控)、ccstatusline(基于组件的 TUI),或简单内联
  2. 功能:Git 分支、项目颜色、令牌用量、会话费用
  3. 样式:Powerline、极简,或与终端匹配
  4. 编辑器: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