Standing watch

Your Mac keeps coding.
You get your day back.

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.

No account · Apple Silicon · macOS 13.0+ · Your code stays on your Mac

Mac menubar popover showing host status and active work
Agent working on the phone with transcript, plan, and file changes

The wait

The agent doesn’t need you for twenty minutes.
The desk does.

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

Direct. Review. Verify. Land.

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.

01

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
Agent transcript with reasoning, tool calls, a plan, and the working indicator
02

Review

Read the diff your Mac renders from the real worktree.

  • Compare from fork point or last commit
  • Select lines and add an agent note
  • Inspect files, commits, and markdown
Syntax-highlighted diff with a selected span and the Ask agent bar
03

Verify

Run the checks and the app before anything lands.

  • Use project commands or an ad-hoc command
  • Open a replayable interactive terminal
  • View the dev server over your tailnet
Project command buttons with a completed test result in the transcript
04

Land

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

  • Edit the drafted commit message
  • Create a PR through the gh CLI
  • Merge & Close or Discard & Close
Merge & Close sheet showing the branch and files that will land

One session, one walk

A branch moves from brief to merge while you move through your day.

The work runs on the Mac, so putting the phone away changes nothing.

create workspace
  1. 00:00

    Direct

    Create a workspace from main and send the first brief while the setup script finishes.

    prchd/rate-limit-login
  2. 00:02

    Walk away

    The session stays on your Mac. The phone can close without interrupting the turn.

  3. 00:19

    Check Activity

    Running shows the active chat. A content-free push can route you back when it finishes.

  4. 00:31

    Review

    Open the real diff, select the exact span, and send a note back to the agent.

    src/auth/login.ts +12 −3
  5. 00:38

    Verify

    Run the test button. The complete result returns to the transcript as a durable check.

    ✓ 42/42
  6. 00:44

    Open the app

    Start the dev server and open it on the phone over your tailnet.

    :5173
  7. 00:51

    Merge & Close

    Commit, push, and land the branch. A close-time conflict preserves the worktree for the desk.

    Refs #214
merge & close

Fifty-one minutes. No desk.

Isolation

A workspace is a branch.

One worktree, one branch, one snapshotted base. Parallel work cannot collide before merge time.

  • Merge & Close lands the branch and removes the worktree
  • Discard & Close asks before removing the work
  • A failed merge preserves the branch and every file

main

prchd/rate-limit-loginactive · 7 files changed
Merge & CloseDiscard & Close
Model, reasoning effort, Plan and Work mode controls with a context meter

Three agents, one set of controls

Choose the agent. Keep the routine.

Claude Code, Codex, and Grok use the same model, reasoning effort, and Plan or Work vocabulary.

  • Ready, needs login, or not installed before you start
  • Each backend exposes only the controls it supports
  • Your CLIs, subscriptions, configuration, and credentials

When you’re not looking

The Mac keeps the record.

Activity answers three questions across every paired Mac: what needs you, what is running, and what happened recently.

Needs you

Setup failures, sign-in, unresolved merges

Running

Chats and PR reviews with elapsed time

Recent

Commands, commits, pushes, and outcomes

  • Opt-in push notifications with quiet hours
  • Content-free payloads from a connected Mac
  • Cron automations and file recipes without a phone attached
  • Running work survives disconnects and reconciles after restart
Activity screen keeping the recent record of pull requests, commits, commands, and agent turns

Where your code goes

Your Mac stays the source of truth.

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.

No source leaves your MacDirect over your tailnetRead the mechanism →
your phoneWireGuardyour Mac

PRCHD service

  • host identity
  • content-free push
app relaystoragecompute

Two surfaces

A sentinel on the Mac. The full loop in your pocket.

On your Mac

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.

Mac dashboard with workspaces, projects, paired devices, and settings

In your pocket

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

Projects from two paired Macs with host chips and status beacons
iPad project list and selected workspace in a two-pane layout

What you need

Four things before the first workspace.

The host is the load-bearing install. Tailscale gives the phone a private route to it.

  1. 01
    A MacmacOS 13.0 or later, Apple Silicon
  2. 02
    TailscaleOn your Mac and phone, signed into the same tailnet
  3. 03
    A coding agentClaude Code, Codex, or Grok — set up and signed in on that Mac
  4. 04
    The phone appiOS or iPadOS 15.6+, or Android 11+

Optional A GitHub remote and the gh CLI signed in on your Mac.

Standing watch

Your Mac keeps coding. You get your day back.

Install the Mac host first, then pair the phone over your tailnet.