Skip to content
handsfree.SupportOpen Handsfree
Browse articles

Connect your computer

A picture-by-picture guide to desktop setup, the QR code, and pairing your phone.

On this page

Set up the computer once, show its QR code, then scan it inside Handsfree. You do not need to type the long computer address or pairing code.

This guide follows the current mobile interface. The phone-shaped screenshots are real captures of the browser interface at iPhone size, using a disposable demo host. The installed iPhone app uses the same flow; its camera and permission screens are native iOS screens. The example QR below cannot connect to a real computer.

1. Start on the phone#

Open Handsfree. With no saved computer, you will see Bring your computer along.

  • First time setting up the computer? Tap Set up my computer.
  • Computer already running Handsfree? Tap Scan my computer’s code and jump to step 3.
Handsfree's blank start with Set up my computer and Scan my computer’s code buttons
Start here once. Choose setup if the computer is not ready; choose scan if its connection code is already on screen. View full size

The app on your phone is the remote control. The host is the Handsfree service on your computer. Installing the phone app or opening the website does not install that service.

If you open the development interface at localhost:8042 on the host Mac, it recognizes that it is on a computer, checks the standard local gateway on port 9879, and connects without a QR. The automatic path is loopback-only; remote browsers and phones still require normal pairing.

2. Get the computer ready#

Use your computer for this part. Open Set up your Mac & iPhone there and copy its opening setup request into your coding agent. That guide supplies the commands; this article shows what you should see along the way.

Desktop handoff screen with three steps: open the setup guide, let your agent prepare it, and show the connection code
The phone explains the handoff. Run the actual setup on the computer that holds your projects. View full size

The completed setup should give you:

On the computerWhy it is needed
A running Handsfree host and authenticated Claude agentReceives requests and does the work.
A default project and any additional named project foldersSupplies the phone's project choices.
A private HTTPS address reachable from the phoneConnects the two devices. The documented setup uses Tailscale on both.

No desktop speech installation is needed: the iPhone recognizes speech and plays replies locally.

Keep the computer awake and online. The optional login service starts Handsfree when you log in; it does not prevent the computer from sleeping.

Already using a host from an older version? Update its checkout and dependencies before using the new QR helper. Restart it after active work finishes. Your setup's host upgrade and configuration notes also cover existing session stores.

3. Show the QR on the computer#

Once the host is running, open a terminal in the Handsfree repository on the computer. With the environment file from the setup guide, run:

node --env-file="$HOME/.handsfree-local/host.env" host/pair.mjs --url https://your-mac.your-tailnet.ts.net

Replace the example address with the exact private HTTPS address from your setup, without /health. If your setup used another environment file, use that file instead. This command opens a local page on the computer:

Desktop Handsfree connection page showing the computer name, large QR code, ten-minute expiry, and manual-entry fallback
Example only: do not scan this screenshot. Open your own computer’s freshly generated page. View full size

Leave your own page open. The QR contains the complete address, computer name and a short-lived pairing code. It does not contain your Claude credentials or the phone's lasting device token.

The helper remembers the address. To refresh an expired or used code later, run the shorter command on the same computer:

node --env-file="$HOME/.handsfree-local/host.env" host/pair.mjs

Each code works once and lasts ten minutes. Refreshing the code does not disconnect an already paired phone or stop accepted work. If your configuration sets HF_PUBLIC_URL, that setting takes precedence over the remembered address.

4. Scan inside Handsfree#

  1. Connect the phone and computer to the private network or VPN used during setup. In the documented recipe, connect Tailscale on both devices.
  2. Return to Handsfree on the phone and tap Scan my computer’s code, or Scan the QR shown on my computer from the setup screen.
  3. Allow camera access, then point at the QR on your computer. The scan fills both connection fields and starts pairing automatically.
  4. Wait for Hello, [your computer], then tap Let’s get to work.
Successful pairing screen saying Hello, Home Mac, with a Let’s get to work button
Success: the computer is connected. This browser example stays paired while its app tab stays open; the native iPhone app saves the pairing. View full size

Use the scanner inside Handsfree to pair the installed app. Scanning the same QR with the phone's ordinary Camera app opens the browser companion instead. That browser pairing is separate from the installed app's pairing.

Camera images are decoded on the phone, not uploaded. A QR scan supplies connection details; it does not create a VPN connection or wake a sleeping computer. You still need the private route established in step 2.

Pairing does not turn on the microphone. You will choose a session and tap Start talking separately.

If you need to enter details instead#

From the blank start, tap Enter an address and code instead. From the scanner, choose Enter details instead. Expand Enter details instead on the computer's QR page to find both values.

Manual connection form with Computer address, Pairing code, optional Computer name, and Connect computer
Manual fallback: use your computer’s exact address and a fresh unused code. The computer name is just a friendly label. View full size

Enter the computer address without /health, paste the fresh code, optionally name the computer, and tap Connect computer. Use the host address, not ioshandsfree.vercel.app. On a physical phone, localhost and 127.0.0.1 refer to the phone itself.

Coming back or adding another computer#

The native iPhone app saves its pairing, so ordinary use does not require another scan. Open it, choose New session or Continue a session, and let it reconnect. Your computer still needs to be awake with Handsfree running. For the native-speech update, pull the current host code and restart it after active work finishes; older hosts show an update message in the iPhone app.

The browser companion keeps its pairing only while the app page remains loaded. Refreshing or closing that page requires a fresh code. Help now opens in a separate browser tab so reading an article preserves the original pairing; return to your original Handsfree tab afterwards.

For a second computer, tap Computers → Connect another computer and scan that computer's code. Enter connection details is the manual alternative.

Saved computers screen with Home Mac, Laptop, their connection details, and Connect another computer
Computers manages your pairings. Each computer keeps its own projects and conversations. View full size

Expand Connection details to inspect the address, disconnect, or forget a computer. Forgetting removes this client's saved pairing, so you will need a new code to reconnect it. It does not erase the project's files or the host's conversations.

If connecting gets stuck#

What you seeWhat to do
Camera access denied or camera unavailableAllow camera access in the app/browser settings, or use manual entry.
Invalid, expired or already-used codeRerun the computer's pairing command and scan the new QR.
Computer unreachableCheck that it is awake, the host is running, both devices are on the private network, and the address is exact.
Certificate warning when opening the host addressFix the host's HTTPS/certificate setup. Use the hostname supplied by setup.
Pairing command cannot find a running hostStart the host and use the same environment file and data directory it uses.
Connected, but no useful agent replyThe connection alone does not prove the agent or voice services work. Follow the text-first test in the next guide.

The operator troubleshooting table has the computer-side checks. When you reach the connected screen, continue to Your first conversation.