How to Schedule AI Coding Agents to Run Automatically (2026)
Run your AI engineering team on autopilot — morning code reviews, overnight test generation, weekly dependency updates — triggered by a schedule, not a human. Updated July 2026.
What the amux scheduler does
amux has a first-class scheduler at /api/schedules with a UI in the dashboard's Scheduler tab. A schedule has four fields:
- session — the name of the registered amux session to send the prompt to
- command — the prompt text to send (same as typing it in the steering bar)
- schedule_expr — when to run (natural language or cron expression)
- enabled — toggle on/off without deleting the schedule
When a schedule fires, it sends the prompt to the session's steering queue — exactly as if you had typed it manually. The session must be running; if it's stopped, the run is logged as a skip.
Setting up a recurring schedule
Step 1: Register and start a session in detached mode
amux register myproject --dir ~/Dev/myproject --yolo
amux start myproject --detach # returns immediately, session runs in background
Step 2: Create a schedule via the REST API
curl -sk -X POST -H 'Content-Type: application/json' \
-d '{
"title": "Daily morning review",
"session": "myproject",
"command": "Review all TODO comments added in the last 24 hours, create board issues for each one, and give me a priority-sorted list.",
"schedule_expr": "daily at 8am"
}' \
https://localhost:8822/api/schedules
Step 3: Or use the dashboard UI
Open the amux dashboard → Scheduler tab → New Schedule. Fill in the title, session name, prompt text, and schedule expression. The UI validates the expression and shows the next run time before you save.
Step 4: Verify your schedules
curl -sk https://localhost:8822/api/schedules | python3 -m json.tool
Step 5: Skip a single occurrence (without disabling the schedule)
# Dashboard: click "Skip next" on the schedule card
# API:
curl -sk -X POST https://localhost:8822/api/schedules/SCHED-ID/skip-next
The skip auto-clears after that run — the schedule resumes normally. Useful for weekends, holidays, or PR freeze windows.
Supported schedule expressions
amux accepts both natural-language expressions and standard 5-field cron syntax:
| Expression | When it runs |
|---|---|
daily at 8am | Every day at 08:00 local time |
daily at 23:00 | Every day at 11 PM |
every 15m | Every 15 minutes |
every 1h | Every hour |
every weekday at 9am | Mon–Fri at 09:00 |
weekly on Monday at 9am | Every Monday at 09:00 |
monthly on 1 at 9am | First of each month at 09:00 |
0 9 * * 1 | 5-field cron: every Monday at 09:00 |
Common scheduled workflows
End scheduled prompts with "report results to the board" to create a board issue for every run — makes morning review fast from any device.
| Workflow | Schedule | Prompt pattern |
|---|---|---|
| Morning code review | daily at 8am |
"Review all changes committed since yesterday. Create board issues for anything needing attention. Skip tests and auto-generated files. Report to the board." |
| Overnight test generation | daily at 11pm |
"Write unit tests for any new code added today that has no test coverage. Run the suite and report pass/fail counts to the board." |
| Weekly dependency audit | weekly on Monday at 9am |
"Check for dependency updates. Create a board issue for each one with severity (patch/minor/major) and a breaking-change note." |
| Hourly status check | every 1h |
"Are you still making progress? Reply with: current task, last action, next step, and any blockers." |
| Monthly tech debt sprint | monthly on 1 at 9am |
"Audit the codebase for TODO comments, unused imports, and deprecated patterns. Create a prioritized tech debt board with estimated effort." |
Monitoring scheduled runs
The Scheduler tab in the dashboard shows every schedule's last run time, next run time, and status (delivered / skipped / failed). On mobile:
- iOS app (App Store: amux – Agent Multiplexer): open the Scheduler tab for the full run history and next-run countdown
- Google Calendar integration: subscribe to the amux iCal feed — scheduled runs appear alongside your human team's calendar so you can see what your agents are doing at a glance
- Board integration: prompts that end with "report to the board" create board issues automatically, visible in the Board tab and on the iOS app home screen
Skip next occurrence (July 2026)
Shipped in July 2026: every schedule card has a Skip next button that marks the next occurrence to be skipped. The marker auto-clears after the skipped run; the schedule continues normally. This is different from disabling the schedule entirely — you don't have to remember to re-enable it after the weekend.
API: POST /api/schedules/SCHED-ID/skip-next
Scheduled AI agents: approach comparison
| Approach | Setup | AI-aware | Dashboard | Phone monitoring |
|---|---|---|---|---|
| amux scheduler (built-in) | Zero — in the dashboard | ✓ sends to AI session | ✓ full UI | ✓ iOS app + PWA |
| GitHub Actions cron | Workflow YAML file | ✓ via claude -p |
GitHub UI only | Limited |
| System cron + tmux send | Write bash script | Manual wiring | None | None |
| Claude Code Routines | Feature flag required | ✓ | Limited | None |
| Zapier / Make | SaaS account | Partial (webhook only) | Yes (SaaS) | Yes (app) |
Frequently Asked Questions
Can I schedule Claude Code to run automatically every day?
Yes. Register the session with amux (amux register myproject --dir ~/Dev/myproject --yolo), start it in detached mode (amux start myproject --detach), and create a schedule via the Scheduler tab or the /api/schedules API. The scheduler sends your prompt to the running session at the configured time, every day.
What happens if the agent session isn't running when the schedule fires?
The scheduler logs a skip for that occurrence. The session must be running. Combine amux start --detach with a launchd plist (macOS) or systemd unit (Linux) to ensure the session starts automatically at boot and stays running. See Detached Agent Sessions for boot script examples.
How do I run an AI coding agent on a cron schedule?
amux supports both 5-field cron expressions (0 9 * * 1) and natural-language schedule expressions (daily at 8am, every 15m, weekly on Monday at 9am). Create a schedule via the Scheduler tab in the dashboard or POST /api/schedules with the schedule_expr field.
Can I pause a schedule for just one run without disabling it?
Yes. The Skip next button (or POST /api/schedules/SCHED-ID/skip-next) marks the next occurrence to be skipped. The skip auto-clears after that run — the schedule resumes normally without you having to remember to re-enable it.
Can I monitor scheduled AI agent runs from my phone?
Yes. The iOS app (App Store: amux – Agent Multiplexer) and mobile PWA both show the Scheduler tab with last run time, next run time, and status. Enable the amux iCal feed to see scheduled agent runs in Google Calendar alongside your human team's calendar.
Run your AI engineering team on autopilot
amux is an open-source control plane for AI agent teams — self-healing, phone-first, single Python file, zero external dependencies, MIT licensed.
git clone https://github.com/mixpeek/amux && cd amux && ./install.sh
amux register myproject --dir ~/Dev/myproject --yolo
amux start myproject --detach
amux serve # → https://localhost:8822 — open Scheduler tab