The alto command starts, lists, attaches to and drives sessions, here and on your other devices. It's also
the background server and each session's process, so there's one file to install. Generated from alto 0.0.1;
each command's page has its full --help.
Sessions
| Command | What it does |
alto open |
Open a session in an Alto window, in a new tab if one is open, in this folder or DIR. Runs your login shell unless a program is given after `--`. What plain `alto` does where there's a screen |
alto new |
Start a session and print its id. Runs your login shell unless a program is given after `--` |
alto ls |
List running sessions, and what each is doing [alias: list] |
alto attach |
Show a session in this terminal. Ctrl-\ detaches |
alto kill |
End a session's program, or forget an ended session. --all ends every session here, asking first |
alto capture |
Print a session's screen and scrollback as plain text (an ended session's, as it last saved them). With no id, the work pane linked to this session |
Agents
| Command | What it does |
alto status |
Show what a session's program is doing, or say it (for an agent's hooks): idle, working, needs-you or done. Without --session, the session this runs in |
alto waiting |
Sessions waiting for you (a permission prompt, a question, a bell), here and on every other device you reach, newest first |
alto hooks |
Set up agents to report their state to Alto: Claude Code, Codex |
alto work |
The work panes linked to this session: where an agent running in it runs its commands (`alto run -- COMMAND`), beside it where you see them, here or on another device (`--on`). With nothing after it, lists them |
alto run |
Run a command in a session's shell, where it shows, and print only its output, leaving with its exit status |
alto wait |
Wait until a session's program reaches a state, or shows some text. Exits 0 then (printing what it found), 124 after --timeout, 125 if the session ends. With no id, the work pane linked to this session |
alto send |
Type text into a session, then keys by name. With no id, the work pane linked to this session (`alto work`) |
alto pause |
Stop agents typing into a session (`run`, `send` from an agent are refused there) until `alto resume`. You can still type. With no id, the work pane linked to this session |
alto resume |
Let agents type into a session again |
alto mcp |
Serve the session commands to an agent over MCP, on standard input and output: `claude mcp add alto -- alto mcp`. Its tools run commands in your work pane (or a session it's told to use), as `alto run` does |
Other devices
| Command | What it does |
alto remote-access |
Whether your other devices may reach these sessions, over Tailscale only: `on` (the default) or `off`. Leave out to see it, with Tailscale's state and your devices that run Alto |
alto devices |
Your other devices: those you reach (`--on NAME`), and those that reach this one. Forget, block or let one back in |
alto pair |
Pair with another person's device (your own, on the same Tailscale account, need no pairing). With nothing after it, shows a pairing string to type on the other device; with that string, pairs |
alto setup |
Make this device reachable from your others, with nobody here (a server, an image, cloud-init): turns remote access on, trusts what `--trust` names, installs the login service (on Linux, running with nobody logged in), and says how others reach it. Safe to run again |
The background service
| Command | What it does |
alto server |
The background process that keeps sessions (started for you): whether it's running, or start, stop or run it here |
alto service |
Start the server at login, without the app |
alto reload |
Move the server and running sessions onto the build installed now, after an update (nothing is downloaded). Sessions move in place, their programs still running: idle ones at once, working ones once idle. Those that can't (on Windows, ones started before they could) are listed as needing a restart, which --restart does |
alto restart |
Start over: end every session here (asking first), restart the server on the build installed now, and have open windows drop their tabs for one new one. `reload` is the one that keeps programs running |
alto keep-awake |
Show or set how long sessions keep the computer awake after they last print: `off`, `on` (1m), `always` (while any session runs), or any time: `30` (minutes), `90s`, `45 mins`, `2h`, `1h30m`. Applies to running sessions at once |
Look
| Command | What it does |
alto fonts |
Fonts Alto can download: list them, or install one |
Global options
Options:
--on <DEVICE> Work with the sessions on another device, paired with before (`alto devices`), or one of your own on Tailscale by its name there: for ls, new, attach, send, capture and kill
-h, --help Print help
-V, --version Print version