Skip to content

Why Alto

The usual ways to work across many machines each give something up.

Alto keeps what each of them drops: sessions that outlive the window, a real terminal with nothing redrawing it, access from your other computers with nothing exposed, and a mark on every tab saying who needs you.

Tabs in a regular terminal

iTerm2, Ghostty, Terminal, Windows Terminal

What you lose

Sessions die with the window, an app update or a crash. Nothing reaches them from elsewhere, and nothing tells you which session is waiting on you.

What Alto does instead

Sessions live in their own processes and outlive the app, its updates and reboots (as saved screens with Run again). Status on every tab, and remote access.

tmux or Zellij inside a terminal

tmux, Zellij, screen

What you lose

A second terminal emulator sits between the program and the screen: images, the Kitty keyboard protocol, links and scrollback all go through its copy, and copy mode replaces native selection. One server process holds every session, so its crash or upgrade can take them all. Remote use means SSH into tmux.

What Alto does instead

No second emulator: the window draws libghostty's own state, so what the program sends is what you see, with native scrolling, selection and search. One process per session, so a crash or upgrade is contained. Scripting keeps tmux's shape: new, send, capture, attach.

SSH or mosh, with tmux

ssh, mosh, Blink, Termius

What you lose

An SSH server to run and keys to manage. A flaky link stalls (mosh fixes that, but adds its own server and drops scrollback). A phone gets a cramped SSH client.

What Alto does instead

Tailscale on each device and nothing else: no server to configure, no ports to open. A slow link gets the current screen at once and a fresh snapshot when it falls behind, rather than the backlog.

A web terminal or tunnel

ttyd, port forwards, tunnel services

What you lose

A listening port somewhere reachable, and its login, become the security boundary.

What Alto does instead

Nothing listens outside your tailnet. Connections are tied to the device and user Tailscale saw, and anyone else's device has to pair and can be revoked.

Agent managers and IDE agent panels

agent dashboards, IDE agent panes

What you lose

They tie sessions to their app and usually to one agent, and bring repo, worktree and browser panels along.

What Alto does instead

Any program in any tab, agent or not. A small window with nothing that hasn't earned its place. Worktrees and repos are left to the tools that already manage them.

Agents in the cloud

hosted agents, each vendor's remote control

What you lose

Your code and credentials leave your machine, or you're tied to one vendor's agent and its own app.

What Alto does instead

Everything runs on your computers, with any agent, and every client (the app, the command line, your other computers) sees the same sessions.

What it costs

Alto is a terminal of its own, not a layer over the one you use, though alto attach shows any session inside whatever terminal you're in. Reaching other computers needs Tailscale on each. On Windows, a session can't yet move to a new build in place, so an update means a new tab for it (Run again resumes agents). And it's early.

Kept deliberately small

No repo, worktree or browser panels. No planning or scheduling logic of its own: agents do that. No syncing with issue trackers. Any of these comes only if real use shows a need.