iOS + macOS source code

Claude Code, from your phone. By voice.

Hold the mic, say what you want built, watch the tool calls land. This is the full source for both halves — the iPhone app and the Mac server it talks to. Not a template. The thing I actually use every day.

talkshell — ~/api opus 5 · xhigh
you

“Add a rate limiter to the send endpoint — sixty a minute, keyed on the auth token.”

0:04 · transcribed on your own Mac · sent
claude
Readapi.py
Editapi.py  +34 −2
Bashpytest -q  →  18 passed

Rate limiter added — 60 requests a minute per token, returning 429 with Retry-After. Tests pass.

commands reply hold to talk mirror the Mac screen

“I could build this in a weekend with Claude Code.”

That's what I thought too. It took months — and almost none of it was the SwiftUI. It was AppleScript, TCC prompts, Bonjour dying on cellular, and Live Activities. What you're buying is the part that doesn't come out of a prompt: every edge case, already found.

Where the months went

Receipts, with line numbers.

Every one of these cost a day or more to find. They're all in the repo you're buying, at these paths.

server.py:3871
screencapture under a LaunchAgent never prompts for Screen Recording. It just returns black frames. Undocumented, and a full day to work out.
server.py:1017, :1086
Terminal window IDs change across restarts. Resolving a named session back to its live window means matching on content, not identity.
server.py:1141
Terminal wraps your text across visual lines, so reading back what you sent needs reconciling against what it looks like on screen.
Config.swift:61–84
LAN ↔ tunnel auto-failover with a reachability prober and a persisted route hint, so a cold start off Wi-Fi doesn't grind through a wasted wake-on-LAN wait.
Config.swift:44–46
mDNS stops resolving on cellular. The app caches the last working LAN IP and falls back to it, with a banner so you know which route you're on.
API.swift:10–26
Per-host TLS trust for the Mac's self-signed certificate — scoped to one hostname instead of switching off validation everywhere.
LiveActivityManager.swift
Live Activities driven by push from your own Mac: the token handshake, the update cadence, and a 475-line widget that shows what the agent is doing from the Lock Screen.
WakeOnLAN.swift
Wake the Mac from your phone — magic packet across the subnets it might be on, so a sleeping Mac isn't a dead end.

What lands in your repo

Both halves, complete.

No stubs, no “pro version”. This is the working system, exactly as it runs on my Mac and my phone.

iPhone app

Swift · 26 files · 17,687 lines
  • Hold to talk. Live on-device transcription while you speak; the audio goes to your own Mac to be turned into the final text. No third party in the loop.
  • Chat with the agent — full transcript, markdown, tables, file attachments from the camera roll.
  • Mirror and tap the Mac screen at three quality tiers, with real keyboard input.
  • Model and effort picker — switch to opus at xhigh from the phone.
  • Live Activities and a widget for what the agent's doing while you're elsewhere.
  • A work queue that fires when your usage limit resets.
  • Session browsing, resume, per-session file lists, usage charts.

Mac server

Python · 7,520 lines · stdlib only
  • Zero pip dependencies. One file, standard library, nothing to rot in six months.
  • 38 HTTP endpoints over TLS, token-authed, documented.
  • Drives real Terminal windows by AppleScript — your actual sessions, not a headless clone.
  • Screen capture and synthetic input for the mirror.
  • Push sender for prompts, completions, and limit warnings.
  • LaunchAgent so it's up before you are.
  • Cloudflare Tunnel + Worker and a setup script, for use away from home.

What you need

  • mac
    A Mac running Claude Code, awake or wake-on-LAN capable.
  • xcode
    Xcode, to build and sign the app yourself.
  • apple
    An Apple Developer account ($99/yr) for an install that doesn't expire. Free signing works, but re-sign every 7 days.
  • ios
    An iPhone on iOS 26, or lower the deployment target.
  • claude
    Your own Claude Code subscription. This drives it; it doesn't replace it.

What this isn't

  • Not on the App Store. You build it. That's the deal at this price.
  • No support. Source-available, as-is. The README covers setup end to end; questions go to GitHub issues where the answer helps the next person.
  • No hosted service. Away-from-home access uses your own Cloudflare tunnel — script included.
  • Not a polished consumer product. It's a working tool with a 10,000-line view file. You'll want to refactor. You'll be able to.
  • Not resellable. Single developer, no redistribution.

$29

one payment · full source, both halves · yours to modify

Private repo access, sent to your email right after checkout.