Skip to content

Tabs

Run many agents side by side in one project. Tabs warn each other before editing the same file, and git won't commit another tab's half-written work.

How it works4 minutes to read
Copy & share
On this page9 sections

You can open up to 10 tabs per project in the terminal UI and up to 32 in the desktop app, and each one runs its own agent. Use them to work on several things at once, for example a refactor in one tab and documentation in another. Tabs know about each other, so they avoid overwriting each other's work.

What each tab hasLink to this section

SettingSeparate per tab?
Active modelYes (Ctrl+L in the tab)
ModeYes (Ctrl+D cycles default, architect, plan, socratic, challenge, auto)
Session and messagesYes
Checkpoint historyYes
Helper agents and their findingsYes
Input historyShared across tabs
Genome, language servers, MCP serversShared (one per project)

So you can run a strong model in tab 1 for a refactor while a cheap model writes docs in tab 2, with one tab in plan mode and the other in auto.

How tabs stay out of each other's wayLink to this section

Every tab knows which other tabs are open, which files each one is editing, and whether any of them has helper agents running.

File claimsLink to this section

The first time a tab edits a file, it claims that file. Claims come from the edit tools and from shell commands that write files (sed, >, tee and similar).

If another tab's agent tries to edit a claimed file, it gets a warning that names the owning tab. The edit is not blocked, but the agent usually skips the file rather than overwrite someone else's work.

If an edit fails because the file changed underneath it *and* another tab has claimed that file, the agent stops and tells you about the conflict instead of retrying.

Claims are released automatically:

  • 5 seconds after the tab finishes its current prompt,
  • right away when you abort with Ctrl+X,
  • when the tab closes,
  • after 5 minutes without activity.

There are no permanent locks and nothing to clean up by hand.

Git protectionLink to this section

Some git actions would capture or throw away another tab's work. Empryo blocks them:

  • While another tab has helper agents editing files, this tab can't commit, stash, restore, reset, rebase, cherry-pick or switch branches. Committing then would capture half-written edits.
  • When another tab has uncommitted edits, actions that discard working-tree changes (such as stash, restore or a hard reset) are blocked, because the other tab would have no way to undo them.

A tab's own agents never block its own git. When an action is blocked, the agent is told not to retry and to tell you instead.

Shared browser tabs (desktop)Link to this section

In the desktop app, all chat tabs share one built-in browser. Two agents typing into the same page would make a mess, so each chat tab gets a temporary hold on the browser tabs it is driving.

Your agent tries to…What happens
Open a new browser tabAlways allowed. This is how it gets around a busy page
Read any browser tab (snapshot, screenshot, page text, inspect, audit)Always allowed, even if another agent holds it
Click or type in a browser tab another chat tab holdsRefused, with a message like being driven by "Tab 3" (idle 12s)
Close the browser or clear cookiesWaits while another chat tab still holds a browser tab
Stop a dev serverOnly the tab that started it can stop it

A hold expires after one minute without activity, or when its tab closes, so a stalled agent never keeps a page forever.

Ask tabs to talkLink to this section

Name tabs after their jobs, such as Implementation and Review. Then ask the agent: "Ask the Review tab to check the proposed API before you edit it." Empryo can send the request to the other tab and bring its answer back. You do not need to copy the conversation yourself.

Each agent sees the other open tabs and their link ids on every step, so it can message one without looking it up. An idle tab wakes up on a message and answers it; a busy tab reads it at its next step. Tabs in a worktree and tabs in the main repository reach each other the same way.

Use /link or the Link area of /workbench to inspect agent conversations. File claims warn about overlapping work; they do not give each tab a separate checkout. Agree on file ownership when two agents work on related changes.

Split viewLink to this section

In the terminal, open two tabs, then run /tabsplit to show them beside each other. Run it again to fold back to one. Each tab keeps its own model, mode and conversation.

CommandsLink to this section

/tab new                   open a new tab (Ctrl+T)
/tab close                 close current tab (Ctrl+W)
/tab rename                rename the active tab
/claim                     show all active claims across tabs
/claim release <path>      release one claim from this tab
/claim release-all         release every claim from this tab
/claim force <path>        take over a claim from another tab

ShortcutsLink to this section

KeyAction
Ctrl+TNew tab
Ctrl+WClose tab
Ctrl+\ / Ctrl+]Previous / next tab
Ctrl+1 to Ctrl+9, Ctrl+0Jump to tab N (0 is tab 10)
TabNext tab, from the input box
Shift+TabPrevious mode, from the input box

These shortcuts are for the terminal UI.