Hermes TUI — plugin

hermes-idle-recap

You left an active hermes --tui open. After 2 min of no input, a single panel tells you where you left off + what to do next. Once per idle, never spam. Deterministic (no LLM), config hot-reloads.

What you see

— idle recap · away 2m 04s —
Where we left off:
  you: add idle recap after 2 min
  hermes: added useIdleRecap hook…

Status:
  ✓ idle — ready for your next prompt
  todos: 1/3 done — next: wire config
What to do next:
  → Follow up on the last exchange…

Panel uses panel() (3 sections). Falls back to sys(). Cooldown 60s + hasRecappedThisIdle = once, then quiet until your next keystroke.

How it works

  • useIdleRecap.tsbuildIdleRecapPanel() + hook (refs keep callbacks stable)
  • UiState.idleRecapMinutesuseConfigSyncuseMainApp wiring
  • Priority: HERMES_TUI_IDLE_RECAP_MINUTES env > display.idle_recap_minutes > 2 min
  • Triggers on poller (15s) + on return (keystroke / Enter / focus) — second is no-op if poller already fired
Read the hook ↗

Install

curl -fsSL https://raw.githubusercontent.com/UFT1/hermes-idle-recap/main/install.sh | bash
# manual
cp useIdleRecap.ts ~/.hermes/hermes-agent/ui-tui/src/app/useIdleRecap.ts
patch -p1 < patches/core.patch
cd ~/.hermes/hermes-agent/ui-tui && npm run typecheck && npm run build:ink
hermes config set display.idle_recap_minutes 2
hermes --tui   # idle 2m → single recap
2 min default0 disablesclamped 0..60

Test: HERMES_TUI_IDLE_RECAP_MINUTES=0.1 hermes --tui (6s) · Off: HERMES_TUI_IDLE_RECAP_MINUTES=0 hermes --tui

Config

hermes config set display.idle_recap_minutes 2 — minutes as float. Hot-reloads via 5s config.get mtime poll. Env still wins for one-offs.

hermes config get display.idle_recap_minutes

Fixed: no spam

Early version fired every 60s after threshold. Now hasRecappedThisIdleRef + stable refs → fires once at idle ≥ threshold, stays quiet until your next input restarts the idle window.

Zero-build static · theme from UFT1/opencode-model-viewer · Deploys via wrangler pages deploy site --project-name=hermes-idle-recap