Cron Jobs
Mona's cron scheduler lets you run automated tasks on a schedule — daily summaries, periodic checks, automated reports — without you being present.
Creating a cron job
monoclaw cron create "0 9 * * *" \
"Generate a daily briefing. Search the web for major AI announcements, trending repos, and notable papers. Keep it under 500 words with links." \
--name "Daily briefing" \
--deliver telegram
Natural language schedules
You can use human-readable schedules:
monoclaw cron create "every 1h" "Check site uptime" --name "Uptime monitor"
monoclaw cron create "every day at 9am" "Morning briefing" --name "Morning brief"
monoclaw cron create "every monday at 8am" "Weekly report" --name "Weekly report"
With skills
Attach skills to cron jobs for specialized workflows:
monoclaw cron create "0 8 * * *" \
"Search arXiv for papers on language model reasoning. Save the top 3 as Obsidian notes." \
--skills "arxiv,obsidian" \
--name "Paper digest" \
--deliver telegram
With scripts
Run a Python script before the agent for data collection:
monoclaw cron create "every 1h" \
"If CHANGE DETECTED, summarize what changed. If NO_CHANGE, respond with [SILENT]." \
--script ~/.monoclaw/scripts/watch-site.py \
--name "Pricing monitor" \
--deliver telegram
Managing cron jobs
List jobs
monoclaw cron list
Output:
ID Name Schedule Next Run Status
---- ---------------- -------------- -------------- ------
1 Daily briefing 0 9 * * * 2026-05-11 09:00 active
2 Pricing monitor 0 * * * * 2026-05-10 16:00 active
Delete a job
monoclaw cron delete 1
Pause and resume
monoclaw cron pause 1
monoclaw cron resume 1
Edit a job
monoclaw cron edit 1 --schedule "0 10 * * *"
Delivery targets
Cron jobs can deliver results to any platform:
--deliver telegram # Telegram home channel
--deliver discord # Discord home channel
--deliver slack # Slack channel
--deliver sms:+15551234567 # Text message
--deliver telegram:-1001234567890:42 # Specific Telegram forum topic
--deliver local # Save to file, no notification
The [SILENT] pattern
Use [SILENT] in your prompt to suppress notifications when nothing interesting happens:
monoclaw cron create "every 15m" \
"Check if the server status page shows any errors. If NO_ERRORS, respond with [SILENT]." \
--name "Server monitor"
This means you only get notified when something actually happens.
Cron job limits
- Max jobs — 100 per profile (configurable)
- Min interval — 1 minute
- Max execution time — 1 hour per job
- Concurrent jobs — 5 by default
Cron configuration
# ~/.monoclaw/config.yaml
cron:
enabled: true
max_jobs: 100
max_concurrent: 5
default_timeout: 3600
Cron logs
View cron job execution logs:
monoclaw cron logs 1
monoclaw cron logs --all
Best practices
- Start with manual runs — Test your prompt manually before scheduling
- Use [SILENT] — Avoid notification fatigue
- Set reasonable intervals — Don't hammer APIs with every-minute jobs
- Monitor failures — Check
monoclaw cron logsregularly - Use skills — Encapsulate complex workflows in skills rather than long prompts