Triggers & Daemon
Triggers define what wakes an agent up. The daemon (aide up) polls triggers and dispatches tasks.
Trigger types
manual (default)
[trigger]
on = "manual"
Agent only runs when you explicitly call aide run.
issue
[trigger]
on = "issue"
The daemon polls gh issue list --label <agent_name> in the agent's git repo. When a matching issue is found:
- The issue title + body become the task
- aide runs the agent with that task
- On completion, aide comments on the issue and closes it
cron
[trigger]
on = "cron:0 9 * * *" # daily at 09:00 (5-field cron syntax)
Or combined with issue via array form:
[trigger]
on = ["issue", "cron:*/30 * * * *"] # poll issues + fire every 30 min
The daemon parses the 5-field expression on each tick and fires when the next scheduled time has passed since the last fire (no catch-up by default — a single missed-fire summary on daemon restart). Each cron fire dispatches a synthesized task "Scheduled run (cron: <expr>)" to the agent.
Validation happens at aide register time — invalid cron expressions fail fast instead of at fire time.
Daemon behavior:
- Per-agent
last_cron_firemap prevents double-dispatch within a single tick window. - On first encounter the map is seeded to
nowso the next minute boundary (not the current tick) decides when the first fire happens — this is by design to avoid an immediate fire when the daemon is restarted mid-minute. - The per-agent supervisor (see
[daemon] restart = …) wraps cron-fired runs — failed runs can auto-retry onrestart = "on-failure".
Observability (new in v2.0.0-alpha.10):
- Every cron fire writes a matching
dispatched+finishedpair to~/.aide/events.jsonlwithkind=dispatched/finished,issue="cron:<expr>",routing="cron", and the same telemetry fields (cloud_tokens,reward,task_category) as issue-triggered runs. aide events --limit Nsurfaces cron fires alongside issue dispatches.aide ab analyzetreats"cron"as a third routing arm (separate from"bandit"and"round-robin") so cron-triggered runs don't pollute A/B comparisons.aide review(daily observability) applies MEDS-style failure clustering to cron-triggered failures the same way it does to dispatch-triggered ones.
Daemon
Start
aide up
Starts a background polling loop. The daemon:
- Reads the registry to find all agents with non-manual triggers
- Polls each agent's trigger on the configured interval
- Dispatches
aide runwhen a trigger fires - Writes a PID file for lifecycle management
Stop
aide down
Sends SIGTERM to the daemon process and cleans up the PID file.
GitHub repo detection
For issue triggers, aide detects the GitHub repo by parsing the git remote URL in the agent's directory. Both HTTPS and SSH formats are supported:
https://github.com/user/repo.git[email protected]:user/repo.git