Skip to content

Releases: Diabloluo/hermes-hud

Hermes HUD Desktop Alpha 0.1.0 — Your local window into Hermes

Choose a tag to compare

@Diabloluo Diabloluo released this 29 Aug 03:30
0e0c8e0

Hermes HUD Desktop Alpha 0.1.0 — Your local window into Hermes

Native macOS app · Apple Silicon (arm64) only · local-first, read-only

Hermes HUD Desktop puts Hermes right on your desktop — a real macOS app
that discovers your Hermes Agent, connects to your Dashboard, and brings
everything into one window:

  • 📍 Agent Timeline — what your agent did, in order (sessions, skills, tools, incidents).
  • 📊 Skill Analytics — which skills actually ran, success rates, coverage truth.
  • 💰 Cost Intelligence — honest estimated-cost view: pricing coverage and attribution-aware windows.
  • 🖥 Health, sessions, cron, channels, errors & incidents — the full HUD.

Requirements

  • Hermes Agent ≥ 0.19.0 with the Hermes HUD plugin ≥ 1.1.1 (API schema = 1 — the first official HUD release providing this contract).
  • macOS Apple Silicon (arm64) only.
  • The Desktop app is a window into your existing Hermes setup — it does not install Hermes Agent.

Signed & notarized

  • Signed with Developer ID (Developer ID Application: wen luo (R49V6YUC3X)).
  • Apple notarized and stapled — Gatekeeper accepts it with no "Open Anyway" / right-click bypass.

Local-first & read-only

  • Desktop observability data stays local; the Desktop app sends no outbound telemetry.
  • Hermes core data is read-only.
  • The HUD page has zero native capability (no shell, no filesystem, no arbitrary commands).
  • Web HUD remains fully supported — Desktop is an additional surface, not a replacement.

Automatic

  • Discovers Hermes on your machine.
  • Connects to an already-running Dashboard, or safely starts the local Dashboard for you (never a second instance, fixed safe command).
  • Menu-bar tray: Open / Retry / Quit.

Alpha notes

  • No auto-updater yet — this is an early Alpha; please report issues.

  • Known limitation (multi-user Macs): the Dashboard listens on localhost, which is a machine-local boundary, not a per-macOS-user boundary. In this Alpha, another local account on the same Mac may be able to reach an already-running Dashboard. Do not treat untrusted local macOS accounts as isolated from HUD data.

  • The Desktop release source archive is a provenance snapshot; the supported HUD plugin is v1.1.1 or later and is versioned separately.

Install

Download Hermes-HUD-Desktop-0.1.0-macOS-arm64.dmg, double-click, drag Hermes HUD into Applications, launch. No Terminal required.

Full instructions: docs/desktop/INSTALL_MACOS.md

Hermes HUD v1.1.1 — Desktop Compatibility Patch

Choose a tag to compare

@Diabloluo Diabloluo released this 28 Aug 12:32
6e3655a

Desktop Compatibility Patch

  • Adds the public HUD API schema contract required by Hermes HUD Desktop: api_schema_version=1 + plugin_version emitted by /health and /settings; WS envelope carries schema_version=1.
  • No breaking change to existing HUD users (legacy health/snapshot fields fully preserved).
  • Desktop users should use HUD v1.1.1 or later — the first official HUD release providing API schema 1.

Install (pin the tag, no floating main):

git clone --branch v1.1.1 --depth 1 https://github.com/Diabloluo/hermes-hud ~/.hermes/plugins/hermes-hud

v1.1.0 remains as historical fact (unchanged).

Hermes HUD v1.1.0 — Observability gets serious

Choose a tag to compare

@Diabloluo Diabloluo released this 26 Aug 14:20

Hermes HUD v1.1.0 — Observability gets serious

Local-first, read-only observability platform for Hermes Agent.

📍 Agent Timeline

What did the agent do, in order. A unified event model (sessions · skills · tools · incidents) with stable pagination, idempotent collection, and a watermark commit point — observed truth only, never guessed events.

📊 Skill Analytics

From static inventory to observable objects: registered vs observed runs, success rates (null when there is no evidence — never fake 0%), duration, and an honest runtime-coverage model (observed / inventory_only / unavailable).

💰 Cost Intelligence

One canonical cost surface built on Hermes' recorded usage rows, with honest semantics:

  • estimated cost — never presented as provider invoices
  • pricing coverage — known vs unknown pricing provenance is reported, not hidden
  • attribution-aware time windows — cumulative usage rows attributed by last activity; All is lifetime-cumulative, windowed ranges are explicitly not exact

💬 Discussions

The repository now has Discussions — welcome, show us your setup, and tell us what HUD should observe next.

✅ Fresh-install CI

Every install-relevant change is now automatically verified on a clean macOS runner: Python 3.13 + Hermes ≥ 0.19.0, clone the exact commit under test, enable, start, HTTP smoke, and precise cleanup.


Install (pinned to this release tag — not floating main):

git clone --branch v1.1.0 --depth 1 https://github.com/Diabloluo/hermes-hud ~/.hermes/plugins/hermes-hud
python3 ~/.hermes/plugins/hermes-hud/scripts/enable_dashboard_plugin.py enable

Docs: README · INSTALL.md · First 5 minutes · Changelog

Support: macOS tested · Linux expected (community testing welcome) · Windows experimental.

Hermes HUD v1.0.2

Choose a tag to compare

@Diabloluo Diabloluo released this 23 Aug 12:10

[1.0.2] - 2026-08-23

Fixed

  • Fresh-install activation instructions for Dashboard plugins. hermes plugins enable/disable manages native plugins only; Dashboard plugins (manifest.json +
    plugin_api.py) are activated via the plugins.enabled allowlist. Added
    scripts/enable_dashboard_plugin.py (read → merge → write back via the Hermes
    config CLI, idempotent, FAIL CLOSED on unreadable config) and corrected the
    install/uninstall instructions in README / FAQ / CONTRIBUTING. The previous
    hermes plugins enable hermes-hud instruction failed with
    "Plugin not installed or bundled".
  • Runtime timezone regression causing CST is not defined. collect_db referenced
    the removed module-level CST constant after the v1.0.1 timezone refactor; now uses
    get_hud_timezone() (HUD_TIMEZONE > system local tz > UTC). Added regression tests
    that fail on v1.0.1 and pass on 1.0.2.

Verification

  • pytest: 97 passed, 0 failed(6 种 config 格式 × enable/disable/幂等/语义保持 + 3 项 FAIL CLOSED + CST 回归 3 项)
  • Fresh install from GitHub(HERMES_HOME 全新隔离):clone → enable → dashboard 200 → 插件发现 → /hud 渲染 → snapshot API → Token/Cost → CST error 0 → disable 保留其他插件
  • enable/disable with pre-existing plugins:[alpha, beta] → +hermes-hud → 还原,无关配置语义不变

Hermes HUD v1.0.1

Choose a tag to compare

@Diabloluo Diabloluo released this 23 Aug 10:41
46e3342

[1.0.1] - 2026-08-23

Security

  • 重构脱敏器(hud/redaction.py):模式规则(Bearer / JWT / sk-* / Telegram bot token / 长 hex / base64)先行整体替换,杜绝"先匹配掉 Bearer 字样却把真正 token 留在后面"的截断泄漏;支持 JSON quoted keys("token":"xxx")、URL userinfo、Cookie/Authorization 整行兜底。
  • 日志指纹改为脱敏后生成fingerprint() 内部先 redact_line 再归一化,raw secret 不进入 fingerprint / incident / telemetry / WebSocket / REST。
  • 新增统一隐私工具:sanitize_path()(用户名与中间目录脱敏)、sanitize_cmdline()redact_obj()(dict 敏感键整体替换);应用于 session cwd、skill dir、dashboard cmdline、launchd ProgramArguments、cron deliver/script。
  • hud_alert.py 只从 .env 加载通知所需的 allowlisted 凭据(6 个变量),不再批量注入进程环境。

Correctness

  • 修复 Token/费用口径:辅助调用只统计 session_model_usage.task != ''task='' 是主会话重复记账);API calls 改用数据库 api_call_count 累计,不再每行 +1。
  • 修复告警恢复状态机:恢复通知至少一个渠道成功才置 recovered;全部失败保持 pending_recovery 并下轮重试;push item 直接携带 fingerprint。
  • Cron 事故指纹稳定化:cron:<id>:fail(不再随失败次数产生 fail-3/fail-4/...)。
  • 事故计数语义修正:新增 observationsstate_changes 字段;旧 telemetry.db 自动平滑迁移(无需删库)。
  • idle_seconds 改为基于最近活动(MAX(messages.timestamp)),无可靠数据时为 null。
  • 时区公共化:HUD_TIMEZONE > 系统本地时区 > UTC。

Performance

  • Snapshot 共享缓存 + 单飞锁:REST 与 WebSocket 共用同一份快照(实测 2 客户端 10 分钟:600 请求 → 300 次 collector)。
  • telemetry 落盘限频:每 60 秒最多一次。
  • 自动 retention:maintenance() 每天最多一次(指标 30 天 / 已恢复事故 90 天),meta 表持久化。

Compatibility

  • launchd 检测使用当前 UID(gui/<os.getuid()>);非 macOS 平台 not_applicable
  • 安装/卸载改用官方增量命令 hermes plugins enable/disable hermes-hud
  • 支持范围:Tested: macOS;Linux: expected / community testing welcome;Windows: experimental

Verification

  • pytest: 84 passed, 0 failed(隔离环境,零真实数据/网络)
  • secret leakage: 0(API / telemetry / alerts_state / fingerprint)
  • usage 手工对账:exact match
  • 10 分钟 1 REST + 1 WS 性能测试:PASS(600 请求 → 300 collector,10 telemetry 周期)
  • 3 页面并发:PASS(telemetry 写入不倍增)
  • DB lock errors: 0
  • GitGuardian: 0 findings(无 ignore 豁免)

Hermes HUD v1.0.0

Choose a tag to compare

@Diabloluo Diabloluo released this 23 Aug 08:54

Hermes HUD v1.0.0

本地实时监控指挥中心 —— Hermes Agent Dashboard 插件(11 个中文 Tab)。

功能

  • ◉ 指挥中心:健康分 / Gateway / 渠道 / Token 费用 / 30+ 项健康检查 / 事故时间线
  • ⚡ 实时活动:活跃会话 + 2 秒增量事件流 + 最近工具调用
  • ¥ Token·费用:按模型 / 辅助任务归集,费用标估算口径,主辅不重复计数
  • ☰ 对话记录 / 🧠 记忆 / ⚒ 技能 / ⏱ 定时任务 / ⇄ 渠道 / ⚠ 错误·事故 / ▤ 系统·存储 / ⚙ 设置
  • 📣 主动推送告警(Telegram + 飞书):新事故 / 升级 / 恢复自动推送,防抖去重
  • 🔒 只读安全边界:不读 .env / 无外部遥测 / state.db 全程只读 / 日志脱敏

安装

git clone https://github.com/Diabloluo/hermes-hud ~/.hermes/plugins/hermes-hud
hermes config set plugins.enabled '["hermes-hud"]'
# 构建 web UI 后: hermes dashboard --host 127.0.0.1 --port 9119 --no-open

兼容

Hermes v0.20+,macOS / Linux / Windows。详见 README。