Scripts without LLM
12.4. Scripts without LLM — Scripts That Do Not Need a Language Model
--no-agent — running a pure script, at zero token cost
hermes cron create "*/15 * * * *" \
"System health check" \
--no-agent --script health.sh
For work that only needs deterministic computation (checking an HTTP status, measuring disk usage, grepping for a known error pattern), use script-only mode: the script runs directly, its output is sent as-is, and no LLM call is needed at all — faster, cheaper, and more reliable for the kind of work that does not require reasoning.
The “boring stack” principle — scripts do the mechanical work, the LLM does the reasoning
This is the architectural philosophy described in detail in chapter 18: start deterministic (scripts fetch/diff/compute), and only add LLM synthesis after you have confirmed there is real value that actually needs reasoning. For simple dashboard numbers, clear threshold alerts, or checks against known error patterns — an LLM brings nothing extra over a plain if/else script, just added cost and latency.
When an LLM is still needed even with a script in place
This does not mean throwing the LLM away entirely — it means separating the roles properly: the script handles the mechanical parts (fetching, diffing, computing), and the agent only joins at the step that needs qualitative judgment (“is this change noteworthy?”, “how should this content be rewritten to be easier to understand?”). This is exactly how --script (not --no-agent) is used, as described in 12.2 and 18.
Notes
- For every purely health-check/threshold job (server status, disk usage, a price crossing a specific percentage threshold), default to
--no-agentfirst, and only move to an agent-based job when natural-language interpretation is truly needed. - For financial data or figures that need absolute precision, always separate the computation into a deterministic script (the same principle described in 17.4) — do not let an LLM round or infer important numbers on its own.
- Track token costs across jobs — if a
--no-agentjob can fully replace an LLM-based job with unchanged results, switch right away to save long-term operating costs.