Skip to content

Install

Terminal window
brew install alto # coming soon

The formula isn’t published yet. Until it is, build from source.

You need Rust and Zig 0.17.1: libghostty, the terminal core, is built with Zig.

  1. Get the source.

    Terminal window
    git clone https://github.com/sanford/alto.git
    cd alto
  2. Build everything and open the window.

    Terminal window
    ./run.sh --release

    This builds the whole workspace, so the alto command (which is also the background service and each session’s process) sits next to the app, as it must. Leave off --release for a faster, debug build.

  3. Put alto on your PATH, so agents and scripts can find it.

    Terminal window
    ln -s "$PWD/target/release/alto" /usr/local/bin/alto
  4. Set it up.

    Terminal window
    alto install

    At 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, -y for the defaults) or with no terminal, as in cloud-init, it asks nothing. On Windows, double-clicking alto.exe does the same, and plain alto on a device not set up yet asks whether to, first.

  5. Check it.

    Terminal window
    alto status

    One 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.

Terminal window
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 settings

Both 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.