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:

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

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:

ModeWhat it means
Accept edits (default)File edits go through; anything that would prompt is denied.
Plan onlyRead-only. No edits, no commands — good for “what would you do here?”
Ask (deny)Anything needing approval is refused instead of assumed.
Allow everythingNo 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

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

Also worth knowing