Overview
hermes cron manages the built-in cron scheduler. It runs scheduled jobs that invoke the agent, execute a script, or deliver output to a messaging platform. Schedules support both human-friendly forms (30m, every 2h) and standard cron expressions (0 9 * * *).
hermes cron <list|create|add|edit|pause|resume|run|remove|rm|delete|status|runs|history|tick>
Subcommands
list — View scheduled jobs
hermes cron list
hermes cron list --all # Include disabled jobs
create / add — Create a scheduled job
hermes cron create "0 9 * * 1-5" "Summarize yesterday's sessions"
hermes cron add "every 2h" --name "Health check" --script ~/.hermes/scripts/health.py
Key flags: --name, --deliver, --repeat, --skill, --script, --no-agent, --workdir, --model, --provider.
--scriptruns a script under~/.hermes/scripts/. Without--no-agent, its stdout is injected into the agent prompt. With--no-agent, the script is the whole job and its stdout is delivered directly.--no-agentskips the LLM entirely; useful for watchdog alerts (disk, CI, memory).
edit — Modify an existing job
hermes cron edit <job_id> --schedule "0 8 * * *" --prompt "New prompt"
Flags: --schedule, --prompt, --name, --deliver, --repeat, --skill, --add-skill, --remove-skill, --clear-skills, --script, --no-agent, --agent, --workdir, --model, --provider.
pause / resume — Control a job
hermes cron pause <job_id>
hermes cron resume <job_id>
run — Trigger a job on the next tick
hermes cron run <job_id>
Use --accept-hooks to auto-approve any shell hooks the job requests.
remove / rm / delete — Delete a job
hermes cron remove <job_id>
hermes cron rm <job_id>
hermes cron delete <job_id>
status — Check if the scheduler is running
hermes cron status
runs / history — Show durable execution attempts
hermes cron runs
hermes cron runs <job_id> --limit 20
tick — Run due jobs once and exit
hermes cron tick
hermes cron tick --accept-hooks
Common Scenarios
Daily morning briefing
hermes cron create "0 9 * * 1-5" "Summarize yesterday's sessions and plan today's tasks" --name "morning-briefing"
Script-based health check
hermes cron add "*/30 * * * *" --name "health-check" --script ~/.hermes/scripts/health.sh --no-agent --deliver telegram:123456
Test and iterate
hermes cron create "* * * * *" "Quick test" --name test-job
hermes cron run test-job-id
hermes cron edit test-job-id --schedule "0 9 * * *"
Tips
- Use
createandaddinterchangeably; they are aliases. tickprocesses all due jobs and then exits, making it ideal for debugging and external schedulers.- A long-running gateway is required for
--deliverto chat platforms. - Pin
--modeland--providerto a specific inference setup for consistent job behavior. - Use
--workdirto inject project context (AGENTS.md,CLAUDE.md,.cursorrules) and set the job’s working directory.