The loop

From a first brief to a landed branch.

The phone drives the session. The Mac owns the worktree, agent process, files, commands, and git history from start to finish.

Set up once

Pair the two devices.

Install Tailscale on both devices, launch the Mac host, sign in to an agent CLI, and scan the pairing code.

Follow the ten-minute setup guide →

pair your phone with your Mac
  → attach a local git repo
  → create an isolated workspace (agent chat, or straight to a terminal)
  → direct one or more agents
  → review files, diffs, commits, and running processes
  → verify with tests, a terminal, or the live app in your browser
  → commit, push, open a PR — or merge locally
  → close the workspace by merging or explicitly discarding it

01 / Direct

Start with a branch, not a chat bubble.

Create chat-first, terminal-first, or from a GitHub issue. Choose the base ref and branch name, then pick Claude Code, Codex, or Grok with its model, reasoning effort, and Plan or Work mode.

  • Your first message waits for setup, then sends verbatim
  • Attach images, PDFs, and text files
  • Mention files, pin context, stop, or steer
Agent transcript with reasoning, plan, tool calls, and working state
Model, reasoning effort, Plan and Work mode controls

02 / Review

Read what changed, from the real worktree.

Your Mac renders syntax-highlighted diffs in the active palette. Review the combined diff, one file, the whole file, or every commit with its full message and scoped diff.

  • Fork-point and last-commit anchors
  • Markdown preview and source modes
  • Select a span, add a note, Ask agent
  • Stale-safe single-file revert
Host-rendered diff with a selected span and Ask agent note

03 / Verify

Run the checks and the running app.

Use project command buttons, an ad-hoc command, or a real PTY. Every process has an outcome, exit code, replayable ANSI output, and an optional allocated port.

  • Completed, stopped by you, and crashed are distinct
  • TTY-gated tools work in the interactive terminal
  • Open the dev server in the phone browser over your tailnet
Command buttons and completed check in the transcript
Real PTY beside an agent chat with ANSI output and the mobile key bar

04 / Land

Decide what reaches the base branch.

Update from base, edit an agent-drafted commit message, push, and see ahead or behind state. With a GitHub remote and gh signed in on the Mac, draft and open a pull request from the same workspace.

Merge & Close lands the branch. Discard & Close removes it after confirmation. A close-time conflict keeps the worktree intact for the desk; PRCHD does not put a merge editor on a phone.

Commit sheet with an editable agent-drafted message over the changed files
Pull request title, body, draft flag, and base branch picker
Merge & Close sheet for the finished workspace

When the app closes

The phone disconnects. The work does not.

  • Reattach and replayThe Mac’s event log fills every gap from your cursor
  • Reconcile messagesOptimistic sends deduplicate against authoritative state
  • Recover after restartInterrupted turns settle instead of staying “working”
  • Route from pushGeneric notifications take you back to live Mac state

See the complete capability map.

The loop is the center. Features covers the edges, limits, and dependencies.