Skip to content

Agent tabs

Agent tabs live in the top tab strip and host pi conversations. Each tab owns a chat history, draft, model selection, queued message counter, and bash output buffer — everything the agent needs to run a focused session.

Anatomy of an agent tab

An Aethon agent tab. The top strip carries the active tab title and model picker; the left sidebar shows the host and project tree; the center is the scrollable chat history with the composer beneath it; the right panel is source control; the status bar along the bottom shows the model, project, branch, and context usage.
An agent tab in the default workstation layout: the tab strip and model picker up top, the host and project sidebar at left, chat history with the composer at center, the source-control panel at right, and the status bar below.

Tab management

ActionShortcutNotes
New agent tabCmd+TFocus-aware: opens shell if focus is in the bottom panel.
New shell sub-tabCmd+Shift+TAlways opens a shell and opens the bottom panel.
Close tabCmd+WShell tabs prompt before killing a running job.
Reopen most-recently closedCmd+Opt+TRestores chat + cwd + draft.
Next / previousCmd+Shift+] / Cmd+Shift+[Cycles agent tabs. Matches the iTerm / Terminal.app convention.
Jump to NCmd+1Cmd+8Index 1 = first agent tab.
Jump to lastCmd+9
Move tab right / leftCmd+Opt+] / Cmd+Opt+[Reorders the strip.

When focus is inside the bottom terminal panel, the same shortcuts cycle shell sub-tabs instead — see Shells & share modes.

Per-tab state

Aethon persists each tab to ~/.aethon/state.json:

  • Project (cwd) — immutable for the tab's lifetime.
  • Model — the model picked for this tab. Defaults to [agent] model.
  • Draft — whatever you typed but didn't send.
  • Queue count — messages queued for the next turn.
  • Bash buffer — recent stdout from the bash tool, surfaced in the bottom panel's "Agent bash" sub-tab.
  • Pi session id — pointer into ~/.aethon/sessions/<tabId>/.

If you set [ui] restore_tabs = true (the default), all of this comes back on next launch.

Composing messages

The composer lives at the bottom of the canvas:

ComboAction
EnterSend.
Shift+EnterInsert newline.
Cmd+LFocus the composer (or terminal in shell tabs).
Cmd+.Stop the current prompt.
Cmd+KClear visible chat history (pi session preserved).
Cmd+Shift+SExport the chat as Markdown to ~/Downloads/ (agent tabs only).

If you press Enter while a turn is already running, Aethon queues the message as a follow-up. Cmd+Enter / Ctrl+Enter steers the active turn instead.

Slash commands like /clear, /help, /theme, /model, /login, /reset, /reload, /terminal, /extensions, /sidebar, /files, /layout, and /project are recognised when typed at the start of the composer. Unknown /<word> falls through to the model — useful when pi or an extension owns the command.

See the full slash command reference.

Queuing messages

If you type and send while the agent is mid-turn, the message is queued. The status bar shows queued: N. The next turn starts immediately after the current one ends. To cancel a queue, clear the composer or Cmd+. to stop and discard.

Switching models

/model opens the model picker in the active tab. The change applies to the next turn only — already-running turns continue on the previous model. The new selection is also persisted as the tab's default for subsequent runs (until you change it again).

To change the default model for new tabs, edit [agent] model in config.toml or use the Settings panel.

Tool execution

Pi's tool calls (bash, file reads, file writes, web fetches) surface as A2UI tool cards in the chat. The card streams tool output as it arrives. Bash output is also mirrored to the "Agent bash" sub-tab in the bottom panel so you can keep watching it while you scroll chat.

Tool cards collapse by default when their tool finishes — click the chevron to expand, or set the cursor inside one to keep it open while you scroll.

Where to next