VCode home

Add a computer from app.v-code.dev

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

Copy one command from app.v-code.dev and paste it into a terminal on the computer you want to add. It installs VCode, links the computer to your account and pairs the browser that showed the command. That browser then opens VCode on it. You type no email, no code, and answer no fingerprint question.

Why you would use it

You are logged in on app.v-code.dev and want a new computer in your box list. Linking a box and pairing a browser used to be two steps, each with a code to read off one screen and type into another. The command does both. Use it on a new computer, or on one already installed to pair this browser with it.

How to use it

  1. Log in on app.v-code.dev (see use-the-app). Under the box list, tap Add a computer (#rs-boxes-add). With no box yet, the list reads No computer is linked to <email> yet. and the same button is under it.

  2. The Add a computer screen (#rs-add) shows the command (#rs-add-command) under Paste this into a terminal on the computer you want to add. It works once, within 15 minutes. Pick the computer's system in the combo box (#rs-add-os): Linux, Windows (WSL2) or macOS. macOS gives the same curl command as Linux. It starts on Windows in a Windows browser, on macOS in a Mac browser and on Linux in any other. The arrow keys move through the list, Enter picks and Escape closes it.

    The Linux command on the Add a computer screen

    The system list open, Windows (WSL2) checked

    On Linux:

    curl -fsSL https://v-code.dev/install | V_CODE_JOIN=<code> sh
    

    On Windows, in PowerShell:

    $env:V_CODE_JOIN='<code>'; irm https://v-code.dev/install.ps1 | iex
    

    The Windows command has a line under it (#rs-add-windows): If this PC already has WSL2, it uses it and installs nothing on Windows. If not, it installs WSL2, asks for administrator rights and a restart; after the restart, make a new command.

    The Windows command, with the line about WSL2 and a restart

  3. Tap Copy (#rs-add-copy). It reads Copied for two seconds.

  4. Paste the command into a terminal on the other computer, logged in as the user VCode should run as. The installer runs as in install-on-linux or install-on-windows. At the end it joins, and prints:

    v-code: linked to you@example.com
    v-code: paired with Chrome on Linux
    v-code: your browser opens it now
    

    The second line names the browser that showed the command.

  5. Leave the page open. Within a few seconds of the join it leaves the Add screen and opens VCode on the new computer. There is no pairing screen.

On a computer that is already installed, the same command joins without reinstalling: the installer prints v-code: already installed: <version>; joining, renders no unit and restarts nothing. From a terminal on such a box, the join is v-code box join, which reads the code on stdin:

printf '%s\n' '<code>' | v-code box join

Cancel (#rs-add-cancel) tells the site to retire the command, forgets it and goes back to the box list. If the site does not answer, the page still forgets the command, and the box list reads The site did not hear the cancel, so the command works until it expires: <reason>. New command (#rs-add-new) makes a new one; the site retires the old one when it makes the new one, so only the newest command works.

What you see

What the page shows under the screen (#rs-err) when it does not open a box:

Message What happened What to do
This command has expired. 15 minutes passed, or the site has no join for this browser. Tap New command and run the new one.
The computer could not join: it is linked to another account The computer's box is linked to another VCode account. Unlink it there (v-code box unlink), then make a new command.
The computer could not join: linking a computer needs a premium plan The account is not premium. Renew on the account page.
The computer could not join: the account has too many devices The account holds as many boxes as it can. Remove a box on the account page, then make a new command.
The computer could not join: the computer's signature did not check The box's proof failed at the site. Make a new command.
The computer could not join: <code> Any other refusal, shown by its code, such as bad_code when the browser that made the command was removed from the account. Make a new command.
The site's answer does not match this command. Make a new one. The site named a box that cannot prove it ran this command, and the page pins nothing. Or, on the box list, the new computer refused this browser five times. Make a new command.
This browser cannot copy here. Select the command and copy it. The browser has no clipboard access here. Select the command by hand; one tap selects all of it.
The site did not hear the cancel, so the command works until it expires: <reason> Cancel could not reach the site. The page forgot the command anyway. Nothing, unless the command leaked: then tap Add a computer and New command, which retires it.

When a join ends in one of the first six, the command disappears; New command makes another. A mint the site refuses shows the site's text in the same place, such as linking a box needs a premium plan.

What the terminal prints when it does not join:

Output What to do
v-code: V_CODE_JOIN is not a join code; copy the command again The value is not 34 letters, digits, - and _. Copy the whole command again. The installer checks this before it downloads anything, and never prints the value.
v-code: V_CODE_JOIN is for an install; --update never links Drop --update.
v-code: this release does not support V_CODE_JOIN The release does not know the join yet. Install without V_CODE_JOIN and link with your email (link-this-box).
The join did not complete: 400 that code is wrong, used or expired; make a new command under Add a computer The code was used or is over 15 minutes old. Make a new command.
The join did not complete: 409 this box is linked to another account; unlink it first Run v-code box unlink, then make a new command.
The join did not complete: 403 This account needs premium to link a box. Renew on the account page.
The join did not complete: 502 the site's answer does not match this join code The box writes nothing. Make a new command.

The number is the box's HTTP status. Each The join did not complete: line is followed by Make a new command under Add a computer. The install itself stays: VCode runs, unlinked or linked as it was.

v-code box join with the code as an argument stops with v-code: join reads the code from stdin, never from the command line.

Options and settings

Option Default What it changes
System (#rs-add-os) Windows (WSL2) in a Windows browser, else Linux Which command shows. The code is the same.
Code lifetime 15 minutes Fixed. A join that lands in the last seconds still opens.
Uses 1 Fixed. The site spends the code at the first redeem, even one it refuses.
V_CODE_JOIN (unset) The join code, in the installer's environment. Never an argument.

Limits and known gaps