Tether
Run your dev ops from your phone.
A macOS daemon, CLI, and Apple Watch app for running dev ops from your phone: see what is blocked, approve an agent checkpoint, and resume the right session without a remote-desktop stream.
- language
- Swift 6 (SPM), SwiftUI
- daemon
- Hummingbird HTTP, loopback-bound, 16 route modules
- surfaces
- CLI (13 commands), iOS + watchOS apps
- safety
- 3-tier action model, one-time approval tokens
- history
- 186 commits in ~3 weeks
- repo
- Private
The problem
Coding agents block on decisions, and the only way to unblock them from a phone is to fight a pixel-streamed remote desktop on a six-inch screen. Tether speaks actions and state instead of pixels, so a decision takes a tap, not a tunnel.
How it is built
-
Loopback by default, a secret required to leave it
The daemon aborts at startup if it is bound to a non-loopback interface without a shared bearer token. Remote operators tunnel via SSH or Tailscale, so the API is never accidentally exposed on a network.
-
Bounded, tiered, receipted actions
Actions declared in the project manifest carry a tier: observe (concurrent), modify, or ship (serialized). Every execution writes a receipt to SQLite and failures auto-raise an alert. Remote responses require a device token plus a one-time action token to prevent replay.
-
Agent stalls become Watch approvals
An observer polls agent panes, normalizes spinner lines before hashing, reads Claude Code session logs for an "awaiting reply" signal, and creates an approval that pushes to the watch via ES256-signed APNs, then injects the operator decision back into the pane.
By the numbers
Where this honestly stands
In progress. The daemon, CLI, approval control plane, and iOS / watch companions are built and integration-tested, and the Watch Approval MVP P0 gate cleared. Phone Mode, voice-to-task, and Live Activities are roadmap-only.
Want the parts that are not in a public repo? I will walk you through the architecture and the decisions on a call.