33stars446downloads
Start it in a terminal. Pick it up anywhere.
Uxnan Desktop runs Claude Code, Codex, OpenCode and any other CLI agent side by side, each in its own worktree. Start a session in a terminal, keep going in a chat, and pick it up on Uxnan Mobile: the same conversation, never started over.
Other platformsWindows, Linux · macOS (experimental) · Android on Google Play · iOS coming soon
I'll read the adapter first, then add the backoff where the socket closes.
One conversation, every surface
A session goes where you go.
An agent's session isn't tied to the window you started it in. Keep working in a terminal, move to a chat when you would rather read than scroll, and take it with you on your phone. The history comes along, and so does the agent's memory.
01 · IN A TERMINAL
Run the agent with its full interface. When it is idle, Continue as chat closes it there with a signal to its process, never with keystrokes, and the shell stays.
02 · AS A CHAT
Here's the tour: the desktop app, the bridge on your PC and an optional relay, all speaking the contracts in shared/.
The same session, with everything it already said, in a calm chat on your desktop. Open in terminal takes it back whenever you want the TUI.
03 · ON YOUR PHONE
Here's the tour:
- •uxnandesktop/ the desktop app: agents side by side, each in its own worktree and terminal.
- •bridge/ the daemon on your PC: drives the agents and keeps every conversation.
- •relay/ optional, only when the phone and the PC are on different networks.
Still open in a terminal on your PC? The phone says so, and Continue here asks the PC to hand it over the moment the agent is idle.
Pick up any session
A new chat lists the sessions your agents had in that folder, from a terminal, their own app or another surface, and continues any of them with its history. Claude Code, Codex, OpenCode, pi, Zero and Grok list theirs; Antigravity continues from the terminal it runs in.
One writer at a time
While a terminal has a session open, nothing else writes into it, so two surfaces never talk over each other. And the agent keeps its memory when the bridge restarts or updates itself.
Bring your own agent
If it runs in your terminal, it runs in Uxnan.
22 agents report precise status: working, waiting, blocked or done. Each one resumes its sessions and keeps its own run options, and any other CLI you register launches exactly the same way.
OpenCode
Cursor
GitHub Copilot
Droid
Grok
Amp
Goose
Qwen Code
Kiro
Auggie
Devin
Kimi
Kilo Code
MiMo Code
Command Code
Pi
OMP
Antigravitypartial supportThese launch and run the same way, and show a working/idle indicator. Their CLI has no way to say a turn ended, so Uxnan doesn't claim a precise state it can't know.
Aider
Cline
Continue
Crush
Codebuff
Mistral Vibe
Rovo Dev
Autohand
AnteEvery one of them runs as that vendor's own official binary, under the account you already signed it in with. Uxnan never calls a provider API, holds a key, or embeds an SDK. It drives the terminal, exactly like you would.
Parallel by default
One task. One worktree. One agent.
Every task gets its own isolated git worktree, so nothing an agent touches collides with what you're doing, or with the other three. You keep one window, and each of them keeps their own copy of the repo.
- A new worktree in seconds, on a new branch, an existing one, or anywhere you like.
- Terminals that survive sleep and restore with their scrollback intact.
- Commit, push and open the PR with the merge methods your repo actually allows.
- Subagents show up nested under the agent that spawned them.

Alone or together
Each one works on its own. Together, nothing is missed.
Use the desktop without a phone, or the phone without the desktop. When they meet, whatever happened on one is already on the other, even what you did while offline. A chat open in Uxnan Desktop is on your phone too, live, with Claude Code, Codex, OpenCode, pi, Antigravity, Zero and Grok.
NEEDS · NOTHING ELSE
Uxnan Desktop
Terminals, chats, worktrees, git and a browser for your agents. No phone, no account.
NEEDS · THE BRIDGE ON YOUR PC
Uxnan Mobile
Start, steer and review agents from your phone. The desktop app doesn't have to be installed.
NEEDS · NODE ON YOUR PC
The bridge
Runs as a user service, keeps every project and conversation, and updates itself.




- Every read, search, edit and command shows up as the agent takes it, the same way for every agent, on both screens.
- Send, stop, answer an approval or switch the model from either one; the other shows it as it happens.
- A chat you start from the phone gets Uxnan's tools too, while the desktop is running.
Agents that work together.
Inside Uxnan every agent already has uxnan-cli and Uxnan's MCP tools, with nothing to install. It can open a worktree, start a chat with another agent, wait for it and read what it answered, then test the app in a real browser. You see every step, and nothing it does is destructive.
Away from the keyboard
Then walk away.
Uxnan Mobile is a real client, not a status page. Pick the agent and the model, start the conversation, and steer it from wherever you are: the sofa, the bus, another country.




It pairs with a small daemon on your PC so the phone can stream a conversation, approve the next step and review a diff.
Architecture
Monorepo with:
- •shared/: JSON-RPC + E2EE contracts
- •relay/: optional, your own on Cloudflare
- •bridge/: the daemon on your PC
The phone connects directly over LAN or Tailscale first, and only falls back to the relay when you are off that network
Status: ALPHA. Android is in open testing on Google Play, and the desktop ships stable and nightly builds.
OpenCode
pi
Antigravity
GrokIt streams, live
Watch the answer arrive token by token and every step as the agent takes it. Leave the app and come back, it is still there, still going.
Queue a follow-up
Send the next instruction while the agent is still working. On the CLIs that allow it, it lands mid-turn without stopping anything.
Review the diff
Read what changed and stage it from the phone, before anyone opens a laptop.
A push when it's done
The moment an agent finishes, your phone tells you, not fifteen minutes later.
It pairs with your PC, not with a cloud.
A small daemon runs on your machine and prints a QR code. Scan it once and the phone connects straight over your LAN or Tailscale, falling back to an optional relay only when you're off the network, and it never sees anything but sealed envelopes.
X25519 · Ed25519 · AES-256-GCM
Measured, not guessed
Small enough to leave the machine to the agents.
An agent needs the CPU more than your editor does. So the number that matters is what the app costs while they work, and it is a measurement, not a marketing figure: every run records the OS, webview version, CPU, build profile and commit before it records a megabyte.
Windows 11 · release build · private working memory. Agent CLIs run in their own processes and are never counted as ours. Read how it is measured.
Open source
Free, open, and yours.
No paid tier, no key to hand over, no API of ours in the middle. Uxnan is built in the open and released under the MPL-2.0. If something is missing, the source is right there.
Change the interface
Every surface is Svelte and Rust, and the design tokens live in one file.
Teach it a new agent
Register any CLI by hand, or wire a real adapter and get status and resume too.
Ship your own build
MPL-2.0. Build it, patch it, run it on your own machines.
Give your agents somewhere to work.
Install it, sign your agents in the way you already do, and let them run. Your machine stays usable, and your phone keeps the thread.
Honest heads-up: the Windows and macOS builds aren't code-signed yet, so SmartScreen and Gatekeeper will warn you on first run. How to get past it. That's an alpha without a signing certificate, not a sign anything is wrong.