Tether: a full Claude Code experience, from your phone.
Claude Code is a desktop tool. Tether turns it into a native mobile experience: start and resume sessions, stream markdown chat with collapsible thinking and tool cards, upload files for Claude to read, and get push notifications — all driven by the Anthropic Agent SDK running against Claude Code on your own machine, over a private Tailscale tailnet.
What this project proves.
Full app + backend open on GitHub.
Native Android, real Claude-app feel.
Fastify + WebSocket, Anthropic Agent SDK.
Fully functional, not a mockup.
The best coding agent was stuck at the desk.
Claude Code lives on a developer machine. The moment you step away from the keyboard, the agent — mid-task, mid-context — is out of reach. There was no way to check on a long run, nudge it, or start something new from a phone without a clumsy remote-desktop workaround.
The goal was a real mobile client: the full Claude-app experience — streaming chat, thinking, tool activity, file upload, push — but pointed at Claude Code running locally, not a generic chatbot API.
A native app and a purpose-built backend, cleanly decoupled.
The Android app (Kotlin + Jetpack Compose) mirrors the real Claude mobile UX: session list, new-session sheet, project picker, streaming chat with collapsible thinking and tool cards, code-block copy, and file uploads. A companion Node/TypeScript backend (Fastify + WebSocket) drives Claude Code through the Anthropic Agent SDK under the local subscription login — no metered API key.
Everything runs over a private Tailscale tailnet with a single shared bearer token: no port-forwarding, no public exposure. Sessions use a one-turn-per-query lifecycle so the app survives mobile disconnects, and FCM push fires on turn-complete, long-task-done, error, and background replies.
Proof of end-to-end product judgment.
Tether is a fully functional app that spans native mobile, a real-time backend, agent-SDK orchestration, private networking, and push infrastructure — designed, built, and shipped solo. It demonstrates the same operating model Proworks brings to client work: pick the real workflow, build the smallest production system that solves it, and ship it end to end.
The source is public so the architecture and code quality can be inspected directly — proof over promises.
Tools and operating surface.
Jetpack Compose
Node.js
TypeScript
Fastify
WebSocket
Anthropic Agent SDK
Tailscale
Firebase Cloud Messaging
Need this kind of system in your own stack?
Bring the workflow and the constraints. I’ll map the smallest production system worth shipping.
Book a scoping call