Follow-up to #1013 (macOS support).
netclaw daemon install / netclaw daemon uninstall are currently Linux-only (systemd). On macOS, DaemonManager.InstallAsync() / UninstallAsync() (src/Netclaw.Cli/Daemon/DaemonManager.cs) return early with a "Linux-only" message, so Mac users can run the daemon manually with netclaw daemon start but cannot register it as an auto-starting background service.
Proposed work
Add a macOS branch to DaemonManager that generates a launchd LaunchAgent at ~/Library/LaunchAgents/com.stannardlabs.netclaw.plist with RunAtLoad and KeepAlive, loaded/unloaded via launchctl. docs/spec/SPEC-011-daemon-architecture.md already describes the intended design.
Context
Deferred from the macOS install-support PR, which ships osx-arm64 binaries and fixes the install script but leaves daemon service registration as manual-start (netclaw daemon start) on macOS.
Follow-up to #1013 (macOS support).
netclaw daemon install/netclaw daemon uninstallare currently Linux-only (systemd). On macOS,DaemonManager.InstallAsync()/UninstallAsync()(src/Netclaw.Cli/Daemon/DaemonManager.cs) return early with a "Linux-only" message, so Mac users can run the daemon manually withnetclaw daemon startbut cannot register it as an auto-starting background service.Proposed work
Add a macOS branch to
DaemonManagerthat generates a launchd LaunchAgent at~/Library/LaunchAgents/com.stannardlabs.netclaw.plistwithRunAtLoadandKeepAlive, loaded/unloaded vialaunchctl.docs/spec/SPEC-011-daemon-architecture.mdalready describes the intended design.Context
Deferred from the macOS install-support PR, which ships
osx-arm64binaries and fixes the install script but leaves daemon service registration as manual-start (netclaw daemon start) on macOS.