Skip to content

Day 7 · Full Automation and Diagnostics

Two things:

  1. Create a daily scheduled task — have Hermes send you a morning digest at a fixed time
  2. Get comfortable with the diagnostic commands — at minimum: hermes doctor, hermes status, hermes logs

Coming from OpenClaw? After finishing this chapter, head to Migrating from OpenClaw — it’s a standalone migration guide.


  • Days 1–6 complete
  • For the scheduled task section, Day 3 (at least one IM gateway configured) is ideal — that way the morning digest can push to Telegram / Discord etc.

Part A · Scheduled tasks: let Hermes run on its own

Section titled “Part A · Scheduled tasks: let Hermes run on its own”

Hermes’s built-in cronjob tool lets the agent schedule and run its own tasks. Conceptually similar to unix cron, but every trigger is an independent agent session (with its own tools, skills, and memory) — not a bare script.

  1. Natural language (easiest)

    Start Hermes and say:

    You: Every morning at 9 AM, scan Hacker News, pick 3 AI-related stories, and send them to my Telegram.

    Hermes recognizes this as a scheduling request, calls cronjob(action="create", ...), and tells you: job ID, schedule rule, and next trigger time.

  2. Slash command inside a conversation

    You: /cron add "0 9 * * *" "Scan HN, pick 3 AI stories, send to Telegram"

    Syntax: /cron add <schedule> "<prompt>".

  3. Terminal CLI

    Terminal window
    hermes cron create "0 9 * * *" "Scan HN, pick 3 AI stories, send to Telegram"

All formats supported:

FormatMeaning
30m, 2h, 1dRelative delay, one-shot (run once in 30 minutes)
every 30m, every 2hRecurring every N minutes/hours/days
0 9 * * *Standard cron: every day at 9:00 AM
0 */6 * * *Every 6 hours
2026-05-01T09:00:00ISO timestamp, one-shot at a specific moment
Terminal window
hermes cron list # list all jobs
hermes cron status <job_id> # details and last result for a specific job
hermes cron edit <job_id> --schedule "0 10 * * *"
hermes cron tick # immediately check for due jobs (for debugging)

Inside a conversation:

/cron list
/cron run <job_id> # trigger immediately, don't wait for the next scheduled time
/cron pause <job_id>
/cron resume <job_id>
/cron remove <job_id>

Load a skill (installed in Day 5) before the cron task runs:

You: Every morning at 9 AM, use the blogwatcher skill to summarize my RSS feeds and send to Telegram.

Hermes uses the skill as the agent’s leading prompt, then stacks this task on top — effectively putting a Day 5 skill into an unattended pipeline.

The gateway (the long-running process from Day 3) checks for due jobs every 60 seconds. If the gateway isn’t running, cron won’t trigger — before relying on scheduled tasks, confirm:

Terminal window
hermes gateway status # confirm gateway is running

When anything strange happens, this is the first command to run:

Terminal window
hermes doctor
hermes doctor --fix # auto-fix anything it can

It checks: Python / Node / dependency versions, config file syntax, database integrity, provider auth validity, gateway status, skills directory permissions, and more.

Terminal window
hermes status # summary
hermes status --all # full detail (safe to paste into an issue — auto-redacts secrets)
hermes status --deep # with active probing (sends a test request to the provider — slightly slower)

Use --all when filing issues — it redacts API keys and other sensitive values to sk-*** automatically.

Logs live in ~/.hermes/logs/. hermes logs is the query interface:

LogWhat’s inside
agent (default)API calls, tool dispatch, session activity
errorsWarnings and errors only
gatewayPlatform connections, webhook events

Common scenarios:

Terminal window
hermes logs -f # tail in real time
hermes logs errors --since 1h # errors from the last hour
hermes logs --level WARNING --since 30m
hermes logs gateway -n 100 # last 100 lines of gateway logs
hermes logs --session 7e4f2b8c # all logs for a specific session

Typical debugging flow:

Symptom: Telegram bot isn't responding again
1. hermes gateway status → is it still alive?
2. hermes status --deep → is Telegram auth still valid?
3. hermes logs gateway --since 30m -f → last 30 minutes of gateway logs
4. See 401 → re-run hermes gateway setup to refresh the token
5. See rate limit → configure fallback_model (covered in Day 2)

At this point you should have:

DayCapability
1Running hermes locally, completed first conversation
2Chose a provider, configured a key, sent a reasoning test
3At least one IM (Telegram / Discord / Slack) can @-mention the bot
4Used at least 2 built-in tools: web_search and terminal
5Installed a first skill and triggered it in a conversation ✨
6Know ~/.hermes/memories/, /compress, and hermes backup
7Write cron jobs to let Hermes run autonomously; use doctor/status/logs to diagnose issues

The 7 days cover the minimum working loop. Where to go deeper depends on your use case:

DirectionWhere to learn
Migrating from OpenClawMigrating from OpenClaw on this site
Embed Hermes in your own softwareOfficial Developer Guide
Write skills for your teamDay 5 advanced section + agentskills.io examples
Connect internal services via MCPUse MCP with Hermes
Voice interaction / self-hostingVoice Mode / Self-hosting
Read the official docs end-to-endOfficial Learning Path

This site will keep adding “Field Recipes” — each article focused on a specific workflow: code review agent, content aggregation bot, on-call operations assistant… complementary to this tutorial series.