Claude Code 安装 claude-hud 插件避坑指南
《Claude Code安装claude-hud插件避坑指南》总结了安装过程中遇到的三大问题及解决方案。主要问题包括:ANSI颜色码无法解析导致显示原始转义字符、插件命令加载失败以及settings.json配置路径问题。最终采用硬编码绝对路径方案,使用node直接运行编译后的JS文件,并通过tput cols获取终端列数。验证方法展示了正常输出效果,包含模型名称、上下文使用率进度条等状态信息。附
·
问题背景
在 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 配置目录路径。
更多推荐



所有评论(0)