# Fast mode (daemon) — default since v3.6.0 `cs --setup` writes `cs render` + `refreshInterval: 1` by default. A long-lived `cs daemon` pre-renders into `~/.cache/claude-statusbar/rendered.ansi`; the statusLine command (`cs render`) is a thin reader that just `cat`s the file. Each tick is ~3-5ms, so total CPU stays under 1% continuously. The legacy inline path (~30ms/tick, ~3% CPU at 1Hz) is still available via `cs --setup --inline`. ```bash cs --setup # default: daemon mode, auto-starts the daemon cs --setup --inline # opt out, use legacy inline path cs daemon status # check the daemon is alive cs daemon stop # stop the daemon (statusLine falls back to inline) cs daemon start # start it again ``` Crash safety: if the daemon dies or freezes, `cs render` notices `rendered.meta.json` is older than 5s and falls back to inline render — and lazily re-spawns the daemon in the background. You never see a frozen status line. ## Optional: auto-start on login (launchd / systemd) Lazy-spawn (above) covers most cases — the daemon comes up on first `cs render`. If you want stronger guarantees (auto-start at login, OS restarts the daemon on crash, survives reboots without `cs render` needing to fire first): ```bash cs daemon install # installs ~/Library/LaunchAgents (macOS) or # ~/.config/systemd/user (Linux), starts the daemon cs daemon service # report whether the OS-level service is registered cs daemon uninstall # remove the LaunchAgent / systemd unit ``` On macOS, the LaunchAgent has `KeepAlive=true` and `ThrottleInterval=10` — kill the daemon and launchd respawns it within 10 seconds. On Linux, the systemd user unit uses `Restart=always` (you may need `loginctl enable-linger $USER` for the daemon to survive logout).