Direct
Start chat-first, terminal-first, or from a GitHub issue.
- Choose model, effort, Plan or Work
- Attach files and mention repository context
- Stop or steer a turn in flight

Standing watch
Direct Claude Code, Codex, or Grok on your Mac. Review the diff, run the tests, open the app, and land the branch from your phone.


The wait
Reviewing, verifying, and merging keep you nearby. PRCHD moves the review, not the agent. Your Mac stays the computer; your phone becomes the control surface.
The whole loop
A phone chat is the first quarter of the job. PRCHD carries the session through the real diff, the real checks, and the final branch decision.
Start chat-first, terminal-first, or from a GitHub issue.

Read the diff your Mac renders from the real worktree.

Run the checks and the app before anything lands.

Commit, push, open a PR, or merge the branch locally.

One session, one walk
The work runs on the Mac, so putting the phone away changes nothing.
Create a workspace from main and send the first brief while the setup script finishes.
prchd/rate-limit-loginThe session stays on your Mac. The phone can close without interrupting the turn.
Running shows the active chat. A content-free push can route you back when it finishes.
Open the real diff, select the exact span, and send a note back to the agent.
src/auth/login.ts +12 −3Run the test button. The complete result returns to the transcript as a durable check.
✓ 42/42Start the dev server and open it on the phone over your tailnet.
:5173Commit, push, and land the branch. A close-time conflict preserves the worktree for the desk.
Refs #214Fifty-one minutes. No desk.
Isolation
One worktree, one branch, one snapshotted base. Parallel work cannot collide before merge time.
main

Three agents, one set of controls
Claude Code, Codex, and Grok use the same model, reasoning effort, and Plan or Work vocabulary.
When you’re not looking
Activity answers three questions across every paired Mac: what needs you, what is running, and what happened recently.
Setup failures, sign-in, unresolved merges
Chats and PR reviews with elapsed time
Commands, commits, pushes, and outcomes

Where your code goes
Your phone talks to your Mac directly over your own Tailscale network. Repositories, worktrees, prompts, transcripts, diffs, command output, and attachments stay on your Mac.
There is one PRCHD service. It enrolls your Mac’s identity and forwards content-free notification requests to Apple and Google. It is not a relay for app traffic and never sees source code. It stores no project, workspace, chat, event, prompt, or notification body.
Notification payloads carry fixed event values and opaque routing ids — never code, names, paths, diffs, or agent prose. Connecting a Mac stores one email address for the sign-in code and new-Mac notice. A Mac you never connect sends the service nothing.
PRCHD service
Two surfaces
One menubar beacon and a dashboard for workspaces, projects, devices, and settings. It keeps the Mac awake while work is in flight and installs signed updates.

Projects from every paired Mac in one list, with host chips and reachability beacons. iPad uses two panes for chat and review.


What you need
The host is the load-bearing install. Tailscale gives the phone a private route to it.
Optional A GitHub remote and the gh CLI signed in on your Mac.
Standing watch
Install the Mac host first, then pair the phone over your tailnet.