AgentSkillsCN

init-claude-code-statusline

初始化、更新或覆盖 Claude Code 状态栏配置文件(.claude/settings.json 和 .claude/statusline.sh)。该功能可用于在任意项目中快速搭建 Claude Code 状态栏显示功能,实时展示目录结构、Git 分支、模型版本、当前版本以及上下文窗口的使用情况。

SKILL.md
--- frontmatter
name: init-claude-code-statusline
description: 初始化、更新或覆盖 Claude Code 状态栏配置文件(.claude/settings.json 和 .claude/statusline.sh)。用于在任何项目中快速搭建 Claude Code 状态栏显示功能,展示目录、Git 分支、模型、版本和上下文窗口使用情况。
user-invocable: true
metadata:
  version: "0.13.4"

初始化 Claude Code 状态栏配置

本技能用于在任何项目中初始化、更新或全量覆盖 Claude Code 的状态栏配置。通过预设的模板文件,帮助用户快速搭建功能丰富的状态栏显示。

核心功能

  1. 初始化状态栏配置:在项目中创建 .claude/settings.json.claude/statusline.sh 文件
  2. 更新配置:将现有配置更新为最新模板版本
  3. 全量覆盖:用模板内容完全替换现有配置

状态栏功能说明

配置完成后,Claude Code 状态栏将显示以下信息:

显示项目图标说明
当前目录显示工作目录路径(~替换用户主目录)
Git 分支🌿显示当前 Git 分支名称
模型名称🤖显示当前使用的 Claude 模型
版本号v显示 Claude Code 版本
上下文窗口🧠显示剩余上下文窗口百分比(颜色编码)

上下文窗口颜色说明

  • 绿色:剩余 > 40%,上下文充足
  • 黄色:剩余 20% - 40%,上下文中等
  • 红色:剩余 < 20%,上下文不足

执行流程

步骤 1:检查目标目录

  1. 检查项目根目录是否存在 .claude/ 目录
  2. 如果不存在,创建 .claude/ 目录

步骤 2:处理 settings.json

  1. 检查是否存在 .claude/settings.json 文件
  2. 如果存在:
    • 使用 AskUserQuestion 工具询问用户选择操作方式:
      • 合并配置:保留现有配置,仅添加/更新 statusLine 配置项
      • 全量覆盖:用模板完全替换现有文件
      • 跳过:不修改此文件
  3. 如果不存在:
    • 直接使用模板创建文件

步骤 3:处理 statusline.sh

  1. 检查是否存在 .claude/statusline.sh 文件
  2. 如果存在:
    • 使用 AskUserQuestion 工具询问用户是否覆盖
  3. 如果不存在:
    • 直接使用模板创建文件

步骤 4:验证配置

  1. 确认 .claude/settings.json 文件格式正确(有效的 JSON)
  2. 确认 .claude/statusline.sh 文件存在且具有正确的 shebang

目录结构

plain
init-claude-code-statusline/
├── SKILL.md                      # 技能说明文件
└── templates/                    # 模板文件目录
    ├── settings.json             # Claude Code 设置文件模板
    └── statusline.sh             # 状态栏脚本模板

模板文件说明

settings.json

Claude Code 的本地设置文件,配置状态栏使用 bash 脚本生成:

json
{
	"statusLine": {
		"type": "command",
		"command": "bash .claude/statusline.sh",
		"padding": 0
	}
}

statusline.sh

Bash 脚本,负责生成状态栏内容。功能包括:

  1. 颜色支持:使用 ANSI 颜色代码美化输出
  2. jq 兼容:自动检测 jq 可用性,优雅降级
  3. Git 集成:显示当前分支或 commit hash
  4. 上下文计算:计算并显示剩余上下文窗口百分比
  5. 颜色编码:根据上下文剩余量动态调整颜色

执行示例

场景 1:全新项目初始化

markdown
用户:请帮我初始化 Claude Code 状态栏

执行流程:

1. 检测到无 .claude/ 目录 → 创建目录
2. 创建 .claude/settings.json(使用模板)
3. 创建 .claude/statusline.sh(使用模板)
4. 完成初始化

场景 2:更新现有配置

markdown
用户:请更新我的 Claude Code 状态栏配置

执行流程:

1. 检测到已有 .claude/settings.json → 询问用户操作方式
2. 用户选择"合并配置" → 仅更新 statusLine 配置项
3. 检测到已有 .claude/statusline.sh → 询问用户是否覆盖
4. 用户确认后执行覆盖

触发场景

本技能应在以下场景主动调用

明确触发

  1. 用户提及 "init-claude-code-statusline"
  2. 用户提及 "初始化状态栏"
  3. 用户提及 "配置 Claude Code 状态栏"
  4. 用户提及 "更新状态栏配置"

上下文触发

  1. 用户询问如何自定义 Claude Code 状态栏
  2. 用户抱怨状态栏显示不正常
  3. 用户想要在新项目中使用自定义状态栏

注意事项

执行要求

  1. 目录创建:如果 .claude/ 目录不存在,必须先创建
  2. 询问确认:覆盖现有文件前必须询问用户
  3. JSON 格式:确保 settings.json 是有效的 JSON 格式
  4. 脚本格式:确保 statusline.sh 保留正确的 shebang(#!/bin/bash

依赖说明

状态栏脚本对以下工具有可选依赖:

工具必需说明
bash脚本运行环境
git用于显示 Git 分支信息
jq用于解析 JSON 输入,无则优雅降级

兼容性说明

  1. Windows 用户:需要确保系统中安装了 bash(Git Bash、WSL 或其他)
  2. 颜色支持:如果终端不支持颜色,可设置 NO_COLOR 环境变量禁用颜色
  3. jq 缺失:脚本会自动检测 jq 可用性,缺失时使用默认值

自检清单

完成初始化后,请逐项检查以下内容:

  • 1. 目录存在.claude/ 目录已创建
  • 2. 配置文件存在
    • .claude/settings.json 存在
    • .claude/statusline.sh 存在
  • 3. JSON 格式正确settings.json 可被正确解析
  • 4. 脚本可执行statusline.sh 包含正确的 shebang
  • 5. 功能验证:重启 Claude Code 后状态栏正常显示

模板内容参考

详细的模板内容请查看 templates/ 目录下的各个模板文件。


参考资源