Working with agents
Launching, steering, and living in the terminal — everything between “I have a task” and “there's a branch to review.”
The Launch dialog
Agents → + New Agent (or a quick-spawn preset). The fields, top to bottom:
- Role — Worker is a normal agent session. 🏗 Foreman turns the dialog into the orchestrator form (goal + worker cap) and launches a coordinator that plans the work and — after you approve the plan — spawns its own specialist workers. Same thing the Foreman pane does, one dialog earlier.
- Agent — any detected CLI: Claude Code, Codex, Gemini, Copilot, or a plugin-defined agent. Missing ones show an Install… shortcut.
- Location — a registered repo (unlocks the worktree/branch flow), No repo (scratch) for a fresh throwaway folder, Custom folder… to run in any directory as-is, or a remote server to run the agent on another machine (see Remote servers).
- Isolated worktree — on by default for repos: own branch, own folder, parallel-safe.
- Profile — which identity the agent runs under; repo-bound profiles preselect themselves. “Always use this profile for this repo” remembers the choice.
- Start from issue — paste
#123,ABC-123, or an issue URL and hit Fetch: the title, branch name, and an opening prompt are filled from GitHub (gh) or Jira (profile token), and the eventual PR links back with Closes #123. - Model — optional
--modeloverride for CLIs that accept it.
Every new agent starts with a context digest — the shared knowledge other sessions published for that repo and workspace — prepended to its opening prompt. See Knowledge.
Presets and snippets
- Hover a session row and hit ☆ to save it as a launch preset — a one-click spawn chip above the session list (agent + repo + profile + prompt template).
- Snippets (Settings → Snippets) are reusable prompt templates with
{placeholders}; insert one into the focused terminal from the palette — placeholders are asked for, the text is pasted without submitting so you can edit first.
Chat instead of a terminal
Agents → Chat is a proper conversation with Claude rather than a CLI in a terminal: message bubbles, formatted code blocks, and — the useful part — every tool call as a card. A file edit shows the file as a link that opens it in the viewer, with the full diff one click away; a command shows what it ran. Each turn ends with its cost and duration.
Because a headless agent can't stop to ask permission mid-run, you choose that up front when starting the chat:
| Mode | What it means |
|---|---|
| Accept edits (default) | File edits go through; anything that would prompt is denied. |
| Plan only | Read-only. No edits, no commands — good for “what would you do here?” |
| Ask (deny) | Anything needing approval is refused instead of assumed. |
| Allow everything | No permission checks at all. Trusted repos only. |
Chats run in a repo you pick (or your home folder) under the active profile, several can be open at once, and the transcript survives closing the panel. Two limits worth knowing: chat is Claude-only for now, and chats end when you close AIOAT — long unattended work still belongs in a terminal session, which survives in the session host.
Reading the session list
Each row shows the state dot (green running · amber waiting for input · grey idle · done), branch, and — when the agent reports them — context-window usage and session cost. Double-click the title to rename, 🎨 cycles a color stripe, ⬆ promotes a repo-less session's folder to a real repo, ✕ removes the session (optionally deleting its worktree or scratch folder).
Sessions name themselves. An agent launched with an opening prompt takes its title from it (“Fix the login redirect in auth.ts” rather than “Claude Code — myrepo”); one launched bare gets named from the first real prompt you type into it. Rename it yourself at any point and that name sticks — auto-naming never overrides your choice.
An agent that goes quiet too long while idle is flagged ⏸ stalled (threshold in Settings). Sessions using too much CPU or spawning runaway process trees get a warning and a Kill button.
The terminal
- Ctrl+V pastes; a pasted screenshot is saved and its file path typed into the session, so vision-capable agents can read it. Dropping files onto the window does the same with the dropped files.
- Ctrl+F searches scrollback. The 💾 button exports the session transcript as Markdown.
- Theme, font, and cursor style are configurable per workspace (Settings → Terminal), with presets like One Dark and Dracula.
Plain shells, with a bridge
The terminal panel's + opens plain shell tabs — PowerShell, cmd, Git Bash, nu, MSYS2, or any WSL distro, auto-detected. Each shell gets an aioat helper on PATH:
aioat spawn "fix the flaky login test" # opens the launch dialog, prompt prefilled
aioat publish notes.md # publish a file to the shared context
aioat open src/auth.rs # open a file in AIOAT's viewer
aioat send "what does this error mean?" # ask the side-chat
Panels & layouts
- Drag any tab to rearrange the grid; edge-drop splits, center-drop groups. Layouts persist per workspace.
- Your default layout: arrange things once, then palette → “Layout: Save current as my default”. Every new workspace (and fresh install under that profile) starts from it. Apply and Clear commands sit next to it.
- Presets for common shapes: Default, Terminal Focus, Review, Preview.
Also worth knowing
- Dev-server detection: when an agent's output mentions a local URL, a 🌐 chip appears in the status bar — one click opens it in the Preview pane.
- Session bundles: export a session (branch + transcript + context) as an
.aioat-sessionfile and import it on another machine to continue there. - A/B test: run the same task with two configurations (different CLIs, models, or prompt styles) on twin branches and compare. See Orchestration.