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.
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
| Setting | Separate per tab? |
|---|---|
| Active model | Yes (Ctrl+L in the tab) |
| Mode | Yes (Ctrl+D cycles default, architect, plan, socratic, challenge, auto) |
| Session and messages | Yes |
| Checkpoint history | Yes |
| Helper agents and their findings | Yes |
| Input history | Shared across tabs |
| Genome, language servers, MCP servers | Shared (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 tab | Always 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 holds | Refused, with a message like being driven by "Tab 3" (idle 12s) |
| Close the browser or clear cookies | Waits while another chat tab still holds a browser tab |
| Stop a dev server | Only 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 tabShortcutsLink to this section
| Key | Action |
|---|---|
Ctrl+T | New tab |
Ctrl+W | Close tab |
Ctrl+\ / Ctrl+] | Previous / next tab |
Ctrl+1 to Ctrl+9, Ctrl+0 | Jump to tab N (0 is tab 10) |
Tab | Next tab, from the input box |
Shift+Tab | Previous mode, from the input box |
These shortcuts are for the terminal UI.