Script-Only Cron Jobs Without LLM Cost

Not every scheduled task needs a model. If a script can determine the exact message, Hermes no-agent mode runs the script on schedule and routes non-empty output without making an inference call.

Official documentation: https://hermes-agent.nousresearch.com/docs/guides/cron-script-only

Good no-agent jobs

  • Disk, memory, certificate, or endpoint threshold checks.
  • Backup completion markers.
  • Deterministic counts and status summaries.
  • Fixed reminders whose wording never changes.
  • File-arrival or process-health watchdogs.

Use an agent-driven cron job when the output requires judgment: selecting important items, summarizing prose, combining sources, or drafting an audience-aware response.

Script contract checklist

  • Put the script under ~/.hermes/scripts/.
  • Use a supported script type and explicit dependencies.
  • Exit zero with empty stdout when nothing needs attention.
  • Print only the message that should be delivered.
  • Return non-zero on genuine script failure so it does not fail silently.
  • Set a timeout appropriate to the check.
  • Avoid credentials and private payloads in stdout or stderr.
  • Test once manually before enabling the recurring schedule.

Choose the scheduler boundary

Hermes no-agent cron is appropriate when the Hermes scheduler is healthy and the monitored system is external. For a watchdog whose purpose is to detect that Hermes itself is down, use an independent OS scheduler that can call an external alert endpoint or signed webhook. A monitor should not depend entirely on the component it is meant to monitor.

Quiet-channel design

A healthy watchdog should usually say nothing. Empty stdout creates a silent tick, while non-empty stdout is delivered. This supports frequent checks without flooding a channel. Include enough context in alerts to act: what failed, where, when, and which verification command or URL should be checked next.

Pitfalls

  • Paying for an LLM every minute to evaluate a numeric threshold.
  • Printing routine success messages that create alert fatigue.
  • Swallowing non-zero errors and making a broken monitor appear healthy.
  • Depending on an in-gateway scheduler to detect gateway failure.
  • Writing scripts outside the allowed scripts directory.
  • Including unstable host details or secrets in delivered output.

Verification steps

  1. Run the script in a healthy state and confirm stdout is empty.
  2. Simulate the threshold and confirm one concise alert is printed.
  3. Simulate a script error and confirm the job reports failure.
  4. Trigger the cron job manually.
  5. Verify the destination receives the alert once.
  6. Restore the healthy state and confirm the next run stays silent.