Skip to content

CLI reference

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

CommandWhat 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

CommandWhat 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

CommandWhat 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

CommandWhat 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

CommandWhat 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