全部技能 / 基础工具与工作流 / statusline-generator
基础工具与工作流 · daymade/claude-code-skills

statusline-generator

Installs, configures, customizes, or troubleshoots the Claude Code statusline (cwd, model, token counts). Use when the user wants to set up or change the statusline, switch minimal vs full layouts, show absolute token counts (e.g. ctx 108K / 1M) instead of a percentage, add cost via ccusage or git status, dump the stdin JSON Claude Code passes the script, or fix a statusline that is blank, silent, stuck, shows "permission denied", or stopped updating after a script edit (often a missing chmod +x). Trigger phrases: "configure statusline", "statusline blank", "status line not showing", "statusline broken", "show token count in statusline", 状态栏, 状态栏不显示, 状态栏空白, 显示工作目录, 显示 token 数.

风险提醒:蓝色 · 知晓即可AI 侦查报告
作者 daymadeGitHub daymade/claude-code-skills ↗Stars 1385许可 MIT(仓库根 LICENSE;GitHub API spdx MIT)commit d5c4678cb5
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

『单一事实源』架构:generate_statusline.sh 是唯一 statusline 脚本(两套布局由环境变量 CLAUDE_STATUSLINE_LAYOUT 切换,不用 flag,因为 Claude Code 从 stdin 传 JSON、flag 会冲突);install 与 health check 都围绕同一份脚本展开。

daymade-claude-code/statusline-generator/SKILL.md
The script reads layout from environment, not flags (Claude Code passes JSON on stdin, so flags would conflict).
注:generate_statusline.sh 头注释同样写 '# Configuration via environment variables (no flags — Claude Code passes JSON on stdin)';脚本先 `input=$(cat)` 吞 stdin 再解析。

零 fork 性能纪律:git 分支不 spawn git,而是向上遍历找 .git/HEAD 当普通文件读(含 worktree/submodule 的 gitdir: 间接与 detached-HEAD 短 sha);刷新预算毫秒级、个位数 fork。

daymade-claude-code/statusline-generator/scripts/generate_statusline.sh
# Zero-fork git branch: walk up to .git and read HEAD as a file. Never spawns # git.
注:SKILL Rule 3 给出动机数据:'a package-runner statusline (bunx <pkg>@latest-style…) cost ~0.4s CPU per refresh; this script costs ~0.01s',且引用 2026-07 真实电池调查;函数 git_branch_fast 处理 .git 为目录与为 gitdir: 文件两种形态。

JSON 解析依赖阶梯:jq 优先、python3 回退、都没有则退化为裸 cwd;ctx 用量由 input/cache_read/cache_create 三段求和,$HOME 缩短用 case 而非参数替换(跨 shell 安全)。

daymade-claude-code/statusline-generator/SKILL.md
| `jq` | JSON parsing (preferred) | falls back to `python3` |
注:generate_statusline.sh:'if command -v jq >/dev/null 2>&1; then parsed=$(parse_with_jq) elif command -v python3 … else echo "$PWD"; exit 0';awk 负责 999/108K/1M/1.5M 的人类可读格式化。

安装=复制+chmod+接线+自验证闭环:install_statusline.sh 备份既有 ~/.claude/statusline.sh 与 settings.json、jq 只改 statusLine 块(保留其他设置)、强制 chmod +x、末尾必跑 health_check 并以非零退出报告失败——『装完』必须有证据。

daymade-claude-code/statusline-generator/SKILL.md
**Mandatorily runs `health_check.sh` and shows the result** — installation is not "complete" until verification passes.
注:install 脚本注释 '# critical — silent failure root cause if missed';无 jq 时拒绝改 settings.json 并打印手改指引,避免破坏用户配置。

health_check.sh 四层验证:文件存在且可执行→settings.json 接线→mock stdin 覆盖(完整数据/零 token/缺字段/$HOME 缩短/合成 .git/HEAD 零 fork 分支)→CLAUDE_STATUSLINE_DEBUG=1 留下的真实 stdin 回放;每失败给一行修复命令。

daymade-claude-code/statusline-generator/SKILL.md
It validates four layers: 1. `~/.claude/statusline.sh` exists and is executable. **Missing `chmod +x` is the single most common silent-failure cause**
注:mock 测试直接以 bash 跑目标脚本并 grep 输出形状(如 'TestModel.*ctx: 100K / 1M'),不依赖真实 Claude Code;debug 模式每次刷新把 stdin 覆写到 /tmp/.claude-statusline-last-stdin.json 供回放/报 bug。

full 布局的成本段走 ccusage 且带缓存/静默降级:缓存文件 /tmp/claude_cost_cache_<min>.txt、>2 分钟过期重建、ccusage 缺失时静默跳过;颜色按 ctx 占比 50/80 分绿黄红。

daymade-claude-code/statusline-generator/scripts/generate_statusline.sh
# Cost via ccusage (cached, async; silent if ccusage unavailable)
注:git 脏状态 (* / +) 是 full 布局才有的奢侈品(git status 每次刷新走工作树);minimal 布局默认无颜色无成本无百分比。

2核心能力

01一键安装+自验证(备份→接线 settings.json→health check 强制收尾)
02minimal/full 双布局:minimal=短路径+分支+模型+绝对 token 数;full=用户/成本/百分比/多行+git 脏标记
03四层健康检查 + 每失败一行修复命令(chmod/接线/字段陷阱/回放)
04stdin JSON 调试转储(CLAUDE_STATUSLINE_DEBUG=1 → /tmp/.claude-statusline-last-stdin.json)与真实输入回放
05零 fork 分支读取(读 .git/HEAD 文件,兼容 worktree/submodule/detached HEAD)
06ccusage 成本显示(full 布局、分钟级缓存、静默降级)
07症状驱动排障(references/troubleshooting-decision-tree.md:空白/无 ctx/百分比切换/裸转义码/git 段缺失/成本缺失/改动无效/慢刷新 8 类)
08字段语义参考(references/context-window-schema.md:used_percentage 会话初 null、total_input_tokens 跨版本语义等)

3外部依赖

类型依赖
clijq(JSON 解析首选)
clipython3(JSON 解析回退)
cliawk(token K/M 格式化,两布局必需)
cligit(full 布局脏标记;minimal 读 .git/HEAD 不需 git)
cliccusage(full 布局成本,可选)

4风险提醒 风险提醒:蓝色 · 知晓即可

风险提醒:蓝色 · 知晓即可
  • ANSI/控制字符注入面(通用) — cwd、git 分支名等未做控制字符消毒直接拼入输出;恶意仓库名/分支名可在终端注入转义序列(视觉欺骗),非本 skill 独有。
  • settings.json 改写风险 — install 会覆盖 statusLine 块;虽有 jq 保结构与 .bak 备份,极端并发/手改冲突下仍可能覆盖用户新配置(脚本未做并发检测)。
  • DEBUG/cost 缓存写 /tmp 共享目录 — /tmp 下文件名固定可预测,多用户机器上存在符号链接/抢占类的小攻击面(写入内容为 stdin JSON/成本数字,非密钥)。
风险提醒:蓝色,知晓即可。自带本地 bash 脚本 + 写本地配置(~/.claude/statusline.sh、settings.json,均带时间戳备份、jq 保结构),无网络外发、无凭证读取、无破坏性操作(不改删用户数据);ccusage 仅 --offline 公开用量。注意点:状态栏输出未做控制字符消毒(恶意 cwd/分支名的 ANSI 注入面为通用终端问题),settings.json 无 jq 时拒绝自动改。

5第二遍独立确认

  • [ok] install 是否真的强制 chmod +x — install_statusline.sh 显式 'chmod +x "$TARGET_PATH" # critical — silent failure root cause if missed'。
  • [ok] settings.json 是否保结构更新 — install 用 'jq --arg cmd … .statusLine = {"type":"command","command":$cmd,"padding":(.statusLine.padding // 0)}' 合并;无 jq 分支拒绝编辑并提示手改。
  • [ok] health_check 声称的 mock 用例 — run_mock 五例(完整/0 token/缺字段/$HOME 缩短/合成 .git/HEAD 分支)与 SKILL 描述逐条对应。
  • [ok] 无网络外发与凭证读取 — 三脚本无 curl/wget/url;ccusage 以 --offline 调用;env 仅 LAYOUT/DEBUG/HOME。
  • [ok] ccusage 成本路径缓存语义 — generate 185-210 行:缓存文件 /tmp/claude_cost_cache_$(date +%Y%m%d_%H%M).txt、mmin +2 清理、缺失时后台重建并回退旧缓存。
  • [unlocatable] 运行时行为(真实 Claude Code stdin 形状下渲染) — 静态代码+reference 文档(context-window-schema.md)齐备,但本环境无 Claude Code 宿主,未做实机刷新验证;字段语义以文档为准。

6结论

  • 热路径性能纪律有实测背书:零 fork 读分支、逐 fork 预算、点名禁止包解析型状态栏
  • 安装-验证闭环:没有 health check 通过的『安装完成』会被脚本自己判负
  • 把最常见的静默失败(漏 chmod)变成显式检查项并给一行修复
  • 文档分层完整:schema 参考/排障树/自定义指南/颜色码,排障不靠猜
  • 适合:适合 Claude Code 用户搭建或修复状态栏(含中文用户,触发词双语);适合对『刷新成本』敏感的重度多会话用户(默认 minimal 零 git subprocess);适合 agent 排障状态栏类问题时把 health_check 当第一动作。
    不适合:不适合非 Claude Code 宿主(脚本吃的是 Claude Code 的 stdin JSON 协议);不需要绝对 token 数、只要百分比的用户可不动它;需要花哨装饰(图标/动态内容/多行动画)的状态栏应另找方案——本 skill 的卖点是克制与低成本。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-09
    方式 A · 人下载镜像包下载 statusline-generator.tar.gz
    sha256: 7b68993203365b32…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit d5c4678cb5;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库daymade / daymade/claude-code-skills
    Stars1385
    最近推送2026-09-09
    本 skill commitd5c4678cb5
    许可MIT(仓库根 LICENSE;GitHub API spdx MIT)
    本站信息
    收录日期2026-09-06
    分类基础工具与工作流
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近