Guides

Working with threads

Start tasks, use worktrees, transfer context and organize parallel work.

Use a new thread for a separate task. Choose New worktree when its code changes need a separate branch and working directory.

Master Agent

Open Master Agent from the workspace toolbar, command palette, or Settings → General on web and desktop. On mobile, open it from Home or Settings and choose the environment you want to manage.

On web and desktop, it opens in a corner popup without leaving your workspace. Drag its header to move it, or choose Open in separate window to move it to another display. Closing that window returns the conversation to the popup. Choose its model in Settings → General → Master Agent.

Switch between Chat and Voice in the popup. Both use the same conversation, model and tools. In Voice, press the microphone and speak; your message is sent when you finish, and completed responses can be read aloud. Closing the popup or switching to Chat stops the microphone and playback. Voice uses your browser’s speech services and requires speech recognition support and microphone permission. Remote browser connections need HTTPS. If your browser or desktop webview does not support recognition, open VC in a supported browser or use Chat.

Ask it to inspect task activity, find work needing attention, read VC defaults, open a folder as a project, or create tasks in that environment. Give it the folder’s full path; it opens folders that already exist and does not create them. To create an isolated workspace, give it a project, a base branch, and a prompt for the first task. Workspace setup scripts are not run automatically. Configuration results omit credentials.

Master Agent has VC’s management tools and no others. To change code or run something in a project, ask it to create a task. Its conversation starts in Supervised: the management tools run without asking, and anything else it tries, such as a command or a file edit, waits for your approval. With Cursor, Grok, Devin or Antigravity, the management tools can also ask. Turn on Full access in the popup header or in Settings to let it run commands and edit files without asking and use every management permission. Sensitive or bulk changes still wait for your reply. The switch is unavailable while Master Agent is working; turning it off returns it to Supervised.

Master Agent acts when you message it, or on requests you delegate with Replace me; it does not otherwise monitor in the background. Each environment keeps its own conversation, shared across connected devices. Reopening it restores that conversation. Disable it in Settings to revoke its management tools while keeping the chat history.

Replace me

Replace me lets Master Agent answer, in your place, the questions, approvals and task-board gates that would otherwise wait for you. Turn it on in Settings → General → Master Agent, then choose where it applies:

  • All current projects delegates the projects that exist now. Projects you add later are not included until you choose Update to current projects.
  • From a project, thread or task menu, choose Replace me: On, Off or Inherit. The most specific setting wins: task, then thread, then project, then the environment list. A task setting applies only to requests from an agent working on that task.

Master Agent reads the goal, the conversation and the evidence before it decides. When context is missing it asks the agent that made the request, at most twice; the agent may decline or close its request only to answer, and asks again afterwards. An approval from Master Agent allows that one action once. A request comes back to you, with the missing questions and the reason, when only you can decide, the goals conflict, or the agent cannot be asked. You are notified only then.

Each request card shows who holds it. Take over stops an answer Master Agent has not sent yet; answering the card yourself also takes it over. Delegate to Master Agent hands a request back, optionally with a note. An answer already sent cannot be withdrawn from the card. Stop all delegation pauses every scope and returns unanswered requests to you; resuming hands those back, while requests you took over stay with you. Master Agent never answers its own requests or those of projects outside its project scope. Replace me is not yet available when the desktop app runs its bundled server.

Start a thread

On web and desktop, a new thread keeps the current project and carries your model and mode selections, unless the destination project has its own model default. Its branch and workspace mode come from your configured defaults. To continue in an existing worktree, use New thread in this worktree from the branch toolbar.

When you change a new thread’s project, that pane moves to the destination project’s main workspace. VC stays in the current environment if that project exists there. Otherwise it selects an environment that has it. A destination in a different project asks for confirmation.

Start in the background

In a desktop browser or the desktop app, press Cmd+Enter on macOS or Ctrl+Enter on Windows and Linux to start a new thread and immediately open another draft. The next draft keeps the workspace mode and base branch you selected. With New worktree, each background submission creates its own worktree.

Transfer context

To move a conversation to another agent, for example when its provider is out of quota, right-click its pane header or its row in the sidebar on web and desktop, or open Transfer context in the thread menu. Pick an agent to continue in a new chat pane beside the source with that agent selected, or its CLI entry, such as Codex CLI, to open the native CLI and choose Paste context once it has started. Both open the dialog below to choose sources and preview the context first. Terminal and tools open beside the source in its checkout without copying context. Existing task… sends the context to a task you already have. Without a free pane slot, a new chat replaces the active pane.

On web and desktop, you can also drag a task from the sidebar or its pane header onto another task, or drag one sidebar workspace onto another, to choose Link or Condense context. Condensing summarizes a selected source conversation into the destination’s draft, including across projects and connected environments. For workspaces with several conversations, choose the source and destination in the dialog. Review the summary before sending; both histories stay separate. Cancel the dialog or press Escape during the drag to leave both sides unchanged. Pane edges still split the layout; hold Shift to swap panes instead.

Linking projects on the same environment shares their memory and recent activity across all their conversations. Workspaces in the same project already share project memory. With workspace context enabled, linked workspaces also contribute bounded final reports to the brief and subsequent turn updates.

Linking two conversations opens Linked context with the destination selected. Use Add context link to connect up to eight conversations, including panes in the same workspace or other projects and environments. Before each new turn, VC automatically reads the latest completed reports and includes only changed context, within one shared size limit. Running output, private reasoning, attachments and provider sessions stay separate. Select a link to preview, refresh, pause, resume or disconnect it; other links keep working.

Conversations on the same environment share context directly. Across environments, review both server addresses before connecting: the servers must reach each other, for example over your network or Tailscale. A browser-only proxy does not provide that server-to-server route. An unavailable source is skipped for that turn and its error appears in Linked context. Linking entire projects remains limited to one environment; link their individual conversations to share across environments.

Choose Transfer context from the thread menu (long-press a thread on mobile) or the command palette on web and desktop. Choose Condense with configured model to summarize the saved conversation with an independent model. Choose that model in Settings → General → Text generation → Context compaction model on web or desktop, or Settings → Context compaction on mobile. Each environment keeps its own selection; resetting it uses that environment’s default text generation model. The source agent can keep running or be unavailable; its conversation is unchanged. The summary reflects the saved context when you start the transfer. Keep the client open until it finishes. Remove queued messages or scheduled retries first.

Select up to eight source sessions from the same project and environment. Use the up arrows to arrange their context, then choose Preview context to review the combined text and its approximate token count. Long sessions are shortened within a shared limit; the preview marks omitted content.

Choose a new task, an existing draft, or another conversation outside the selected sources in the same project and environment, then choose Add to draft. VC appends the context to the destination’s composer, preserving its text and settings. Review or edit it before sending. A new task inherits the source’s provider, model, and existing checkout; both tasks then use the same files.

To transfer without model generation, choose Copy saved history after stopping any active turn. This copies conversation excerpts, plans, progress, and checkpoint references without requiring an agent response. Long copies are shortened and marked; attachment contents and detailed tool output are not included in either method.

Choose a workspace

On web and desktop, expand a project in the sidebar to see its main workspace and worktrees with saved panels or non-archived threads. Select a workspace to open its panes. When no workspace is selected, the main area shows a welcome screen instead of opening a thread for you: pick a workspace in the sidebar, add a project, or create a new workspace. Open panes appear under the workspace; select one to focus it. Threads created from another device also appear there; select a thread to open its conversation. Pin the right panel to keep it open across Projects. Tabs you pin keep their original content and remain available when you switch projects; other tabs use the selected workspace’s data. Unpin the panel to return to separate workspace panels, or close it to turn off the pin and hide it. Opening a file or terminal from a pinned tab in another workspace pins the new tab too. Select the project name to open its main workspace. Use the plus on a project, or New workspace in the command palette, to start a new worktree. VC creates the worktree right away from the default branch. Worktrees need Git: a project folder without a repository runs in its main workspace only, and VC offers to initialize Git when you add it or ask for a new workspace. Use Delete workspace on a workspace row, or the same command in the command palette, to remove it after confirmation. This applies to main workspaces, worktrees, and new or empty workspaces, including those in remote environments. Deletion stops its running agents, permanently deletes its tasks and conversation history, and closes all its panels and terminals. Deleting a worktree workspace removes its worktree only if no task ever ran in it; once a task has used the worktree, it stays on disk. Deleting the main workspace keeps the project and its files; select the project name to open a fresh main workspace. The panes you already have stay on the workspace you left; the new workspace opens with its own pane. To move one pane on web or desktop, drag its header or its row in the sidebar onto another workspace in the sidebar. Press Escape to cancel. You can also use Move pane to workspace in the pane header or Move pane to… in the command palette. The destination must be in the same environment; a different project asks for confirmation. Use the plus on a workspace to open it and add a pane. Add or close panes only inside the selected workspace — a pane never belongs to two workspaces. Selecting a workspace restores its saved panes. Connected environments keep separate workspaces, even when their paths match. Use All projects in the filter to clear the selection. Search uses the current selection and is how you find a specific thread.

To keep a project or workspace at the top of the sidebar, use Pin project in the project’s menu or the pin button on a workspace row. Pinned items stay above the rest. Pins are saved per browser or device.

On web and desktop, drag a project’s name or reorder handle in the left sidebar to change its position in All projects. You can also focus the handle, press Space, use the up/down arrows, and press Space again to drop or Escape to cancel. Pinned projects can be reordered within the pinned group. Project order is saved per browser or device.

To delete or move several panes together on web and desktop, use Select panes on their workspace, or hold Cmd (macOS) / Ctrl (Windows and Linux) while selecting pane rows. Hold Shift to select a range within that workspace. Use the selection actions to delete or move them, and press Escape to clear the selection. You can delete every pane and keep the workspace. When it is empty, choose Add agent to start again. Moving can move all selected panes to another workspace in the same environment.

Pin and reorder threads

Pin a thread from its menu. Pinning does not prevent automatic settlement. Settling a thread removes its pin.

On mobile, open a pinned or active thread’s menu and choose Move up or Move down. Active threads move only when Home’s Group by is set to Custom order, since status and project groups decide their own placement. The server saves the order, so it survives a refresh and appears on your other connected devices.

New threads appear above the active threads you have arranged. Settling clears a thread’s active position, so using Un-settle returns it to the top. Pinning and snoozing preserve its active position until you move it again. Thread activity does not change the order. The settled shelf continues to use settlement time.

Pinned and active reordering require server support. Threads from older servers keep their default order until the server is updated.

Archive and restore work

On web and desktop, archive a panel or workspace from its sidebar actions, or archive a project from its menu or project settings. On mobile, open Settings → Archive and trash → Archive a project…. Archiving hides it from the main lists and keeps its saved state. A project keeps its workspaces and each conversation’s existing archive state. Finish or stop active project work before archiving it.

Open Settings → Archive and trash to restore archived projects, workspaces, panels, tasks, and conversations, or choose Delete permanently to remove an item after confirmation. Permanent deletion cannot be undone. Project deletion keeps files on disk; workspace deletion explains whether it also removes an unused worktree. Archived tasks are also available in the Tasks tool’s Archived view.

Settle finished work

Choose Settle thread from its menu to park finished work without deleting the conversation. Un-settle thread restores it to active work and prevents automatic settlement until new activity resumes the usual rules. Manually settling an idle thread dismisses unanswered async questions without sending an answer or restarting the agent.

By default, environments settle inactive threads after three days and settle threads whose pull request merged. A closed pull request can also settle an idle thread. Work in progress, pending questions or approvals, and live background work prevent automatic settlement. An open pull request does not prevent inactivity settlement, but an old closed or merged pull request does not settle work you resumed after it closed.

Change these rules in Settings → General. They continue to run when your apps are closed. Changes apply to connected environments that support shared settings; offline environments and older servers keep their previous values. If connected environments disagree, Apply to all copies your current settings to those named in the warning. Changing a rule does not reopen already settled threads.

The server finds the PR for each unsettled thread’s saved branch, even when your apps are closed. Settled threads keep their saved links. Update the server if automatic branch links do not appear.

On web and desktop, right-click a pull request link in a thread and choose Link to thread to select a different PR. Use Unlink from thread on the same link to return to the branch PR, if one exists. The linked pull request participates in automatic settlement.

Find and reference work

On web and desktop, open the command palette with Cmd/Ctrl+K to search threads across connected environments. Message search starts after two characters and includes your messages and final agent responses.

Use Settings → Keybindings to find or customize shortcuts for searching files and copying a thread reference. A copied reference uses the thread’s pull request link when available, otherwise its thread ID. See keybindings for custom configuration.

Revisit a provider session

Open Settings → Session history to find sessions created in VC, including archived threads. Search by thread, project, workspace, or provider session ID, and filter by environment or provider. Sessions created directly in a provider’s CLI are not included.

Choose View to read the conversation. Choose Continue to reopen it; archived threads are restored first. Send your next message in that thread to resume its saved provider session. The original environment and provider account must still be available, and the provider must retain the session.

If saved resume data is unavailable, you can still view the conversation, but Continue is disabled. A connection error keeps the conversation open with a retry option.

History shows the current saved provider session for each thread. If you reset the provider session in a thread, its conversation remains, but the old provider session is replaced.

Get notified

While VC is in the background, web and desktop show a system notification when an agent finishes its turn, needs your answer or approval, or fails. Select the notification to open that thread. Choose which of these you want in Settings → General → Agent notifications. In a browser, choose Allow notifications in this browser there first; the desktop app needs no extra step. Snoozed and archived threads do not notify. The mobile app sends its own notifications from the environment.

The desktop app’s tray menu lists agents that are working or need you; choose one to open its thread. On macOS, the menu bar icon also shows how many agents are working.

Inspect agent work

Subagents appear above the composer on web, desktop, and mobile. Expand a subagent to inspect its status, activity, model, usage, and result when the provider supplies them. On web and desktop, View all opens the full Agents panel. Stop thread stops the thread and its background work; it does not target just one subagent.

To read what a subagent produced, expand it in the Agents panel (or in the list above the composer on mobile) and choose View transcript. You see the prompt it was given, each tool call with a preview of its result, and its full final report. A running subagent’s transcript updates as it works. Transcripts are available for Claude subagents; Codex subagents and workflow agents show their status and summary only.

Above the composer, web and desktop list what the agent has running right now: commands that take longer than a moment, background commands and watch loops, and the subagents at work. Work that outlives its turn stays listed, and Stop there ends all of it.

Expand a tool call in the conversation to see its full command and output. Summaries shorten shell wrappers and can still describe the latest call after it finishes; the call’s own result shows its status.

Delegate work to child threads

Ask an agent to split a larger job into parts, for example “delegate the API and the docs changes to separate threads”. The agent starts one child thread per part, each with its own conversation, provider, model, and approvals, then keeps working while the children run. You can name the provider and model for each part; otherwise a child uses the parent’s.

Children share the parent’s checkout, so the agent assigns each one the files it may change. When a child finishes, fails, or is stopped, its result arrives in the parent’s conversation as a new message and the parent agent continues from there.

Delegated threads appear with the parent’s subagents above the composer and in the Agents panel. Choose Open thread to read or reply in a child, and Stop to end one child and everything it delegated; the parent is told it was stopped. The task rows in each conversation link the parent and child threads to each other. Stop thread on the parent stops the whole tree and the parent does not resume on its own. A child waiting for an approval or an answer shows up in Inbox.

In the sidebar, a parent’s children are listed under it with a count of what is still working or waiting on you; the list opens by itself while any child is busy. A child thread’s header leads with its parent, one click away. When a thread has delegated work, the subagents bar above the composer counts the whole tree, grandchildren included, and Map opens it in the Dashboard. In a short pane, such as two stacked on a laptop screen, the composer folds into a button that opens it in a dialog, so the conversation and the subagents keep the room; in a larger pane you can hide the composer yourself for the same effect.

To steer a single message, choose a delegation mode next to the access mode in the composer: Parallel asks the agent to split the request into child threads that report back together, Solo asks it to keep the work in this thread, and Auto leaves the choice to the agent. The mode is kept for each thread. It guides agents that have VC’s tools; others ignore it.