问题背景

在 Claude Code 中安装 claude-hud 插件用于显示实时状态栏(statusLine),包括上下文使用率、Git 状态、工具活动等信息。
在这里插入图片描述

完整解决流程

一、安装插件

/plugin marketplace add jarrodwatts/claude-hud
/plugin install claude-hud
/reload-plugins

二、遇到的坑

坑1:statusLine 显示 ANSI 颜色码而非解析后文本

最初配置时,使用了自定义 bash 脚本 + grep/sed 解析 JSON:

# settings.json 配置
"statusLine": {
  "type": "command",
  "command": "bash -c 'C:/Users/xxx/.claude/statusline.sh'"
}

脚本中使用了 ANSI 转义码(如 \033[32m),但 Claude Code 的 statusLine 不支持 ANSI 解析,直接输出了原始转义字符:

\033[1m\033[32m[CTX:20%]\033[0m | \033[34mdir:xxx\033[0m

解决:去掉所有颜色代码,改用纯文本输出。

坑2:插件命令不加载

尝试运行 /claude-hud:setup/claude-hud:configure 时报错:

Unknown command: /claude-hud:setup

/reload-plugins 显示 0 plugins,但插件文件实际存在于:

~/.claude/plugins/cache/claude-hud/claude-hud/0.1.0/

原因:插件注册机制有问题,但不影响 statusLine 功能使用。

坑3:settings.json 中的命令路径格式问题

按照官方文档配置动态路径查找:

bash -c 'cols=$(stty size </dev/tty 2>/dev/null | awk "{print $2}"); export COLUMNS=$(( ${cols:-120} > 4 ? ${cols:-120} - 4 : 1 )); plugin_dir=$(ls -1d "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/plugins/cache/*/claude-hud/*/" 2>/dev/null | sort -V | tail -1); exec "/d/Program Files/nodejs/node" "${plugin_dir}dist/index.js"'

问题

  • /dev/tty 在 Claude Code 的 bash 环境中不存在
  • glob 模式在 Claude Code 子进程环境中无法正确展开
  • 导致 plugin_dir 为空,最终路径变成 C:\Users\xxx\dist\index.js(错误的嵌套路径)

三、最终解决方案

使用硬编码绝对路径直接运行:

"statusLine": {
  "type": "command",
  "command": "bash -c 'export COLUMNS=$(( $(tput cols 2>/dev/null || echo 120) - 4 )); node \"C:/Users/xxx/.claude/plugins/cache/claude-hud/claude-hud/0.1.0/dist/index.js\"'"
}

关键点

  • 使用 tput cols 代替 stty size </dev/tty 获取列数
  • 使用硬编码的完整插件路径,避免 glob 动态查找
  • node 直接运行 dist/index.js(TypeScript 已编译为 JS)

四、验证方法

# 测试 HUD 是否能正常运行
echo '{"context_window":{"used_percentage":45,"context_window_size":200000},"model":{"display_name":"Sonnet"}}' | node "C:/Users/xxx/.claude/plugins/cache/claude-hud/claude-hud/0.1.0/dist/index.js"

正常输出:

[Sonnet]
Context █████░░░░░ 45%
1 CLAUDE.md | 1 MCPs

五、最终效果

重启 Claude Code 后,statusLine 显示:

  • 模型名称
  • 上下文使用率进度条
  • CLAUDE.md 和 MCPs 数量统计
  • 工具活动(需额外配置)
  • Agents 状态(需额外配置)

附录:settings.json 最终配置

{
  "statusLine": {
    "type": "command",
    "command": "bash -c 'export COLUMNS=$(( $(tput cols 2>/dev/null || echo 120) - 4 )); node \"C:/Users/你的用户名/.claude/plugins/cache/claude-hud/claude-hud/0.1.0/dist/index.js\"'"
  }
}

注意:将 C:/Users/你的用户名/ 替换为你实际的 Claude 配置目录路径。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐