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 job of mostly shell commands the other one is better at.

How to use it

  1. 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.

  2. The slash panel opens on its Agent slot, listing the agents under Agent for this tab. The agent already running is labelled running this tab now. Any other row reads hand this tab over; it reads the transcript as a brief; tapping it hands the tab over. Either way the panel stays open and moves to the Models slot of the agent now running, with the Effort slider above it, so you can pick the model and effort next. Pick a model, or tap #agentpick again, to close it.

    An agent logged out on the tab's computer reads <Agent> · log in: tapping it opens the login in the panel and hands the tab over once you are in. An agent whose CLI is not on that computer reads Install <Agent>, with install it, then hand this tab over under it: tapping it runs the install in the panel, then any login the agent needs, then the handoff. OpenCode has no login here, so it never reads · log in.

    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.

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

You can also pick a model of another agent straight from the Models slot or from your starred favourites. That hands the tab over and sets the model and effort in one go.

While a turn is running

A handoff picked while the agent works, a compaction included, waits for the turn to end. It runs before anything you queued, so a queued message goes to the agent and model you picked. A toast reads Hands over to Claude after this turn, and the transcript shows hands over to claude on opus after this turn. Pick the running agent again before the turn ends to call it off: handoff to claude called off; codex stays.

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 the composer is back and your next message goes to the agent, not the shell. 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