用途
groove-admin-claude-statusline 是一个用于为 Claude Code 安装单行状态栏(statusline)的技能。它把三个脚本写入 ~/.claude/hooks/,并将相关配置合并进 ~/.claude/settings.json,使状态栏在 Claude Code 的每一轮对话中显示。
主要能力
状态栏示例:
claude-sonnet-4-6 | myrepo@main (+3 -1) | 42k/200k (21%) | effort: high | 5h 12% @8:00pm | 7d 3% @mar 16, 9:00am | 2 loops | check deployment @4:10pm
各段含义:
- Model:当前活动模型的显示名称。
- Repo@branch:当前工作目录文件夹名、git 分支、暂存差异 +N -N。
- Tokens:已用 / 总上下文,以及使用百分比。
- Effort:当前 effort 等级(low / med / high)。
- 5h / 7d:速率限制使用率及重置时间(缓存 60 秒)。
- Loops:活跃 /loop 定时任务数量,以及最近触发的提示与时间。
使用方式
- --list:读取 ~/.claude/settings.json,报告是否设置了 statusLine,以及每个钩子脚本是否存在于 ~/.claude/hooks/,然后退出。
- --uninstall:从 ~/.claude/settings.json 中移除 statusLine,并移除本技能添加的三个 CronCreate|CronDelete / SessionEnd 钩子条目;不删除钩子脚本(留待手动清理),报告变更后退出。
- 默认(安装):
- 若 ~/.claude/hooks/ 不存在则创建。
- 将三个脚本写入 ~/.claude/hooks/,覆盖前必须展示 diff 并确认。
- 为三个脚本添加可执行权限(chmod +x)。
- 读取 ~/.claude/settings.json(默认 {}),合并 statusLine 条目与两个钩子条目,保留其他所有键,不创建重复条目。
- 写入 ~/.claude/settings.json。
- 报告安装结果,并提示重启 Claude Code 使更改生效。
脚本
三个 shell 脚本位于 scripts/ 目录(遵循 Agent Skills 规范):
- scripts/statusline.sh → ~/.claude/hooks/statusline.sh:主状态栏渲染器。
- scripts/cron-state.sh → ~/.claude/hooks/cron-state.sh:在 /tmp/claude/loops.json 中跟踪 /loop 定时任务。
- scripts/cron-state-clear.sh → ~/.claude/hooks/cron-state-clear.sh:会话结束时清除 loop 状态。
settings.json 条目
合并以下内容到现有设置,保留其他所有键,不创建重复项:
{ "statusLine": { "type": "command", "command": "~/.claude/hooks/statusline.sh" }, "hooks": { "PostToolUse": [ { "matcher": "CronCreate|CronDelete", "hooks": [ { "type": "command", "command": "~/.claude/hooks/cron-state.sh", "async": true } ] } ], "SessionEnd": [ { "hooks": [ { "type": "command", "command": "~/.claude/hooks/cron-state-clear.sh", "async": true } ] } ] } }
适用场景
适用于希望在 Claude Code 中实时查看模型、git 上下文、Token 用量、effort 等级、速率限制使用率及 /loop 定时任务状态的用户。
限制与约束
- 写入 ~/.claude/hooks/(用户全局),而非 .claude/(项目本地)。
- 覆盖已有脚本前必须展示 diff 并确认。
- 不得丢弃 ~/.claude/settings.json 中已有的键。
- 依赖:jq、curl、python3、git(macOS/Linux 上通常已具备)。
- 5h/7d 使用率部分需要 Claude Pro/Max OAuth 会话;若未找到 token 则静默省略。
- 安装后需重启 Claude Code,statusLine 与钩子才会生效。