Hermes Dashboard is an analytics and cost-monitoring web app for Hermes Agent. It shows API token consumption, cost by model and platform, tool usage, conversation depth, error rates, cron jobs, and host health for a Hermes installation running on a VPS.
It works as a pass-through proxy: Hermes is pointed at localhost:3333 through ANTHROPICBASEURL, and the FastAPI service forwards every request to the Anthropic API unchanged, captures the response (including streaming SSE), and logs usage to a local SQLite database. The x-api-key header is forwarded and never persisted. A second data source is Hermes's own state.db, opened read-only, which already holds sessions tagged by platform (Telegram, WhatsApp, CLI, Discord, Slack), message history with tool calls, token counts, and model names. The two sources together feed every panel.
Deployment is a single deploy.sh run from your machine: it uploads the app, creates a virtualenv, installs Caddy with Let's Encrypt HTTPS, opens ports 80 and 443, installs a systemd unit, rewrites Hermes's .env, and restarts the gateway. Login is a secret code compared in constant time with a signed session cookie; the app binds to loopback only, so only Caddy and Hermes can reach it. Costs come from a built-in pricing table in app/pricing.py with cache-write and cache-read multipliers, and daily, weekly, and monthly USD alert thresholds are configurable.
Features
- KPI strip: tokens, cost, requests, and sessions today, cost this month, projected monthly cost, and a threshold alert banner
- Token and cost trends: daily stacked usage by model and a daily cost line over 30 days
- Platform analytics: usage by Telegram, WhatsApp, CLI, Discord, and Slack with session and unique-user counts
- Tool analytics: top 15 tools by invocation and category trends across web, terminal, file, browser, memory, orchestration, and automation
- Conversation depth: histograms of input context size and output length per request
- Model distribution and heatmap: token share per model and an hour-by-weekday activity grid
- Reliability: error rate versus successes, HTTP status breakdown (429, 529), and prompt-cache hit rate
- Request log: recent requests with model, tokens, cost, latency, and status, plus top cost days
- Operations: active cron jobs, gateway status and uptime timeline from journalctl, CPU/RAM/disk gauges, database sizes, installed skills, and recent errors
- JSON API: authenticated /api/* endpoints behind each panel, with days and limit parameters
