Hermes Cost Audit
Find where this Hermes install spends tokens and propose the cuts with the best payoff, backed by measurements taken on this machine.
When to Use
- The user asks why Hermes is expensive, where tokens go, or how to spend less.
- As a weekly cron job that reports spend and new savings opportunities.
Procedure
Run every command with the terminal tool. Read, measure, and report. Do not change any setting until the user approves the specific change.
-
Measure the fixed prefix that every model call carries, per surface actually in use:
bashhermes tools --summary # which platforms have which toolsets hermes prompt-size --json # CLI hermes prompt-size --platform telegram --json # repeat for each platform in useRecord system prompt bytes, skills index bytes, tool schema bytes, and the three largest toolsets per platform.
-
Measure real spend over time:
bashhermes insights --days 7 hermes insights --days 30 -
Read the settings that drive cost.
autoon an auxiliary task means the main model:bashhermes config get model hermes config get auxiliary.compression.model hermes config get auxiliary.title_generation.model hermes config get auxiliary.approval.model hermes config get auxiliary.background_review.model hermes config get delegation.model hermes config get cron.model hermes config get agent.disabled_toolsets hermes config get prompt_caching.cache_ttl -
Check for these patterns and estimate the saving of each from the step 1 numbers (roughly 4.2–4.5 bytes per token):
Pattern Proposal Auxiliary tasks on autowhile the main model is expensiveRoute compression, titles, approvals, and background review to a cheap model. Leave auxiliary.visionunset when the main model can see images: an explicit vision backend makes every image go through a text description.A toolset enabled on a platform that never uses it (for example browserorttson a chat bot)hermes tools disable --platform <platform> <toolset>Heavy delegation with delegation.modelunsetA cheaper model for subagents Several cron jobs with cron.modelunsetA cheap default for unpinned cron jobs A large project context file where the user usually works Shorten it. Move detail into subdirectory files or skills. Long pauses between turns on a Claude model with cache_ttl: 5mConsider 1h(cache writes cost 2x, but pauses stop re-reading at full price) -
Report a table ordered by estimated impact: finding, current value, proposed value, estimated tokens saved per call (or per day), and the exact command. Ask which changes to apply.
-
After approval, apply each change with
hermes config setorhermes tools disable, then re-run step 1 and show the before and after.
Verification
hermes prompt-sizeshows fewer bytes after toolset changes.hermes doctorreports no unresolvable auxiliary routes. An unresolvable route silently falls back to the main model and saves nothing.
Pitfalls
image_genandcomputer_useare already deferred behind tool search by default. Disabling them does not shrink the prompt.- Model switches and tool changes break the prompt cache for the running session. Apply changes, then start a new session.
- Don't propose capping
agent.max_turnsas a cost fix. It is unlimited by design, and loop guardrails already stop runaway loops in unattended runs. - Don't quote model prices from memory. Point the user at the provider's current pricing page.


