proworks
CASE STUDY — MOBILE AI CLIENT

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.

SourcePublic

Full app + backend open on GitHub.

AppKotlin + Compose

Native Android, real Claude-app feel.

BackendNode + TypeScript

Fastify + WebSocket, Anthropic Agent SDK.

StatusWorking app

Fully functional, not a mockup.

View source on GitHub

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.

Kotlin

Jetpack Compose

Node.js

TypeScript

Fastify

WebSocket

Anthropic Agent SDK

Tailscale

Firebase Cloud Messaging

build pattern

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