VCode home

Start a new thread

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

Open a new tab: pick which agent runs it and which folder it works in, then tap Start thread. The tab uses the last model and effort you chose for that agent on this device. It is selected for you. On a phone it opens at the left of the strip, where your thumb already is — unless you started it from the new-thread page past the right end, when it opens at the right instead, beside the tab you left; on a window at least 760px wide it opens at the back of the strip, and with a mouse or trackpad the composer takes the caret, so you can type straight away.

Why you would use it

You want a second conversation running beside the one you have — another repo, another agent, or the same repo with a separate task. Each tab is its own thread with its own transcript, queue, folder and agent.

How to use it

  1. Open the new-thread card (#newthread) from any of these:

    • the plus right after the last tab (#new-tab). On a wide screen that plus is in each pane header instead (data-act="new-tab"), right after the pane's tabs, and the tab it makes lands in that pane
    • "New thread" at the bottom of the tab drawer (#drawer-new)
    • the new-thread page past either end of the tab strip (#endpage) — a tap anywhere on it opens the card
    • Ctrl+T or Ctrl+N on a keyboard (⌘T or ⌘N on a Mac), which opens the same thing the plus does. A browser keeps both for itself, so they reach the page only in the installed app; with Shift they stay the browser's
    • the NEW THREAD section at the top of the Threads sheet, which is the same form in another host. All threads (#newthread-manage) in the card's header goes the other way: the card closes and the sheet opens The new-thread card: the agent button, the folder box with its list already open, and Start thread.

    In the VCode app on app.v-code.dev the row starts with a box pick (.new-box): the box the tab is made on. It shows the active tab's box; tap it to pick another. The agents and folders the form offers are that box's. Its last entry, Add or pair a computer, opens the box list. See work-on-several-boxes.

  2. Tap the agent button (.new-agent) and pick Claude, Codex, OpenCode or Cursor from the list that drops down. If Claude, Codex or Cursor is not logged in, its row reads · log in and the card offers phone login instead of starting the thread.

The agent list open under the button, with Claude, Codex and OpenCode.

  1. Tap the folder box (.new-cwd) and type or pick a folder. See pick-a-folder.
  2. Tap Start thread (.new-thread), or press Enter in the folder box.

The new tab first in the strip, selected, named after the folder.

On a wide window the same tab opens at the other end, behind every tab already open, so nothing you were looking at moves.

The pane's tab lane on a desktop: the new tab last in the row, selected.

What you see

The agent button shows the agent's brand mark and its name (Claude, Codex, OpenCode, Cursor). Until you pick one there, it recommends the agent of the tab on screen — a new tab beside Codex work starts on Codex — and it keeps following that tab while the card is open. Once you pick, the pick sticks.

The folder box is seeded with the folder of the tab you were just in, shown ~-short, and is selected whole so the first keystroke replaces it.

The card opens with the caret already in that box, so the folder list is showing before you touch anything, on a phone as well as on a desktop.

The card closes as soon as you tap Start thread or press Enter, and a toast with a spinner reads starting thread… until the server answers. More taps or Enters in that time do nothing, and neither does the new-tab button, so a slow box still makes one tab. When the thread is created the toast goes, the new tab is selected, and its name is the folder's last path segment until you rename it. If you started from the Threads sheet, the sheet closes too.

Where the tab lands follows the frame. A phone puts it first in the strip, unless it was started from the new-thread page past the right end of the strip, which puts it last, beside the tab it was left from. A window at least 760px wide puts it last, because the whole strip is on screen there and a tab arriving in front of the one you are reading shifts every other tab under the pointer. On that wide window, if the pointer can hover — a mouse or a trackpad — the composer (#draft) also takes the caret, so the new tab is ready to type into.

With no folder picked the toast reads pick a folder. A folder that does not exist is refused by the server: no such folder: /path/you/typed. A path that is a file, not a directory, is refused the same way. The spinner gives way to the error toast, and the card stays closed.

In the app, a folder that belongs to a box other than the picked one is refused before the card closes: that folder is on <box>, not <box>: pick it again. The card stays open. A folder you typed stays as you typed it; a folder the card filled in is replaced with one on the picked box. See pick-a-folder.

Options and settings

Option Default What it changes
Box (app only) the active tab's box while it is open, else the first open box Which box the tab is made on, and whose agents and folders the form lists
Agent the last one you picked in this form, else the agent of the tab on screen, else the first agent the server offers Which CLI runs the tab. The picker's choice is shared between the sheet and the card
Folder the current tab's folder, else the server's default cwd The tab's working directory
Model the last model chosen for the selected agent on this device, else auto The model the new tab starts with
Effort the last effort chosen for the selected agent on this device, else auto The reasoning effort the new tab starts with
Colour new tabs (#tabs-auto-colour) off Gives every new tab a colour. See tab-colours

Limits and known gaps