配置
状态栏配置
为 Claude Code 创建自定义状态栏以显示上下文信息
通过自定义状态栏让 Claude Code 成为您专属的工具,该状态栏显示在 Claude Code 界面底部,类似于终端提示符(PS1)在 Oh-my-zsh 等 shell 中的工作方式。
创建自定义状态栏
您可以选择:
-
运行
/statusline
让 Claude Code 帮助您设置自定义状态栏。默认情况下,它会尝试复制您终端的提示符,但您可以向 Claude Code 提供关于所需行为的额外说明,例如/statusline show the model name in orange
-
直接在您的
.claude/settings.json
中添加statusLine
命令:
工作原理
- 状态栏在对话消息更新时更新
- 更新最多每 300 毫秒运行一次
- 您命令的 stdout 第一行成为状态栏文本
- 支持 ANSI 颜色代码来设置状态栏样式
- Claude Code 通过 stdin 将当前会话的上下文信息(模型、目录等)以 JSON 格式传递给您的脚本
JSON 输入结构
您的状态栏命令通过 stdin 接收 JSON 格式的结构化数据:
示例脚本
简单状态栏
Git 感知状态栏
Python 示例
Node.js 示例
辅助函数方法
对于更复杂的 bash 脚本,您可以创建辅助函数:
提示
- 保持状态栏简洁 - 应该适合一行显示
- 使用表情符号(如果您的终端支持)和颜色使信息易于扫描
- 在 Bash 中使用
jq
进行 JSON 解析(参见上面的示例) - 通过使用模拟 JSON 输入手动运行来测试您的脚本:
echo '{"model":{"display_name":"Test"},"workspace":{"current_dir":"/test"}}' | ./statusline.sh
- 如果需要,考虑缓存昂贵的操作(如 git 状态)
故障排除
- 如果您的状态栏没有出现,检查您的脚本是否可执行(
chmod +x
) - 确保您的脚本输出到 stdout(而不是 stderr)