Setup Guide

Set Up Scheduled Automations

Automate repeatable AI workflows by scheduling Hermes to run on a timer. Use the built-in cron system to generate daily briefs, weekly reports, or monitor content — hands-free.

Prerequisites

  • Hermes Agent installed and configured (see macOS guide)
  • A working model provider with valid API key (see model provider guide)
  • A repeatable task you want to automate (ideas below)
  • ~10 minutes for initial setup

Step 1: Identify a repeatable task

Any task you ask Hermes to do manually can be automated. The key is picking something that produces value on a recurring basis. Good candidates:

  • Daily news brief: Summarize industry news relevant to your business each morning
  • Weekly report: Aggregate project updates, metrics, or team activity into a digest
  • Content monitor: Watch competitor websites or RSS feeds for changes and flag new developments
  • Email digest: Summarize unread emails or Slack messages from the past day
  • Data backup reminder: Check backup status and alert if anything is stale
  • Invoice follow-ups: Scan for unpaid invoices and draft reminder messages

Start small. Pick one task, get it working reliably, then add more.

Step 2: Write a clear, testable prompt

The most important part of a scheduled automation is the prompt. It must be specific, self-contained, and produce consistent output without interactive follow-ups. Here's a good template:

You are running an automated daily task. No one is watching — be thorough and self-contained.

Task: [WHAT TO DO]

Guidelines:
- [Constraint 1, e.g., keep under 300 words]
- [Constraint 2, e.g., focus on Canadian SMBs]
- [Constraint 3, e.g., list top 5 items only]

Output format: [HOW TO STRUCTURE THE RESPONSE]

Save the result to: [FILE PATH OR DESTINATION]

Test your prompt interactively first:

hermes
> [paste your prompt here]

Iterate until the output matches what you want. A well-written prompt is the difference between a useful automation and a noisy one.

Step 3: Create the scheduled job

Use the hermes cron create command. The --schedule flag uses standard cron syntax:

# ┌───────── minute (0–59)
# │ ┌───────── hour (0–23)
# │ │ ┌───────── day of month (1–31)
# │ │ │ ┌───────── month (1–12)
# │ │ │ │ ┌───────── day of week (0–6, 0=Sunday)
# │ │ │ │ │
# * * * * *

Create a daily morning news brief:

hermes cron create \
  --name "daily-news-brief" \
  --schedule "0 8 * * *" \
  --prompt "Summarize today's top AI and automation news relevant to Canadian SMBs. Keep it under 300 words. Save to ~/Documents/hermes-briefs/$(date +%Y-%m-%d)-news.md"

Create a weekly report (every Monday at 9 AM):

hermes cron create \
  --name "weekly-project-report" \
  --schedule "0 9 * * 1" \
  --prompt "Review the past week's project activity from the notes in ~/Projects/. Summarize progress, blockers, and next steps. Save to ~/Documents/hermes-briefs/weekly-report-$(date +%Y-%m-%d).md"

Create a content monitor (every 6 hours):

hermes cron create \
  --name "competitor-monitor" \
  --schedule "0 */6 * * *" \
  --prompt "Check the following competitor websites for new blog posts or product updates: [URLs]. If anything new is found, save a summary to ~/Documents/hermes-briefs/competitor-updates.md. If nothing is new, do nothing."

Step 4: Test your job

Before trusting a scheduled job, test it manually to make sure it works as expected:

# List all scheduled jobs to find the job ID
hermes cron list

# Trigger a manual run of the job (replace JOB_ID with the actual ID)
hermes cron run JOB_ID

# Check the job's output and logs
hermes cron logs JOB_ID

After a manual run succeeds, let the cron schedule take over. Monitor the first few automatic runs to confirm reliability.

Step 5: Monitor and maintain

Keep an eye on your scheduled jobs:

# List all jobs with their status and last run time
hermes cron list

# View recent run history
hermes cron history

# Check a specific job's details
hermes cron info JOB_ID

# Disable a job without deleting it
hermes cron disable JOB_ID

# Re-enable a disabled job
hermes cron enable JOB_ID

# Delete a job you no longer need
hermes cron delete JOB_ID

Idempotency and reliability tips

Scheduled automations run unattended. Design them to be resilient:

  • Make prompts idempotent: Running the same job twice should produce a useful result, not a duplicate mess. Use date-based filenames and conditional logic in your prompts.
  • Set output paths carefully: Use dated filenames (e.g., report-2026-05-21.md) so each run produces a distinct file rather than overwriting the previous one.
  • Handle API failures gracefully: If your model provider is down, the job will fail. Hermes logs errors — check periodically that jobs are completing.
  • Notification delivery: For critical automations, include a notification step in your prompt (e.g., "send a summary to me via Telegram"). See the Telegram gateway guide for messaging setup.
  • Start with low frequency: Run jobs daily or weekly before scaling up to hourly. It's easier to catch issues when you're not drowning in output.
  • Monitor costs: Scheduled jobs consume API tokens. A daily brief at ~$0.01/run costs pennies per month. A job running every 5 minutes can add up — check your provider's usage dashboard regularly.

Next steps

Once you have scheduled automations running reliably:

Unattended execution. Scheduled jobs run without human supervision. Test thoroughly before relying on them for critical tasks. Hermes will not ask for confirmation on cron-triggered runs — the prompt executes as-is.