Child tabs
A tab can open tabs that stay attached and nested under it on every surface. Tabs close only when told, only themselves or tabs under them, and you can detach any.
Copy & share
On this page4 sections
A tab can open another tab that stays attached to it. The new tab is a full chat with its own agent, model and history, and it sits under the tab that opened it everywhere you look. Use it when work needs its own visible lane, such as an audit you want to read later or a long fix that should not crowd the main chat. For short helpers, background agents are lighter.
Ask for oneLink to this section
Say what you want: "open a tab that audits the migrations while you keep going". The agent calls link with tab_open, gives the tab a name and a reason, and sends it its first message. The child says who opened it and why, and starts working at once. The parent gets a one-line confirmation, not the child's answers, so its context stays small. A child can open its own children, as deep as the work needs.
Agents open tabs only when you ask or the work truly needs its own lane. Each agent sees its parent and children marked in its list of tabs, so it knows which ones it may manage.
Where children appearLink to this section
| Surface | How a family looks | Collapse | Detach |
|---|---|---|---|
| Desktop tab strip | Children right after their parent, with a ↳ mark and the level from depth 2 | Collapse child tabs on the parent's right-click menu; the +N button opens it again | Detach from … on the child's right-click menu, or /detach |
| Desktop projects sidebar | Indented under the parent with tree lines | The chevron beside the parent, or the arrow keys | Right-click menu or /detach |
| Terminal | Tree lines in the tab bar, the projects view and the tab pickers | The projects view's expand and collapse keys; (+N) shows what is hidden | /detach |
| iPhone and Android | Indented under the parent with "from …", a level badge past level 2 | The chevron on the parent; +N shows what is hidden | Long-press, then Detach from parent |
Switching to a hidden tab opens its family again. Families, collapse state and detaches survive a restart.
RulesLink to this section
| Rule | What happens |
|---|---|
| Who may close a tab | Nothing closes on its own. An agent closes its own tab, or any tab under it, and only when you or its parent told it to. Never its parent, a sibling or an unrelated tab. You can close any tab. |
| Closing yourself | tab_close with no to closes the agent's own tab when its turn ends. A message or steer that arrives first keeps it open, and the last open tab never closes this way. |
| Background work | A tab told to close waits until its turn, its background shells and its background agents have finished, then closes. The agent is told how many are still running so it can stop the ones that should not finish. A parent that calls tab_close on the same child again stops the child's turn and background work and closes it at once, so a stuck child never blocks its parent. |
| Asking each other | link ask blocks until the other tab answers. If that tab is itself waiting on an answer from you, the second ask is refused at once with the id to reply to, so two tabs never wait on each other until the timeout. |
| Closing a parent | Its children move up to the closed tab's parent, or become top-level. Nothing closes with it. |
| Detaching | You can detach any child. An agent detaches only when you ask. A detached tab is a normal tab, and its old parent can no longer close it. |
| Results | A child's answers stay in the child. When the parent wants results, it says so, and the child sends them with link send. |
| What the parent hears | A child opening, closing or leaving shows up as one short line in the parent's tab list at its next step. It never wakes an idle parent. |
| Handing over | tab_handover sends a summary to the parent, or the tab it names, which picks up from there. The tab that hands over stays open until it is told to close. |
| Limits | At most 12 tabs opened by agents can be open at once in each checkout: the main folder and every worktree have their own engine and their own limit. |
| Moving a tab | A tab with a parent or children cannot move to another checkout until you detach it. |
| Worktrees | A tab in a worktree opens its children in the same worktree. |
| Headless | empryo --headless waits for the child tabs a run opened, and for any messages they send, before it exits. |
The link actionsLink to this section
| Action | What it does |
|---|---|
tabs | Shows your parent, your children and their children, each working or idle |
tab_open {text, reason, label?, mode?, model?} | Opens a child that starts on text; you get a short confirmation |
tab_close {to?} | Closes a tab under you, or your own tab when the turn ends if to is left out |
tab_detach {to} | Cuts a child loose, or yourself when to is your own id |
tab_handover {text, to?} | Sends your summary to your parent, or to; your tab stays open |
See tabs for how tabs share a project and message each other.