Fast mode (daemon)
July 21, 2026 · View on GitHub
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 cats 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.
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):
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).