Origami Labs

Origami Coder · Remote

Your session, on your phone.

Origami Remote mirrors a live coding session from VS Code onto a phone browser. You read the chat, send a prompt, stop a turn and approve a permission. The work still happens on your desktop, and the machine in the middle cannot read a word of it.

How it works

Three parts, one of them blind.

How Origami Remote works Your desktop runs VS Code and the engine and does all the work. It seals each message and sends it to a relay, which sees only a random pairing id and the times messages pass through. The relay passes the sealed messages to your phone, where the same chat view opens them. Desktop VS Code and the engine Your files never move Every tool runs here The key is made here Relay A random pairing id and when messages pass Cannot read one word Stores nothing Phone The same chat view Read, send, stop Approve with a PIN In the browser only sealed sealed

Each message is sealed on the desktop and opened on the phone. The key is made on the desktop, travels once in the pairing code your phone scans, and is never sent to the relay. The pairing id the relay uses is itself derived from that key, so the relay cannot work backwards to it.

What is on offer

A remote control, not a second computer.

What you get

  • The live chat, mirrored — the same transcript the desktop is showing.
  • Send a prompt from the phone.
  • Stop a turn that is going wrong.
  • Approve a permission, with the pairing PIN before anything that touches the shell.
  • Switch sessions and open a new one — later; today the phone follows the live session.

What it is not

  • No file access and no editor on the phone — you read the chat, you do not browse the repo.
  • No tools run on the phone — every command, edit and search runs on the desktop.
  • Away from your own network it needs a relay — two devices behind NAT cannot meet without one.
  • One phone per pairing — a second phone needs a new code.
  • A phone browser today; the Origami Remote app for iPhone is on its way to the App Store. Its support and privacy pages are written for it.
  • The PIN cannot recover a lost key — if the phone loses it, pair again.

The relay

What the machine in the middle knows.

SeesDoes not see
A random rendezvous id, connect and disconnect times, padded frame counts Prompts, replies, file paths, diffs, tool names, repo names, model names, who the user is

What Origami Labs can see

That row is the whole telemetry surface. There is no sign-in anywhere in Origami Remote, so there is nothing to join a rendezvous to a person — no account, no email address, no device name. The phone does not send one, by design.

If you pair through the hosted relay below, the machine that sees that row is mine. If you run your own, it is yours and I see nothing at all. Either way the desktop and the phone hold the only copy of the key, and a relay operator with the full recording of every byte that crossed the wire still has ciphertext.

Origami Coder itself sends nothing to Origami Labs. The privacy page sets out what leaves your machine, and when, for each product; the Origami Remote privacy policy says the same for the phone side, including exactly what this relay logs.

Hosted relay

Use mine, for nothing.

wss://relay.origamilabs.nl

  • Free
  • Blind
  • No account
  • 2 MiB per minute, per pairing
  • A daily traffic budget

This is the default in the extension, so pairing works with nothing to set up. The two caps are there to keep a shared machine affordable and predictable, not to sell you a larger tier — there is no larger tier. Past the daily budget, new pairings are refused and pairings already connected keep working.

The caps are fixed in the program, not configurable per user. A relay that can be told to carry more is a relay that can be told to carry everything.

Run your own

Ten minutes, and nothing of yours touches my server.

The relay is the same program as the engine, started with one verb. There is no database, no account system and no second service to keep alive.

  1. Take a small server with a public address. One shared core and 1 GB of memory is enough. Pick fixed monthly pricing, not per-gigabyte.
  2. Point a name at it: an A record for relay.example.com.
  3. Run the installer. It makes a system user, unpacks the release, copies the phone page and starts the service.
  4. Put Caddy in front for a certificate that renews itself, or hand the relay a certbot certificate directly.
  5. Set the relay field in the extension to wss://relay.example.com, and pair.

Read the self-host guide Back to Origami Coder

The guide is the installer, the systemd unit, the Caddy configuration and a health check, with the caps and the failure modes written out. It is a private repository for now; ask if the link refuses you.