Skip to content

Set up your agents

Alto tells working, needs-you and done apart with no setup, from what the terminal already sees. Agents can do more once they’re connected. One command connects every agent it finds here (alto install offers it too):

Terminal window
alto agents # how each agent stands: found, hooks, skill, MCP server
alto agents install # connect the agents found here: what's missing or older
alto agents install claude # just one (claude, codex, opencode, pi)
alto agents install --dry-run # what it would change
alto agents uninstall # take out only Alto's, leaving your other hooks and skills

For each agent, up to three pieces:

Claude Code Codex OpenCode, Pi
Hooks: exact state on the tab, and a new conversation told which session it’s in yes yes
A skill: when to use Alto, and to run alto guide for how ~/.claude/skills/alto ~/.agents/skills/alto ~/.agents/skills/alto
The MCP server: the session commands as tools (alto mcp) yes

The skill points at alto guide, which prints the guide from the alto installed, so upgrading Alto updates what agents know without setting up again. --project writes the skill into this repository’s .claude and .agents folders instead, to share with others working on it. The hooks do nothing outside Alto, so they’re safe to leave in place.

Codex asks you to trust new hooks. It runs a hook only once you’ve trusted it in Codex’s /hooks, and again after Alto’s change (a newer Alto’s agents install). Until then alto agents shows Codex’s hooks as untrusted, and Alto can’t see Codex’s state: start codex, open /hooks, and trust Alto’s.

Answering from elsewhere (alto answer, the fleet view, the phone) needs the hooks from this build for Claude Code: its hook waits for the answer. Older hooks show as older; alto agents install brings them up to date.

  • Exact state on the tab. A yellow dot the moment Claude Code asks permission, with why (“permission: Bash”), and green the moment it finishes.
  • Notifications that say who. “claude needs you: permission: Bash”, for a tab that isn’t in front of you.
  • Run again resumes the conversation. After a reboot, an agent’s tab starts it again with its own resume (claude --resume ID, codex resume ID).
  • Work panes. With the hooks in, an agent hears when you give it a work pane.
  • Other sessions and agents. A conversation starting in Alto is told its session’s address, and alto guide shows it how to reach the other sessions, machines and agents (The guide for agents).

An agent or script can report its own state with alto report:

Terminal window
alto report needs-you --why "permission: deploy" --agent mytool
alto report working
alto report done

Inside a session, $ALTO_SESSION is set, so report knows which session it’s in. See Agent status.