A native macOS terminal for managing remote VMs, sessions, and AI agents. Built-in session persistence — no tmux required.
$ claude
Orchestrating 4 sessions across 2 machines...
a100-box: training-run epoch 34/50 loss=0.0018
a100-box: eval-sweep checkpoint-34 acc=94.2%
h100-cluster: finetune-13b 73% ETA 1h48m
h100-cluster: tensorboard serving :6006
$
~/research ~/research/experiments
experiments/
checkpoints/
data/
train.py
eval.py
config.yaml
requirements.txt
run_001/
run_002/
run_003/
sweep.yaml
README.md
~/research $ cd experiments/
~/research $ cd experiments/
~/research/experiments $
CPU
23%
Load 1.2 / 0.8 / 0.5
Memory
78.2 / 128 GB
61% used
GPUs
training-run → python train.py 68.4 GB
eval-sweep → python eval.py 51.2 GB
⌘B
- Persistent sessions Close your laptop, lose WiFi, reboot. Sessions keep running on the remote machine. Reconnect and pick up where you left off, full scrollback intact.
- GPU-accelerated terminal WebGL rendering via xterm.js. Native scrolling and keybindings. Built on Tauri and Rust — not Electron.
- Live GPU monitoring Real-time CPU, memory, GPU utilization, VRAM, and temperature for every connected host. See which Haven session owns each GPU process.
- AI agent orchestration Install the MCP bridge on any local session and give an AI agent control over your other terminals. One orchestrator, many sessions, many machines. view in docs →
- Split layouts Side-by-side columns, 2x2 grids, focus+sidebar. Drag session tabs into any grid slot. view in docs →
- Remote file browser Browse, edit, upload, and download files over SFTP. Syntax-highlighted editor built in. Opens in the session's working directory.
- Open-source daemon Haven auto-deploys a ~4MB daemon to your remote hosts. It manages PTY sessions and persists state across disconnects, with a private socket scoped to your user. Fully open source.
- Video and audio streaming Stream video and audio from remote machines.
FAQ
- How does session persistence work?
- Haven runs a lightweight open-source daemon on each remote host that manages PTY sessions independently of your SSH connection. When you disconnect, sessions keep running. When you reconnect, Haven reattaches and restores scrollback.
- Do local sessions persist?
- The shell process itself is destroyed when Haven quits, but the session is still there when you come back — Haven remembers the working directory and recent scrollback so you can pick up right where you left off. Remote sessions are the ones whose processes actually keep running on the other end.
- How does the AI orchestrator work?
- Right-click a local session and select "Install Orchestrator MCP." The AI agent running in that specific session gets access to
list_sessions,read_terminal, andwrite_terminal— it can see and control every other Haven session, local and remote. - What does the remote host need?
- Linux (x86_64 or ARM64) with SSH access. That's it. Haven detects the architecture and uploads the correct daemon binary on first connect.
- Is my data private?
- Yes. We don't see your terminals. Haven runs entirely on your machines — there's no Haven-operated backend that your sessions pass through, so your output, commands, and credentials never reach us. We collect basic anonymous product analytics (app starts, feature usage, crash reports) and nothing else. Full details on the Privacy page.
- Is the daemon open source?
- Yes. The daemon runs natively on your remote machines with its own PTY management — no tmux, no shell wrapping. Haven talks to it through your existing SSH session, so the network path is whatever SSH gives you. It's fully open source at github.com/christiansafka/haven-daemon, so you can audit exactly what runs on your infrastructure.
Your workspace should be beautiful.