Daemon Operations Guide
The Animus daemon is the autonomous scheduler that picks up tasks, dispatches workflows, and manages agent execution. It runs in the background and continuously processes work according to your workflow configuration.
Starting the Daemon
Background Mode (Autonomous)
Start the daemon as a detached background process:
animus daemon start --autonomousThis forks a child process and continuously polls for ready work. Structured runtime events are persisted through the active log storage backend, and the scoped local mirror remains ~/.animus/<repo-scope>/logs/events.jsonl.
Foreground Mode
Run the daemon in the foreground for debugging:
animus daemon runOutput streams directly to your terminal. Use Ctrl+C to stop.
Stopping the Daemon
Graceful shutdown with drain (waits for in-progress phases to complete):
animus daemon stopPausing and Resuming
Pause the scheduler without stopping the daemon process. In-progress work continues but no new work is picked up:
animus daemon pauseResume scheduling:
animus daemon resumeConfiguration
View and update daemon automation settings:
animus daemon configKey configuration options:
| Setting | Description |
|---|---|
auto_merge | Automatically merge PRs after successful workflow completion |
auto_pr | Automatically create PRs for completed work |
pool_size | Maximum number of concurrent agents the daemon will run |
active_hours | Time window during which schedule-driven workflow dispatch is allowed |
auto_run_ready | Whether ready tasks are promoted during daemon ticks |
active_hours only gates schedule-driven dispatch. Ready-task pickup is controlled separately by auto_run_ready.
Update a specific setting:
animus daemon config --pool-size 3
animus daemon config --auto-merge true
animus daemon config --auto-run-ready falseMonitoring
Daemon Status
Check whether the daemon is running and its current state:
animus daemon statusHealth Check
Detailed health information including uptime and resource usage:
animus daemon healthLogs
Read daemon logs:
animus daemon logsThe daemon writes structured log entries through the active log storage backend. Redacted JSON lines are also persisted under ~/.animus/<repo-scope>/logs/events.jsonl, which remains the local mirror for daemon events.
Clear logs when they grow too large:
animus daemon clear-logsEvents
Stream the event history to see what the daemon has been doing:
animus daemon eventsAgent Visibility
List agents currently managed by the daemon:
animus daemon agentsDiagnostics
Reading Daemon Logs Directly
For recent persisted entries, use the log tail command:
animus logs tail --limit 100animus logs tail reads through the active log_storage_backend when one is installed, and otherwise reads the local events.jsonl mirror directly. Its --follow flag is currently reserved for future backend streaming support, so the local file path still returns a batch and exits.
For live debugging, stream daemon events:
animus daemon stream --prettyThe stream contains structured events like daemon_startup, daemon_shutdown, workflow dispatches, and phase completions.
Runner Health
The runner is a separate process from the daemon. It spawns CLI tools (claude, codex, gemini). Check its health:
animus runner healthOrphan Detection
Detect orphaned runner processes that lost their parent:
animus runner orphans detectClean them up:
animus runner orphans cleanupRestart Statistics
View how often the runner has restarted:
animus runner restart-statsCommon Patterns
Start Daemon and Monitor
animus daemon start --autonomous
animus daemon status
animus daemon eventsPause While Making Manual Changes
animus daemon pause
# Make your changes...
animus daemon resumeDebug a Stuck Workflow
animus daemon status # Check daemon state
animus daemon logs # Look for errors
animus runner health # Check runner process
animus workflow list # Find the stuck workflow
animus workflow get --id WF-001 # Inspect workflow state