What This Plugin Does
Hermes Agent runs autonomously — across sessions, platforms (CLI, cron, Telegram,
Discord), and subagents — which means it can keep spending even when you’re not
watching. hermes-telemetry lives inside the runtime as a Hermes plugin and
does two things:
- Captures telemetry (tokens, cost, latency, tool calls, session metadata) and persists it to a local SQLite database.
- Enforces budget guardrails before the next tool call is made — soft alerts injected into the conversation, hard blocks that abort tool calls when limits are exceeded, and cron-job pausing for future runs.
Design principle: observability is invisible to the model. Everything goes
through hooks. The only user-facing surface is /stats, /budget, and /setup.
Errors are swallowed in every hook — the plugin must never take down a session.
Runtime modes
Section titled “Runtime modes”The plugin setting plugins.entries.hermes-telemetry.settings.mode controls
whether budget behavior is active:
enforce(default): enable the budget guardrails and setup behavior described below. Missingmode, invalid values, and older Hermes hosts withoutctx.get_configall resolve toenforceso upgrades never silently drop blocking.observe: collect and report telemetry; do not create budget.yaml automatically, inject budget notices, block tools, or pause cron jobs. The budget file watcher still runs so/budgethot-reloads. When abudget.yamlis present,/budgetand the dashboard budget panel say limits are not enforced.
The mode is read during plugin registration. Changing it requires restarting the Hermes process that owns the plugin.
This plugin was built for the Hermes Agent Challenge and addresses NousResearch/hermes-agent#6642.
hermes-telemetry is an independent community plugin for Hermes Agent. It is not affiliated with or endorsed by Nous Research.