bg-agents-panel
A Hermes Agent plugin that adds a live panel to the TUI showing running background agents and processes.
What it does
Hermes' status bar already shows counts (⛓ N subagents, ⚙ N processes) and /agents dumps a one-shot text listing. This plugin goes further — it injects a live auto-updating widget above the status bar that shows each running background agent/process individually, with its goal, uptime, and status.
⛤ Research GRPO papers and write summary 1m23s
⚙ npm run dev 45s
The panel:
- Only appears when something is running — collapses to 0 height when idle, zero visual clutter
- Updates live on every TUI render tick (no polling, no background thread)
- Shows up to 6 lines max so it never eats your screen
- Uses
⛓for subagent delegations and⚙for background terminal processes, matching the existing status bar icons - Color-coded with the same styles as the status bar (gold bold for active items, dim gray for metadata)
Installation
From this repo
git clone https://github.com/ilyakooo0/bg-agents-panel.git
cp -r bg-agents-panel ~/.hermes/plugins/bg-agents-panel
Enable the plugin
Add bg-agents-panel to plugins.enabled in ~/.hermes/config.yaml:
plugins:
enabled:
- bg-agents-panel
Or use the CLI:
hermes plugins
Restart Hermes
# In an existing session:
/quit
# Relaunch:
hermes
Verify it loaded:
HERMES_PLUGINS_DEBUG=1 hermes plugins list | grep bg-agents
How it works
The plugin monkey-patches HermesCLI._get_extra_tui_widgets() — a designed extension point in Hermes' TUI layout — to inject a prompt_toolkit Window widget between the spacer and the status bar.
The widget's content and height are driven by callbacks that query two module-level registries on every render tick:
tools.async_delegation.list_async_delegations()— backgrounddelegate_tasksubagentstools.process_registry.list_sessions()— background terminal processes
Both are in-memory, lock-protected, and return in microseconds. No network calls, no background threads, no I/O — the panel is effectively free.
When no background agents or processes are running, the height callback returns 0 and the widget is invisible.
Requirements
- Hermes Agent v0.18.2+ (uses
_get_extra_tui_widgetsextension hook) - Linux or macOS (TUI mode)
License
MIT