Daemon Mode
Run System 0 as a persistent background service. It analyzes your target on a schedule, respects budget limits, and logs everything.
Install as a daemon
The recommended way to run System 0 in the background. Uses launchd on macOS and systemd on Linux.
# Run one pass every 5 minutes
s0 install my-audit --interval 300
# Run one pass every hour
s0 install my-audit --interval 3600
# Run continuously (back-to-back passes)
s0 install my-audit --continuousInterval vs. continuous
Interval mode (default): The daemon runs one pass, exits, and the OS relaunches it after the interval. Clean process boundaries. Good for periodic checks.
Continuous mode: A long-running process that cycles repeatedly with a 30-second gap between passes. Good for intensive analysis sessions.
Monitor the daemon
# Check status
s0 status my-audit
# View recent logs
tail -f /tmp/s0-my-audit.log
# See spending
s0 budget my-auditStop the daemon
s0 uninstall my-auditThis removes the launchd/systemd service and stops the daemon. The instance and all its data remain intact.
Budget safety
The daemon automatically stops when any budget ceiling is hit. You will never spend more than the configured limits. Check your spending with s0 budget <name>.
Continuous mode options
The continuous loop supports additional controls:
| Option | Description |
|---|---|
--max-cycles | Stop after N passes |
--stop-idle | Stop after N passes with no findings |
--max-hours | Stop after N hours |
These can be combined. The daemon stops at whichever limit is hit first.
Platform support
| Platform | Mechanism | Config location |
|---|---|---|
| macOS | launchd | ~/Library/LaunchAgents/com.system0.<name>.plist |
| Linux | systemd | ~/.config/systemd/user/system0-<name>.service |
Legacy daemon commands
s0 boot and s0 stop are legacy commands that manage a daemon process directly (without OS service integration). They work but install/uninstall are preferred for persistence across reboots.