Manual · Chapter 07

Your computer, in a seat

What you'll get. Connect the agent running on your own machine so you can talk to it from the truck.

The Bridge screen showing Frank as overseer, an unassigned Top Foreman and empty runtime seats
The Bridge, empty. Frank oversees; the Top Foreman slot and the numbered seats are waiting.

This is the chapter that makes E:Voice different from a chat app. The agent already running on your desktop — Claude Code, Codex, Cursor, whatever you use — can become a contact on your phone, so you can talk to it from the truck.

The traffic goes straight from your phone to your machine, over a private network you control. No chat platform reads, stores or relays your agent's work. The only thing this website does is serve the signed bridge packages and the pairing contracts.

What you can pair

Claude, Codex, Cursor, Grok, Hermes, OpenClaw, Agent Zero and Buzz each have a maintained bridge package. There is also a Compatible E:Voice Bridge option for anything else that implements the published contract.

Before you start

Pairing outside runtimes is part of the Builders plan. The app says it in as many words, and adds the important half: “Frank, Vera, C.H.A.R.L.E.S., your local voices, projects, memory, and the Key Vault stay free and keep working.” Everything in chapters 1–6 and 8–10 is free. This one costs.

The four steps

  1. Install the bridge package on the computer. Download it from the runtime's page on this site — every package publishes a SHA-256 — unzip it on the machine where the agent runs, and follow its README.
  2. Put both devices on the same private network. Tailscale is the recommended default: install it on the phone and on the computer, and sign both into the same account. Onboarding has a card for this, and Settings will tell you what it can see — “App + private network active” is the state you want.
  3. Pair from the phone. Bridge → Add Agent → pick the runtime → give it a name → Request code. Use Review pairing handoff to see exactly what you are about to hand over, then copy it to your agent on the computer.
  4. Let it verify, then talk. The agent consumes the code once and reports back where it is listening. The phone then checks that address itself and tells you: “Phone reachability confirmed. This runtime is ready on its private bridge URL.”

You do not normally type a bridge URL. There is a field for one, and it is honest about why: “Optional fallback. Leave blank unless you already know this agent's verified Tailscale/private-network bridge URL… The copied prompt asks the agent to report the correct URL automatically.”

An in-app onboarding card walking through the steps to connect an OpenClaw instance
The app walks you through it too — the same four beats, per runtime.

What the phone insists on

The handoff you copy tells the agent to prove its own setup before consuming the code: bind to a real private-network interface, pick a free high port, and confirm from its own host that the address it is about to report is the one it is actually listening on. Loopback addresses, plain LAN addresses in production, and the E:Voice website's own address are all rejected.

The setup code is single-use and expiring, consumed on the first successful pair, and both sides are told to keep it out of logs. If something goes wrong you can Revoke it and request another.

What crosses, and what doesn't

To the phone: tool calls as they happen, the agent's own progress notes, Agent Updates, images, final replies, and usage figures where the bridge reports them.

Stays on your computer: authentication, sessions, workspace state, sandbox, model choice and the agent's own identity. A paired agent keeps being itself — “New paired external agents keep their native runtime identity.”

When it doesn't connect

  • “Phone could not reach this runtime.” The address didn't answer. Turn Tailscale on at both ends, then Retry phone check.
  • “Phone could not verify this runtime yet.” Something answered but the health reply was wrong — usually the address the agent reported isn't the one it's bound to. The “Technical details” line names the mismatched field.
  • “Phone has no valid runtime bridge URL to check.” The stored address was blank or rejected. Go back through the Tailscale card and pair again.
  • “Bridge endpoint unavailable.” The setup-code request itself couldn't get out. This one is about your phone's connection, not the agent.
  • An out-of-date plugin does not block you. The message still sends using supported features, and the app tells you an update is available.

Once paired, the contact carries its own state — Connected, Bridge ready, Bridge check pending, Pairing pending — so you can see at a glance which end is quiet.

If the connection drops mid-job

The app quietly re-checks with the agent's machine, and your message stays sent if the work was accepted — only the agent's own completion decides the outcome. If the machine can't be reached at all, the turn closes with an honest note that the run may still be going over there, and the result attaches to the conversation when it arrives.

Honest caveats

These are E:Voice-maintained bridges, not official vendor products. Pairing Claude Code does not imply Anthropic supports it, and the same goes for every other runtime.

Over Tailscale the addresses are plain HTTP. The privacy comes from the tailnet, not from TLS. Running your own HTTPS reverse proxy is possible and is squarely an advanced setup.

The QR scanner is for AERIS OS, not runtimes. Runtime pairing is a setup code and a bridge address. Chapter 08 covers the QR one.