Your terminal sessions, anywhere. A web-based tmux session manager that lets you access persistent terminal sessions from any device with a browser — no agents, no plugins, single binary.
Tired of having your Claude Code or Codex session interrupted every time your PC reboots or updates? Switching between your home PC and work laptop and losing your flow? Don't want to be glued to your desk while vibe coding?
ssh-to-go keeps your sessions alive on the server. Pick up exactly where you left off — from another computer, your phone on the bus, or anywhere with a web browser.
sshdemo.mp4
- Never lose a session again — tmux sessions live on the target machine and survive reboots, network drops, and browser closes
- Work from anywhere — attach from your desktop, laptop, tablet, or phone — all you need is a browser
- AI coding sessions that don't quit — run Claude Code, Codex, or any long-running terminal process in tmux and check in from wherever you are
- Multi-device, multi-user — multiple browsers can attach to the same session simultaneously
- Zero setup on targets — no agents or daemons to install, just SSH + tmux
Full terminal emulation in the browser via xterm.js with WebSocket relay.
- 8+ built-in color themes (Dracula, Nord, Monokai, Solarized, Gruvbox, and more)
- Automatic terminal resize
- Binary data streaming for responsive I/O
- SSH keepalive prevents idle timeouts
See all tmux sessions across all your hosts at a glance.
- Real-time host status (online/offline) with OS detection
- Session search and filtering by host, status, favorites
- Star/favorite sessions for quick access
- Customizable icons and colors per session
- Dark and light themes
- Create new tmux sessions with optional working directory
- Rename sessions without interrupting running processes
- Kill sessions from the UI
- Handoff — copy a direct
ssh ... tmux attachcommand to your clipboard
- Add, edit, and remove hosts at runtime from the web UI
- Per-host SSH port, username, and keypair assignment
- Manual or automatic polling (configurable interval)
- Generate ed25519 keypairs or import existing keys
- Multiple keypairs with default and per-host assignment
- Public key display for easy
authorized_keyssetup
- Password-based login with bcrypt hashing
- 7-day browser sessions
- Named API tokens for programmatic access
- First-run setup wizard
- Optional auth bypass for trusted networks
go build -o ssh-to-go .
./ssh-to-goOpen http://localhost:8080. The setup wizard walks you through password and SSH key setup on first run.
docker run -p 8080:8080 awkto/ssh-to-go| Mount Point | Contents | Purpose |
|---|---|---|
/etc/ssh-to-go/ |
config.yaml |
Host list, listen address, poll interval |
/data/ |
keys/, settings.json |
SSH keypairs, default username/keypair |
# Persist everything
docker run -p 8080:8080 \
-v ./config:/etc/ssh-to-go \
-v ./data:/data \
awkto/ssh-to-go
# Fully ephemeral
docker run -p 8080:8080 awkto/ssh-to-goConfig file is optional — hosts can be added entirely from the web UI.
listen_addr: "127.0.0.1:8080"
poll_interval: 5s
data_dir: data
hosts:
- name: dev-server
address: 192.168.1.100
user: deploy
- name: cloud-vm
address: cloud.example.com
user: ubuntu
key_name: my-deploy-key # optional, uses default keypair if omittedBrowser (any device)
↕ WebSocket
ssh-to-go server (discovers sessions, relays terminal I/O)
↕ SSH
Target machines (tmux sessions live here — persistent, always running)
- The server SSHes into your hosts and polls
tmux list-sessions - The dashboard shows all sessions grouped by host with live status
- Click a session to attach — xterm.js connects via WebSocket to an SSH relay
- Sessions live on the target, so they survive anything — reboots, network changes, browser crashes
- Handoff copies the direct SSH command so you can attach from a native terminal anytime
Run Claude Code (or any AI coding tool) inside a tmux session on a server:
# On your server, start a tmux session
tmux new -s claude-code
claude # start Claude CodeNow attach via ssh-to-go from any browser. Your AI session keeps running even when you:
- Reboot your PC for updates
- Switch from your home desktop to your work laptop
- Check progress on your phone while commuting
- Close your browser and come back hours later
The session never stops. You just reconnect.
go build -o ssh-to-go . && ./ssh-to-goThe web UI is embedded in the binary via go:embed. No npm, no build step. xterm.js is vendored in web/static/vendor/.




