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 --continuous

Interval 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-audit

Stop the daemon

s0 uninstall my-audit

This 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:

OptionDescription
--max-cyclesStop after N passes
--stop-idleStop after N passes with no findings
--max-hoursStop after N hours

These can be combined. The daemon stops at whichever limit is hit first.

Platform support

PlatformMechanismConfig location
macOSlaunchd~/Library/LaunchAgents/com.system0.<name>.plist
Linuxsystemd~/.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.