Builder My stackTwo Macs, one rig

My two-Mac AI coding setup

The laptop is the pilot surface. Repositories and coding agents run on the Mac mini. A keeper decides what is worth remembering between sessions.

The walkthrough below follows the two machines, their connection, the agents, project files, memory and voice control. Dictator handles voice control; Moptop handles repository upkeep. This is my working setup, not a required architecture for every project.

Laptop · pilot surface

Two Macs, one rig

I run everything across two machines: a MacBook Pro and a Mac Mini. On the laptop, almost all agentic work happens in two windows. One is the Codex desktop app. The other is a terminal running Herdr, split into panes for Claude Code, Antigravity CLI and OpenCode.

Pilot surface, inference surface

None of my projects live on the laptop. Every repo sits on the Mini, which is always on. Both windows reach it over SSH through Tailscale. On the laptop it feels like working locally, but the actual work runs on the Mini. The laptop is the pilot surface. The Mini is the inference surface.

Stateless agents, one memory keeper

My working agents are stateless, with every memory setting off. Each session starts clean, with no accumulated context steering a model that's newer than the context is.

The knowledge still gets kept. A script collects the transcripts from every session, and a pipeline distills them into packages. A Hermes agent reviews those packages and decides what gets committed to memory. When I want to ask about past work, I ask Hermes. When a working agent needs context, I hand it over myself. I'm separating between the knowledge and the work.

Dictation that spans both machines

Dictator is a dictation app I built for this rig. Universal Control lets my mouse move between both Macs, so dictation has to work the same way. I can speak into either machine, and one history stays synced across both. It also runs workflows by voice: a single spoken command can trigger a chain of actions, like starting a workflow or tiling windows.

A clean repo, with nothing deleted

I usually don't give coding agents curated context. They read the repo, because the repo is the best context they can get. The catch is that agentic work leaves residue: old versions, scraps, abandoned attempts. An agent reads all of it, stale versions included.

MopTop is the other app I built for this. It decides what's canonical, checks that the code still runs without the rest, and moves everything else to an archive drive on the Mini. The archive stays linked to the project, so agents can still reach it, and I keep the full history of how I got here.

Agents that stay local

Each Mac also runs its own Computer Use agent through the Codex app, for work that needs that specific machine. On the laptop, an IT agent knows the whole structure and has access to every connection. When something breaks, it diagnoses the problem and fixes it.

A whole day on the map

A simulated day in my setup. Follow each event in the log and the matching colored path on the map above.

↑ Live illustration of the map
  • Connection
  • Coding
  • Memory
  • Voice
  • Services
  • Archive
  1. The next event will appear here as it runs on the map above.

Hover or focus an event to highlight its path on the map.

The tools