Daemon Commands
The dispatch daemon is a background process that automatically assigns ready tasks to idle workers based on priority and dependencies. These commands control the daemon lifecycle and sleep/wake behavior.sf daemon start
Start the dispatch daemon. Usage:Options
Orchestrator server URL
Examples
Output
The daemon handles automatic task assignment to idle workers. Tasks are dispatched based on:
- Priority (P1 before P2, etc.)
- Dependencies (only ready/unblocked tasks)
- Agent availability (workers with
sessionStatus: 'idle')
sf daemon stop
Stop the dispatch daemon. Usage:Options
Orchestrator server URL
Skip confirmation prompt
Examples
Output
sf daemon status
Show the current status of the dispatch daemon. Usage:Options
Orchestrator server URL
Examples
Output
Rate-Limited Status
When rate-limited, the status shows which executables are limited and when they reset:sf daemon sleep
Manually pause dispatch until a specified time. Usage:Options
Orchestrator server URL
Sleep until a specific time (e.g.,
"3am", "Feb 22 at 9:30am", "tomorrow at 3pm")Sleep for a duration in seconds
Examples
Output
When to use
sf daemon sleep:This command is a manual escape hatch for when rate limit time parsing fails or produces incorrect results. Normally, the daemon detects rate limits automatically from agent provider error messages. Use this when:- Automatic rate limit detection fails
- You need to manually control dispatch timing
- You want to prevent dispatch during specific time windows
- Task dispatch is paused
- Non-dispatch polls continue (inbox, plan auto-complete, etc.)
- The daemon remains running in the background
sf daemon wake
Immediately resume dispatch, clearing all rate limits and sleep timers. Usage:Options
Orchestrator server URL
Examples
Output
sf daemon wake clears:- All rate limit entries (per-executable timers)
- The manual sleep timer (set via
sf daemon sleep) - Any other dispatch pause state
Common Workflows
Start and Monitor Daemon
Handle Rate Limits
Stop During Maintenance
Rate Limit Handling
The daemon automatically detects rate limits from agent provider error messages and pauses dispatch until the reset time. Supported providers:- Claude Code (detects
429errors, parses reset times) - OpenCode (detects rate limit messages)
- OpenAI Codex (detects
429responses)
- Agent spawn fails with rate limit error
- Daemon parses reset time from error message
- Dispatch is paused until reset time
sf daemon statusshows rate-limited state- Dispatch automatically resumes after reset
Related Commands
Agent Commands
Register and manage agents that the daemon dispatches to
Task Commands
View tasks that the daemon assigns