Session Persistence
Remote sessions
When you create a session on a remote host, Haven's daemon manages the PTY process independently of your SSH connection. If you disconnect — close the app, lose network, sleep your laptop — the session keeps running on the remote machine.
When you reconnect, Haven reattaches to the existing session and restores full scrollback. No lost output.
Local sessions
Local sessions are standard shell processes on your Mac. Closing a tab on an unnamed session kills it outright — quick and disposable, like a normal terminal window. If you rename a session, closing its tab keeps it in the sidebar: the process is stopped, but Haven remembers the name and working directory so you can pick up where you left off.
For long-running processes that need to survive disconnects entirely, use a remote session — the daemon keeps the actual process alive on the other end.
How the daemon works
On first connect, Haven uploads
haven-session-daemon
to ~/.haven/bin/ on the remote host. The daemon:
- Manages PTY sessions via Unix sockets
- Persists session state and scrollback across disconnects
- Restricts its socket to the local user with a per-launch auth token; Haven reaches it through your existing SSH session
- Starts automatically when Haven connects
- Supports both x86_64 and aarch64 Linux
- Fully open source — audit what runs on your machines
Session status indicators
| Color | Meaning |
|---|---|
| Green | Running / idle |
| Gold | Busy (process actively producing output) |
| Orange | Waiting for input |
| Red | Disconnected |