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

ColorMeaning
GreenRunning / idle
GoldBusy (process actively producing output)
OrangeWaiting for input
RedDisconnected

Get in touch

Question, bug report, or feature request — we read everything.