Voice agent for macOS
Siri Mac Agent
Watch, speak to, type to, and control a MacBook from an iPhone, from anywhere, including writing and running software by voice.
- Role
- Sole builder. Architecture, routing, transcription, safety model, and the macOS tool layer.
- Status
- In development
- Year
- 2026
The problem
Siri cannot be made smarter. Apple only lets a third party do three things: launch a Shortcut by name, hand over dictated text, and speak a reply. That is the entire surface area, so every attempt to make Siri genuinely useful runs out of room immediately.
What I did
Treated Siri as a voice pipe rather than a brain, and put all of the intelligence on the Mac. Built the daemon, the router that decides where each request goes, the tiered macOS tool layer, on-device transcription, the phone app, and the safety model that makes remote control of a whole machine defensible.
How it works
Two ways in, one brain. An iPhone Shortcut sends a recording over Tailscale to a daemon on the Mac, and an installed web app carries live video, voice, text, keyboard, and trackpad to the same place. A router sends each request one of four ways: a fast path that answers questions like battery level from a single command with no model at all, an Operator agent that drives macOS through tools, a live Claude Code session inside tmux, or the Builder, which writes and runs real software in a project directory.
Say
Mac
What it answers
Real output from the running daemon


Captures




The hard parts
- 01
Apple's dictation runs on the phone and has never heard of anything on this Mac, so the audit log filled with “cloth terminal” for “Claude terminal”. Transcription moved onto the Mac: whisper.cpp runs locally on the GPU and is told the vocabulary before it decides. Audio never leaves the machine.
- 02
Remote voice control of an entire machine has to be safe. Commands are classified safe, sensitive, or blocked, and the blocked set has no override path, because any override would itself be reachable by voice.
- 03
A finger dragging across a phone fires dozens of pointer events a second, so the app posts input events in-process instead of shelling out once per action.
What changed
- Remote Mac control works end to end, with common system questions answered in under a second without calling a model.
- The Builder writes software by voice, with Claude Code's real toolset pointed at a project directory.
- A permanent phone app replaced the expiring share link: screen, microphone, keyboard with sticky modifiers, a real trackpad, native device pairing, and a lock-screen notice when the Mac is locked.
- Two offline test suites cover routing, safety classification, transcript repair, session memory, and speech shaping.
Built with
- Python
- FastAPI
- Claude Agent SDK
- whisper.cpp
- tmux
- AppleScript
- Tailscale
- launchd
- iOS Shortcuts