VCode home

Hand a tab to another agent

Agents: claude, codex, opencode · On: phone, desktop

Change the agent on a tab and keep the conversation: same tab, same title, same history. The new agent reads a written brief of the transcript with your next message.

Why you would use it

Claude hit a usage limit and you want codex to carry on. Or one agent has been going in circles and you want a second opinion with the same context, in the same tab, without retyping anything. Or the work moved from design to a bash-heavy job the other one is better at.

How to use it

  1. Stop the running turn if there is one. A handoff is refused mid-turn.

  2. Tap the agent button under the composer (#agentpick) — the first of the three, right of +. It shows the agent's own mark and name, the same symbol the tab strip, the usage meters and every assistant card use.

  3. The list opens, headed agent for this tab · now: claude. The agent already running is labelled running this tab now and tapping it just closes the menu. Any other row reads hand this tab over — it reads the transcript as a brief; tapping it hands the tab over.

    The agent menu open over the composer, headed AGENT FOR THIS TAB · NOW: CLAUDE, with Claude marked "running this tab now" and Codex and OpenCode offering to take the tab over.

  4. Send your next message. The brief goes in front of it, once.

Or type /handoff codex. /vendor, /harness and /agent are the same command under other names — use whichever word you reach for. With exactly two agents installed, a bare /vendor picks the other one. With more it is a question rather than a change and toasts the choices, for example vendor: codex or opencode.

What you see

A system card in the transcript: handed off from claude to codex — codex gets a brief of 18 items with your next message. The handoff itself does not toast; a refusal does.

A system card in the transcript reading "handed off from claude to codex — codex gets a brief of 2 items with your next message".

The agent button shows the new agent and its mark. The model and effort pickers reset to auto — a model id belongs to one vendor — so pick new ones if you want something other than the CLI's default. The send mode goes back to Agent, so your next message goes to the agent and not to the shell pane. Replies already in the transcript keep the mark and the name of the agent that wrote them, so you can see who said what.

Button tooltips:

Refusals come back as toasts, in the server's words:

Limits and known gaps