Introduction
Directly above the input prompt, Hermes prints a one-line status bar that updates in real time as the agent works. It packs five pieces of information into that single line: the active model, the context fill (tokens used vs. max), a visual fill bar with color thresholds, the running cost in dollars, and the elapsed session time. Reading it well is the difference between cruising and crashing into a context limit.
Key Concepts
- Active model: The model currently answering. Updates after
/modelswitches. - Token usage:
tokens_used / max_window, e.g.,12.4K/200K. - Context fill bar: A 10-block visual gauge with color thresholds.
- Session cost: A running dollar estimate based on the provider's pricing.
- Elapsed time: How long the session has been open.
Real World Context
You are 90 minutes into a refactor. The status bar shows 162K/200K [████████░░] 81% $0.42 1h30m. The bar just turned orange. You do not have to guess when to compress: the meter is telling you to run /compress in the next turn or two before you hit the cliff. Without the status bar, you would only learn this when the agent silently lost the earliest messages.
Deep Dive
A full-width status bar looks like this:
text⚕ claude-sonnet-4-20250514 │ 12.4K/200K │ [██████░░░░] 6% │ $0.06 │ 15m
The fill bar uses color to signal urgency:
text[██░░░░░░░░] <50% green plenty of room [██████░░░░] 50-80% yellow plan a /compress soon [████████░░] 80-95% orange /compress this turn [██████████] >=95% red act now or lose history
The cost field is an estimate, not a billed total. It uses the provider's published rates and the session's actual token counts. For multi-provider sessions (fallbacks, switches) it sums across all providers used so far.
The elapsed time is real wall-clock time from session start, not active-thinking time. It keeps running while you are away making coffee. It is mostly useful for detecting forgotten long sessions and for after-the-fact retros.
The layout adapts to terminal width:
- Full (>=76 columns): all five fields visible.
- Compact (52-75): some fields drop to icons or shortened forms.
- Minimal (<52): only model name and duration remain.
If you find your status bar collapsed unexpectedly, your terminal is narrower than you think. Widen the window or zoom out and the full bar returns.
Common Pitfalls
- Ignoring the color shift: Yellow means "plan a compress", orange means "do it now", red means "you are about to lose history". Treating these the same defeats the gauge.
- Confusing cost with billing: The status bar's dollar figure is an estimate from local token counts. The actual bill comes from your provider's dashboard. Use it for relative judgments (this task cost ~3x more than that task), not for accounting.
Best Practices
- Set a personal compress threshold: Most developers compress when the bar hits 70-75% yellow. Pick yours and stick to it so the decision is automatic.
- Use elapsed time as a session-length check: When you see
4h12myou probably want a fresh session, not just a compress. Long-running state can drift.
Summary
- The status bar packs five live signals: model, token fill, color-coded bar, cost, elapsed time.
- Color thresholds (green, yellow, orange, red) tell you when to compress.
- Cost is an estimate for relative comparison, not for accounting.
- The bar adapts to terminal width, with minimal mode only showing model and time.
Code Examples
# Three snapshots of the same session as it ages
⚕ claude-sonnet-4-20250514 │ 12.4K/200K │ [█░░░░░░░░░] 6% │ $0.06 │ 15m ← green: plenty of room
⚕ claude-sonnet-4-20250514 │ 142.0K/200K │ [███████░░░] 71% │ $0.35 │ 58m ← yellow: plan a /compress
⚕ claude-sonnet-4-20250514 │ 188.5K/200K │ [█████████░] 94% │ $0.51 │ 1h32m ← orange: /compress now