AI Tether AI Tether
Phone & web · End-to-end encrypted · Open source

Your Claude Code sessions,
in your pocket.

AI Tether is a remote control for Claude Code sessions running on your Mac. Watch live transcripts, approve tool permissions, send follow-up prompts and stop runaway sessions — from your phone or any browser, anywhere in the world.

New Now runs in your browser, too

Not affiliated with Anthropic — an independent companion for the Claude Code CLI.

Sessions online
api-refactor needs permission

Bash · npm run migrate --force

Deny Allow
fix-flaky-tests working

 

landing-page waiting for you

Done: deployed to staging ✓

How it works

Three pieces,
all yours.

No vendor lock-in, no fuss. A tiny daemon on your Mac, a relay that only ever sees ciphertext, and apps for your phone and any browser.

Jump to setup
01

Daemon on your Mac

tether hooks into Claude Code's lifecycle events and tails its transcripts — every session is tracked live, whether you started it in a terminal or launched it from AI Tether.

02

Relay — ours, or yours

Routes end-to-end-encrypted frames between your Mac and your devices — it only ever sees ciphertext, never your code. Pair to our free hosted relay, or run the open-source container on your own server.

03

Apps for phone, browser & desktop

A Flutter app for iOS and Android, plus a zero-install web app at app.ai-tether.com — same sessions, either way. A dashboard sorted by what needs you, live transcripts, permission prompts, and a real terminal view for tmux sessions.

Download on the App Store Coming soon: a native macOS desktop app.

Everything a session needs from you, without walking to your desk.

Live session dashboard

Every Claude Code session on your Mac, with status at a glance — and sorted so whatever needs you floats to the top.

working needs permission waiting for you ended

Transcripts, streamed

Messages, thinking, tool calls and results in about a second — gapless backfill after reconnects.

Approve permissions remotely

Tool requests appear as a bottom sheet with the full command. Allow or deny with one tap; unanswered requests deny safely after a timeout.

Drive terminal sessions

Sessions inside tmux are fully controllable: type prompts into the real pane, answer dialogs with key buttons, watch the live screen.

Launch & resume

Start a session in any project folder from your phone or browser, or resume an ended one with full context.

End-to-end encrypted

Your device and Mac share a key set at pairing; the relay forwards only ciphertext. Your transcripts and code never exist in plaintext on any server — ours or yours.

on the roadmap

More coding agents

AI Tether is built for Claude Code today. The daemon is being generalised so the same dashboard, transcripts and remote approvals can front other terminal coding agents — OpenAI Codex, Gemini CLI and GitHub Copilot CLI among them — so one app covers whatever you happen to be running.

New — in your browser

No phone handy? Open it in any browser.

AI Tether also runs in the browser at app.ai-tether.com — the same live sessions, transcripts and controls as the app, with nothing to install. Watch a run from your phone on the couch, then pick it up on your laptop right where you left off.

  • Zero install — just open a URL
  • The same end-to-end encryption
  • Works right alongside the phone app
Open the web app
app.ai-tether.com
auth/session.ts
◌ working · opus
api/router.ts
idle · 12 turns
End-to-end encrypted

Your code conversations stay yours.

Your Mac and each device agree on an encryption key the moment you pair. Everything after that — transcripts, prompts, tool output, the commands you approve — is sealed end to end with NaCl (Curve25519 + XSalsa20-Poly1305). The relay in the middle forwards opaque ciphertext. We move the bytes; we can't read them.

Sealed device-to-Mac

Each message is encrypted with a key only your two devices hold. To every server in between — including ours — it's just noise.

The key never reaches our servers

It's bootstrapped through the pairing QR — scanned straight off your Mac's screen, never sent through the relay. There's nothing on the wire for us to intercept.

Don't trust us? You don't have to.

The daemon, relay and app are open source. Run the relay yourself and the only thing that changes is the address — the encryption works exactly the same.

No account, no email One-time pairing codes Per-device keys you can revoke TLS in transit · NaCl end to end

Set it up in 10 minutes.

You need: a Mac running Claude Code and Node 20+, and a phone or a browser. Pairing uses our free encrypted relay — no server to run. (tmux is optional — it unlocks remote control of sessions you start in a terminal.)

Let your AI install it

It's the age of AI — so hand the install to Claude. Paste this one line into a Claude Code session on your Mac. It reads our install guide, sets everything up, then shows you the QR to scan.

Hey Claude — please install AI Tether so I can watch and control my Claude Code sessions from my phone or browser. It's an open-source, end-to-end-encrypted remote-control tool for Claude Code (like Anthropic's /remote-control, but E2E and self-hostable). It's on npm as `ai-tether` and the guide is https://ai-tether.com/install.md — review it first if you like, then run `npm install -g ai-tether` and `tether start`, and show me the pairing QR. ✨

One prerequisite: Node.js 20+ on your Mac. Don't have it? brew install node — that's it.

Terminal can't reach the web? Paste the full steps instead →
Install AI Tether so I can watch and control my Claude Code sessions from my phone or browser. It's open-source and end-to-end encrypted; review it first if you like — https://www.npmjs.com/package/ai-tether.

1. Make sure Node 20+ is installed — if not, run: brew install node.
2. Install the daemon: npm install -g ai-tether
3. Start it: tether start
4. Show me the QR code it prints so I can scan it with the AI Tether app (or I'll open app.ai-tether.com and paste the code).

Or do it yourself

  1. 1

    Install & pair — one command

    Installs the tether command from npm (open source, inspectable), wires up Claude Code hooks and the login service, and prints your pairing QR.

    # on the Mac
    npm install -g ai-tether
    tether start

    Only needs Node 20+ (brew install node if you don't have it). Already installed once? Just run tether start to show a fresh QR.

  2. 2

    Scan the QR

    Open the AI Tether app and scan the QR printed in your terminal. It carries the encryption key, so your device and Mac are end-to-end encrypted from the very first message — codes are one-time and expire in five minutes. Then start a Claude Code session and watch it appear. On a computer? Open app.ai-tether.com and paste the pairing line instead of scanning.

Rather not use our relay? It's open source — cd deploy && docker compose up -d on your own server, then tether start --relay wss://your-host. Everything else is identical.

Questions

Is this an Anthropic product?

No. AI Tether is an independent open-source project with no affiliation to Anthropic. It observes and drives the Claude Code CLI through its public extension points — lifecycle hooks, transcripts and the Agent SDK. “Claude” and “Claude Code” are trademarks of Anthropic, PBC.

Where does my data go?

Mac → relay → your phone or browser, end-to-end encrypted. Your two devices share a key set during pairing, so the relay only ever forwards ciphertext — it can't read your transcripts, prompts or code. Use our free hosted relay, or run the open-source one yourself if you'd rather route nothing through us. Devices authenticate with individually revocable tokens, stored hashed.

Do I need tmux?

Only for one thing: injecting input into sessions you started in a terminal yourself. Those are watch-only otherwise. Sessions launched or resumed from the app are fully controllable either way, and all sessions are always monitored.

Does it push notifications when the app is closed?

Not yet — v1 streams live updates while the app is open. Push notifications for "needs permission" and "finished" are on the roadmap.

What if I deny a permission too late?

Unanswered permission requests are denied automatically after a configurable timeout (5 minutes by default) — a session never executes a tool just because you were offline.

Stop babysitting your terminal.

Kick off a long refactor, go for a walk, and approve the one command that matters from a park bench.

free · end-to-end encrypted · open source