Skip to content

Tailscode

Coding Agent Remote

Your coding agents, live on the Lock Screen

Send a prompt to Claude Code, opencode or Oh My Pi, pocket the phone, and watch the turn finish. Approve, answer and read the diff over your own tailnet, from the iPhone, iPad, Mac or Linux.

iPhone, iPad and Mac share one purchase on the App Store · Mac App Store ↗ · Free, Pro is $14.99 once

Tailscode for Linux: a conversation in the compact chat, with the sidebar of every machine's chats (light face)
The iPhone Lock Screen with a Tailscode Live Activity: Dark mode for the settings screen, awaiting your approval

tailscode --lock-screen

Send. Pocket it. Get pinged.

Your agent is working on a machine across the room, or across the country. The turn lives on your Lock Screen the whole time, and the moment it needs you it says so.

  • One Live Activity per conversation: what the agent is doing, for how long, and how many tools it has run.
  • An approval request alerts you. A finished turn lingers with its outcome, then leaves on its own.
  • Tap it and you land in the exact chat, with the Allow, Always and Deny buttons under the edit.
  • When the app is closed, iOS holds the wait and the notification still fires, straight over your tailnet.
29 s — no narration: ping, approve, answer, board, diff, cost, tailnet.
Tailscode on iPhone: the chat the notification opens, with Allow once, Always and Deny under the edit
Tap — and the agent waits on you, right under the edit.

tailscode --trust

Your code stays on your tailnet

Your phone talks to your machine, and your chats and code go nowhere else. Three facts you can check, and a licence that lets you.

  • No relay

    no Tailscode server sits between you and the machine

  • No sign-in

    nothing to sign up for, nothing to leak

  • Your code stays home

    chats and code never reach us

Tailscode Your machine iPhone · iPad · Mac · Linux the app, GPL-3.0 claude-bridge · omp-bridge opencode · your agent your tailnet WireGuard-encrypted device-authenticated Tailscode cloud there isn't one Phone to machine. Tailscode adds no hop.

check it yourself

  1. tailscale status lists the nodes involved: your phone and your machine, both yours.
  2. tailscale ping <machine> says whether the path is direct or goes through one of Tailscale’s own DERP relays.
  3. git clone github.com/guitaripod/Tailscode the app, the engine and both bridges are GPL-3.0. Read what it sends.

The honest footnotes: Tailscale itself may relay encrypted packets when two devices cannot reach each other directly, and Tailscode adds no hop of its own. Your agent still talks to its own model provider. And a claude-bridge that holds an Apple push key sends Lock Screen updates through Apple's push service, carrying the conversation's title, its phase and tool counts. The App Store apps also keep a random Midgar ID for your Pro and tip purchases and send anonymous More Apps counts, none of it near your chats or code. Read the privacy policy.

tailscode sync --watch

One session, two machines, zero relays

One real ultracode turn, captured on both machines at once. A prompt leaves the iPhone, reaches a claude-bridge server over the tailnet, and the session is already live in the Linux sidebar. Both composers burn the rainbow while it runs, and both show the same answer when it settles. No relay sees a byte.

Both machines side by side with the same settled answer, the turn priced in the phone's chrome
One answer, two screens — the turn settles on both machines at once, priced in the phone's chrome.

ls ~/tailscode/iphone

The pocket client, screen by screen

Every frame is the built-in demo: what you see before wiring a single server. Scroll the rail; tap a screen for the full-resolution picture.

Tailscode on iPhone: Approve the risky command. Allow once, always or deny, right under the edit, while the agent waits.
Approve the risky command Allow once, always or deny, right under the edit, while the agent waits.
Tailscode on iPhone: Every machine, one board. Live turns first, grouped by project, across all your servers.
Every machine, one board Live turns first, grouped by project, across all your servers.
Tailscode on iPhone: Read every diff from your phone. Branch, staged, changed: the real patch, from the machine that owns it.
Read every diff from your phone Branch, staged, changed: the real patch, from the machine that owns it.
Tailscode on iPhone: When it asks, you answer. A question arrives as a card. Answer with a tap.
When it asks, you answer A question arrives as a card. Answer with a tap.
Tailscode on iPhone: Pick the model. Set the effort.. One pill carries both. Pin pairs and swipe between them.
Pick the model. Set the effort. One pill carries both. Pin pairs and swipe between them.
Tailscode on iPhone: Hand off the routine work (beta). A cheaper model tries first, a verifier decides. Nothing lands until it passes.
Hand off the routine work (beta) A cheaper model tries first, a verifier decides. Nothing lands until it passes.

./tailscode --iphone-duo

Tailscode on iPhone Duo

Tailscode on iPhone Duo: the outer display in front of the open inner display
Both displays of iPhone Duo: the outer display in front, the open inner display behind.

tailscode --usage --month

See what it costs. Before the wall.

A price is a conversation's, and the month is the account's. The numbers come from the machines that hold the transcripts, so nothing about your spend is sent anywhere to be added up.

  • Every conversation priced, every month totalled across your machines, by model, project and tool.
  • Each provider’s tightest window and its reset clock, on Home and in a widget: walls first.
  • Always marked an estimate: a subscription bills a flat fee, so the figure is API-equivalent value, never a bill.

trophies · game center

The ledger is also a game. 27 trophies and four leaderboards (streak days, and turns, tokens and tool calls over thirty days) are scored from the same numbers, and Apple's Game Center shows them. Signing in is optional: the trophy card renders whole without an account.

Tailscode on iPhone: the month in numbers, about 1,865 dollars over 25 active days, with a bar for every day
See what it costs Every turn priced, every month totalled across your machines.
Tailscode on iPhone: each provider's tightest window with its reset clock
Limits before the wall Each provider's tightest window and reset clock.
Three Home Screen widgets: a medium usage widget with a ring and three provider rows, a small usage widget, and a small DeepSeek balance widget
Widgets — the same quotas on your Home Screen, a wall drawn as Used up rather than a bare percentage.

tailscode studio --on arch

A picture is something you ask for in words

Describe it and your own machine paints it: ComfyUI behind Tailscale, Qwen-Image for quality, FLUX 3 Klein for speed. A clip is the same sentence with a longer verb, rendered by LTX from words or from a first frame. Nothing leaves your tailnet.

  • The machine’s own sketch fills the stage while it paints, when it sends one, and a progress line runs along the stage’s foot.
  • The shelf is the machine’s own output folder, newest first, with the words, seed and steps read back from the files.
  • Enhance has a language model of yours write the paragraph; an edit can work from several pictures at once; Continue it picks up where a finished clip ends.

FLUX 3 Klein, editing from several pictures and the live preview arrive with 1.78: on Linux today, on the iPhone and the Mac when App Review clears it.

The Studio on the Mac: a finished picture on the stage with its verbs under it, the machine's shelf at the right and the brief docked below (light face)
Mac — Image and video are one sheet inside the Tailscode window, the conversation dimmed behind it; closing it never stops a render. Linux has the same sheet.
The Studio on iPhone with a finished picture and its verbs (light face)
iPhone — done: the verbs sit under the picture.

ls ~/tailscode/ipad

A workspace, not a stretched phone

On iPad the sidebar holds places, chat scopes and servers, the chat list sits beside it and the conversation fills the rest. Narrow the window and it becomes the phone's app without closing the chat you were in; a chat opens in its own window for Stage Manager, and a hardware keyboard drives it all.

Tailscode on iPad: The workspace: places and servers in the sidebar, every chat beside it, the live turn filling the rest
01 The workspace: places and servers in the sidebar, every chat beside it, the live turn filling the rest
Tailscode on iPad: An edit waits for approval with the list in view, and its chat wears NEEDS YOU while it does
02 An edit waits for approval with the list in view, and its chat wears NEEDS YOU while it does
Tailscode on iPad: The real diff rises as a sheet over the conversation, read from the machine that owns the repo
03 The real diff rises as a sheet over the conversation, read from the machine that owns the repo
Tailscode on iPad: The month in numbers beside the list: every turn priced, totalled across your machines
04 The month in numbers beside the list: every turn priced, totalled across your machines

ls ~/tailscode/desktop

Three desks, one shared engine

The phone is programmatic UIKit, the Mac native AppKit, Linux native GTK4. All three render the same toolkit-free core, and a parity registry refuses to compile a client that hasn't answered for a capability the others have.

iPhone & iPad

UIKit · universal · Live Activities

The pocket remote: send, steer, approve, and watch the turn finish on your Lock Screen. On iPad it becomes a workspace — sidebar, chat list and conversation side by side, windows in Stage Manager, a hardware keyboard.

Mac

AppKit · Liquid Glass · macOS 26

The same desk with Apple materials: split panes, the analytics, the git surface, and a global quick-ask key. On the Mac App Store under the same purchase as the iPhone app.

Linux

GTK4 · libadwaita · tiling splits

A full desk: split panes, an embedded terminal, web and video panes, a global quick-ask key. In the AUR and on GitHub.

Tailscode for Linux: Four panes, four sessions: an edit waiting on one, subagents fanning out in another, the live count in the title bar (light face)
Four panes, four sessions: an edit waiting on one, subagents fanning out in another, the live count in the title bar
Tailscode for Mac: The Mac in Liquid Glass: every chat in the sidebar, the transcript, the facts row and the model-and-effort pill
The Mac in Liquid Glass: every chat in the sidebar, the transcript, the facts row and the model-and-effort pill
Tailscode for Mac: Two machines side by side on the Mac: a question waiting in one pane, a turn running in the other
Two machines side by side on the Mac: a question waiting in one pane, a turn running in the other

tailscode --features

What Tailscode does

The Lock Screen is the status board

A Live Activity per conversation shows what the agent is doing, for how long and how many tools it has run. An approval alerts you; a finished turn lingers with its outcome. Tap to land in the exact chat.

Approve with the edit in view

Allow once, always or deny, right under the diff, while the agent waits. A question arrives as a card you answer with a tap. Queue the next message, edit it before it goes, or stop the turn on the server.

Every machine, one board

All your servers' conversations in one list: live turns first, grouped by project. Subagents open in place inside the turn that spawned them; a compaction is a seam you can read.

A repository is read, never operated

Branch, drift from upstream, staged, changed and the real patch of any file, read from the machine that owns it. Nothing offers to commit or push: a change made from a phone is a change nobody reviewed.

Prices in dollars

Every conversation priced, every month totalled across machines by model, project and tool. Always marked an estimate: a subscription bills a flat fee, so the figure is API-equivalent value, never a bill.

Limits before the wall

Each provider's tightest window and its reset clock on Home and in a widget: Claude plan limits, Grok quotas, Ollama Cloud, DeepSeek balance. The board holds still while you read it.

One pill for model and effort

Which model and how hard it thinks are one decision: tap a level or slide to it, pin a pair, swipe to cycle. Ultracode burns a rainbow along the composer's edge.

Three agents, one app

opencode directly, Claude Code through claude-bridge, Oh My Pi through omp-bridge: two open-source companion servers. Every model Oh My Pi can reach is one picker away.

Native, and written not pasted

Programmatic UIKit on iOS, GTK4 on Linux, AppKit on the Mac, all Swift 6. Answers play out at a reading pace with nothing re-wrapping under you, and code copies byte-exact.

tailscode --pricing

The free app is the complete core

Tailscode

Free

  • One server, full chat, approvals, and questions
  • Attachments, models, forking, compaction
  • Live Activities, one session at a time
  • Every theme, the analytics, the git surface
  • The built-in demo: explore with no server

Tailscode Pro

$14.99 once

  • Unlimited servers, one session list
  • Concurrent Live Activities (iPhone)
  • One purchase, iPhone and Mac
  • A supporter badge
  • The delegate board (beta): bounded tasks for your cheaper models
  • Pro $14.99 No subscription

One purchase covers iPhone and Mac on the same Apple Account. The Linux client and the Mac build you compile yourself are free, open-source and complete: the unlock is how the work gets funded, not a wall around it.

man tailscode

How Tailscode works

  1. 01

    Run an agent server

    On the machine where you code, run claude-bridge's one-line installer: it downloads a prebuilt program (no Swift or git), starts it as a service and ends with a QR code. Prefer opencode or Oh My Pi? opencode serve and omp-bridge work the same way. All three are open source.

  2. 02

    Join the same tailnet

    Install Tailscale on your devices, free for personal use. They see each other directly; the app checks your phone's tailnet address and which agent answers the address you type.

  3. 03

    Connect and go

    Scan the QR code the installer printed, open its link, or let Tailscode discover your servers. Send a prompt from the phone, follow it on the Lock Screen, sit down at the desktop and the same session is already there.

tailscode --help

Questions, answered

Is it free?

Yes. The free app is the complete core: one server, full chat, approvals and questions, attachments, models, forking, Live Activities, the analytics and the git surface. Tailscode Pro is a one-time $14.99 unlock for unlimited servers, concurrent Live Activities on iPhone, the delegate board (beta) and a supporter badge. There is no subscription, and the Linux client and a Mac build you compile yourself are free and complete.

What do I need?

A computer you code on, running opencode, Claude Code through claude-bridge, or Oh My Pi through omp-bridge; Tailscale (free for personal use) on that machine and on your phone; and the app. Set-up is three steps the app verifies as you go. No server yet? Tap 'Try the demo' on the first screen to explore every screen with sample conversations, no tailnet needed.

Is my code sent anywhere?

Not by Tailscode. Prompts, answers, diffs and files travel between your devices and your machines over your own Tailscale network, and never reach us. There is no Tailscode server between them and nothing to sign in to. The App Store apps do keep a random Midgar ID, report your Pro or tip purchase to our ledger and send anonymous More Apps counts; none of it is used for tracking, and the Linux app and the direct Mac build collect nothing. The privacy policy lists every row, and the source is public. Your agent still talks to its own model provider the way it always did; that part is between you and them. One optional exception: if your claude-bridge holds an Apple push key, Lock Screen updates ride Apple's push service and carry the conversation's title, its phase and tool counts.

Does it work without Tailscale?

It is built around Tailscale: set-up checks your tailnet, and the bridges admit a device signed into the same Tailscale account without a password. A server reachable some other private way (a LAN, another VPN) works with the server's password, but then the privacy claim rests on that route rather than on ours.

Which coding agents does it support?

opencode natively, 1.x or 2, with any provider you've configured in it; Claude Code through claude-bridge; and Oh My Pi through omp-bridge. The bridges are open-source Swift servers that expose a terminal agent as structured streaming sessions backed by your own subscriptions. Oh My Pi brings its whole provider catalog: Ollama Cloud, OpenCode Go, OpenRouter, Anthropic, xAI, DeepSeek and your local ollama.

Is there a Mac and a Linux client?

Yes: a native AppKit app for macOS 26, on the Mac App Store under the same purchase as the iPhone app, and a native GTK4/libadwaita app for Linux. Arch users install it from the AUR (`paru -S tailscode`); everyone else grabs the release tarball from GitHub. Both desktops add tiling splits and a global quick-ask hotkey; the Linux client and a Mac build you compile yourself also carry an embedded terminal and web and video panes, which the sandboxed Mac App Store build leaves out.

How does the Lock Screen update when the app is closed?

Two optional ways. claude-bridge can push Live Activity updates over Apple's push service. And when a turn ends while the app is closed, iOS holds a background request that the server answers only when the turn ends or stops for you (claude-bridge 1.13+, omp-bridge 0.7+, opencode 2), then posts the notification; that wait runs straight over your tailnet, not through Midgar or Apple. Background App Refresh off, or a force-quit, silences it, and Settings says so.

What does Pro add?

Tailscode Pro is a one-time $14.99 unlock for unlimited servers, concurrent Live Activities on iPhone, a supporter badge and the delegate board, a beta that hands routine tasks to a cheaper model and lets a verifier decide. The free app is the complete core forever, with one server.

Where do pictures and clips get made?

On a machine of yours running ComfyUI, reached over your tailnet: Qwen-Image or FLUX 3 Klein for pictures, LTX for clips. Tailscode is the brief, the stage and the shelf; the files stay in the machine's own output folder, and nothing leaves your tailnet.

Can I watch the app my agent is building?

Yes, with a Mac. A Mac running previewd, a small host that runs next to Xcode, builds the app on a simulator of its own and streams the screen; Tailscode draws it beside the conversation, keeps the last good picture under the compiler’s first error when a build fails, and hands that error to the agent in one tap. On Linux the pointer operates the app, and the Compare, Inspect, Quality, Matrix and Rewind lenses are built; the iPhone and the Mac show the picture.

Is it really open source?

All of it, under GPL-3.0: the iPhone app, both desktop clients, the engine (CodingAgentKit, a Swift 6 package that also runs on Linux), and both bridges (claude-bridge, omp-bridge). Build it yourself or grab it from the App Store.

Your agent is already working. Watch it from anywhere.

Free and open source under GPL-3.0. Pro unlocks unlimited servers and concurrent Live Activities on iPhone for $14.99, one time, across iPhone and Mac.

ls ~/apps