v2.3.0 - Run as a background service
Until now, running Dispatch meant keeping a terminal open. Close that window and the backend went with it: the board froze on "Disconnected, reconnecting", open terminals got stuck on "Connecting", and it looked like everything had broken even though your data was fine. This release lets Dispatch run as a proper background service instead, so it stays up whether or not a terminal is open.
Run it as a service
There's a new command family:
dispatch service install
On macOS this writes a launchd LaunchAgent, loads it, and from then on Dispatch starts at login and restarts on its own if it ever crashes. No terminal to babysit. It installs to ~/Library/LaunchAgents/com.dispatch.app.plist and logs to ~/.dispatch/service.log.
The detail that makes this actually work is the PATH. launchd hands a service a nearly empty environment, so a naive setup can't find tmux, ttyd, git, or the Claude CLI and the whole thing fails preflight. Install captures your current shell PATH into the service definition so the background process resolves the same binaries your terminal does. It also checks the target port first and warns you if something is already listening there (usually a copy of Dispatch you started by hand), since the service would otherwise fall back to a random port. Installing over an existing service is safe to repeat: it unloads the old definition before loading the new one, so re-running after an upgrade never errors.
The rest of the family is what you'd expect. dispatch service status shows whether it's installed and running, with the log paths. dispatch service restart does a hard restart, which is what you run after dispatch update so the new version takes over. dispatch service uninstall unloads and removes it but keeps the logs. And dispatch uninstall now tears the service down as part of cleaning up everything else.
Two things worth knowing. It's macOS only for now; other platforms get a clear message rather than a broken install. And your agent sessions live in tmux, not inside the Dispatch process, so restarting the service never touches a running Claude session, it reconnects to them.
A quieter scrollbar
The column scrollbar used to render as a thick opaque bar that sat on top of your cards and clipped the source badge on the right edge. Scrollbars are now thin and translucent everywhere in the app, and the board columns reserve a stable gutter so the bar has its own space instead of overlapping content.
Full changelog: v2.2.1...v2.3.0
Requires Node ≥ 22.22, tmux, ttyd, git, and the Claude Code CLI. Setup is in the README.