claude-hud-overwatch
Claude Code 全视状态栏 — 全功能默认开启、Hook 防护监控、违规检测、子代理追踪
Fork 自 jarrodwatts/claude-hud v0.0.12,MIT 协议。
与官方版本的区别
功能增强
| 特性 | 官方 claude-hud | overwatch |
|---|
| 默认功能开关 | 大部分关闭,需手动开启 | 全部默认开启 |
| 推理深度显示 | 无 | [Opus 4.6 | Max] 跟随 effort 配置 |
| Provider 标签 | 无 | Bedrock / API 自动识别 |
| Hook 防护监控 | 无 | 防护类/事件类分组统计 + ↳ 详情行 |
| 违规检测详情 | 无 | 最新违规模式 + 时间 + 分类 + 解释 |
| 研究优先拦截 | 无 | 拦截文件 + 原因追踪 |
| 子代理活动追踪 | 无 | 启动/停止事件中文化显示 |
| 详情行自动隐藏 | 无 | 10 分钟无新触发自动隐藏 |
| 会话词元标签 | 硬编码 Tokens/in:/out: | i18n 国际化(中文词元/英文Tokens) |
| 界面语言 | 默认英文 | 默认中文(可切换英文) |
默认值变更
以下默认值与官方不同(均可通过配置覆盖):
| 配置项 | 官方默认值 | overwatch 默认值 |
|---|
language | en | zh |
showSeparators | false | true |
pathLevels | 1 | 2 |
contextValue | percent | both(百分比+词元数) |
showConfigCounts | false | true |
showCost | false | true |
showDuration | false | true |
showSpeed | false | true |
showTools | false | true |
showAgents | false | true |
showTodos | false | true |
showSessionName | false | true |
showClaudeCodeVersion | false | true |
showMemoryUsage | false | true |
showSessionTokens | false | true |
showOutputStyle | false | true |
gitStatus.showAheadBehind | false | true |
gitStatus.showFileStats | false | true |
sevenDayThreshold | 80 | 0(始终显示) |
理念:上游以最小化显示为默认,本 fork 以"全量信息、开箱即用"为目标。
i18n 扩展
在上游 18 个 key 基础上新增 5 个(另同步上游 label.cost,共 23 key):
| Key | 英文 | 中文 | 用途 |
|---|
label.cost | Cost | 费用 | 原生费用标签(同步上游) |
label.tokens | Tokens | 词元 | 会话词元行标题 |
label.ccVersion | CC v | CC 版本 | Claude Code 版本前缀 |
label.sessionTokenPrefix | tok | 词元 | 紧凑模式词元前缀 |
format.minutes | m | 分钟 | 时长分钟单位 |
format.hours | h | 小时 | 时长小时单位 |
新增功能:推理深度(Effort)显示
project.ts 新增推理深度显示,在模型标签中追加 effort 等级:
- 读取优先级:
CLAUDE_CODE_EFFORT_LEVEL 环境变量 > ~/.claude/settings.json 的 effortLevel
- 显示格式:
[Opus 4.6 | Max]、[Opus 4.6 | High]、[Opus 4.6 | Medium]、[Opus 4.6 | Low]
default 值不显示
- 支持 Provider 标签:
[Opus 4.6 | Bedrock]、[Opus 4.6 | API]
新增功能:Hook 触发统计与违规检测
environment.ts 大幅扩展,上游仅显示配置计数,本 fork 新增:
- Hook 分组显示 — 防护类(停止短语、研究优先、努力锁定)和事件类(自动格式、子代理、队友空闲、任务完成、压缩注入)分别计数
- 待机统计 — 已注册但今日未触发的 hook 数量
- 违规检测 — 按类别统计(逃避、求许可、早停、推脱、借口)
- 6 种 ↳ 详情行(全部 10 分钟 TTL 自动隐藏):
- 最新违规(红色)— 时间 + 分类 + 触发模式 + 解释
- 研究优先拦截(黄色)— 时间 + 拦截文件和原因
- 子代理活动(灰色)— 时间 + 启动/停止 + 代理类型
- 防护触发(黄色)— 时间 + 防护类型 + 详情
- 事件触发(灰色)— 时间 + 事件类型 + 详情
- 队友空闲(灰色)— 时间 + 队友名称
数据来源(需配合对应 hook 脚本):
~/.claude/logs/hook-counters.csv — 各 hook 触发计数
~/.claude/logs/stop-phrase-violations.log — 违规拦截记录
~/.claude/logs/research-first-violations.log — 研究优先拦截记录
~/.claude/logs/subagent.log — 子代理生命周期
~/.claude/logs/hook-events.log — 防护/事件/空闲详情(新增)
会话词元行国际化
上游 session-tokens.ts 和 session-line.ts 使用硬编码英文,本 fork 改用 t() 函数实现多语言。
费用显示差异
上游已升级为 resolveSessionCost(),支持原生 cost.total_cost_usd 字段。本 fork 仍使用 estimateSessionCost()(label.cost i18n key 已同步,渲染逻辑待跟进)。
其他修改
- transcript.ts — Agent 类型 fallback 从
'unknown' 改为 subagent_type → name → 'agent' 三级回退,避免显示 unknown
- project.ts — 推理深度(Effort) Max/High/Medium/Low 显示 + Provider(Bedrock/API) 标签 + 时长/速度/费用拆分到独立的
renderSessionInfoLine
- stdin.ts — 新增
getProviderLabel() 检测 Bedrock 模型 ID 和 ANTHROPIC_API_KEY 环境变量
- render/index.ts — session info 行合并的集成逻辑
未修改的部分(与官方完全一致)
- 核心渲染引擎(identity、usage、memory 行)
- 配置系统(mergeConfig、loadConfig、迁移逻辑)
- stdin 解析
- Git 状态检测 / 颜色系统
- 所有 TypeScript 类型定义
特性
- 实时上下文健康度(进度条 + 百分比 + 词元数)
- 工具调用活动追踪(Edit、Read、Bash 等)
- 子代理状态监控(类型、用时、描述)
- 任务进度跟踪(待办/进行中/已完成)
- Git 分支状态(分支名、脏标记、领先/落后、文件统计)
- API 用量追踪(5 小时/7 天配额)
- 会话词元统计(输入、输出、缓存分类)
- 费用追踪
- 内存使用监控
- Hook 防护监控(防护类/事件类分组、待机计数)
- 违规检测(分类统计 + 最新详情 + 拦截追踪)
- 完整中文界面,默认中文
安装
方式一:作为 Claude Code 插件安装
/install-plugin https://github.com/mason369/claude-hud-overwatch
然后运行 setup 并重启 Claude Code:
/claude-hud-overwatch:setup
方式二:手动安装
- 克隆仓库到
~/.claude/claude-hud-overwatch/
- 安装依赖并构建:
cd ~/.claude/claude-hud-overwatch
npm ci && npm run build
- 运行
/claude-hud-overwatch:setup 配置 statusLine
配置
配置文件位于 ~/.claude/plugins/claude-hud/config.json
布局模式
| 模式 | 说明 |
|---|
expanded(展开模式) | 多行显示,每个信息段独占一行 |
compact(紧凑模式) | 单行显示,所有信息压缩到一行 |
显示选项