Install
Homebrew Soon
Section titled “Homebrew Soon”brew install alto # coming soonThe formula isn’t published yet. Until it is, build from source.
Build from source
Section titled “Build from source”You need Rust and Zig 0.17.1: libghostty, the terminal core, is built with Zig.
-
Get the source.
Terminal window git clone https://github.com/sanford/alto.gitcd alto -
Build everything and open the window.
Terminal window ./run.sh --releaseThis builds the whole workspace, so the
altocommand (which is also the background service and each session’s process) sits next to the app, as it must. Leave off--releasefor a faster, debug build. -
Put
altoon yourPATH, so agents and scripts can find it.Terminal window ln -s "$PWD/target/release/alto" /usr/local/bin/alto -
Set it up.
Terminal window alto installAt a terminal it asks each step: Tailscale (and logging in), starting the service at login, letting your other devices in, whom else to trust, and the hooks and MCP server for the agents it finds here. With flags (
--trust tag:ci,-yfor the defaults) or with no terminal, as in cloud-init, it asks nothing. On Windows, double-clickingalto.exedoes the same, and plainaltoon a device not set up yet asks whether to, first. -
Check it.
Terminal window alto statusOne line for each part (the service, Tailscale, remote access, devices, sessions, agents), then a command for anything that isn’t right.
scripts/bundle-mac.sh --release builds Alto.app in target/bundle/, with the alto command inside it and the service’s login item. It’s signed but not yet notarized.
Builds and passes every test; the window is checked less than on macOS. The service installs as a systemd user unit (alto service enable).
Builds and passes its tests in CI on a real machine. Sessions run on ConPTY. A session can’t yet move to a new build in place, so an update means a new tab for it, with Run again resuming agents.
Start over, or take it off
Section titled “Start over, or take it off”alto reset # end every session, start the service fresh (asks first)alto uninstall # also stop starting at login, take out agents' hooks, remove Alto's state and settingsBoth ask before ending anything; -y doesn’t (and is needed without a terminal to ask in). alto uninstall --keep-settings keeps settings.toml. The alto program itself stays where you put it: uninstall says where, to delete.
- Your first sessions
- Set up your agents so tabs show what Claude Code and Codex are doing.