Skip to content
← Back to the Academy

Route · Available

Build Stack

Orchestrating two or more machines with Claude Code: from a shared monitor to jobs that travel to the Mac and come back as branches.

Part of the Claude Code Ecosystem →

Goal

End up with a Windows PC that edits and dispatches and a Mac mini that works on its own, joined by SSH and git, with rules enforced by mechanism rather than by memory.

For: Anyone who already uses Claude Code on one computer and has another one sitting idle.

Before you start

  • Claude Code installed on one machine
  • A terminal and basic git
  • A second computer on the same network

Lessons

0 of 24 done in this browser

  1. 01
    Screens 3 min read · Level 0

    A split ultrawide monitor: Windows on the left, the Mac on the right.

  2. 02
    Deskflow In preparation

    One keyboard and mouse for both machines.

  3. 03
    Homebrew and the shell 4 min read · Level 1

    Homebrew, Claude Code, gh, and a PATH that also works over SSH.

  4. 04
    SSH In preparation

    ssh mac without a password.

  5. 05
    Network and DHCP In preparation

    Same subnet, and an IP that does not change.

  6. 06
    Verified backup 11 min read · Level 2

    A photo copy with sha256 on an external disk.

  7. 07
    Updating macOS 3 min read · Level 0

    macOS 15.3.1 to 27.0.1 and what changed.

  8. 08
    The kit on the Mac 9 min read · Level 2

    Repos by git bundle, port, tests, layered config.

  9. 09
    First distributed task 5 min read · Level 2

    enjambre run: Windows sends, a branch and a ledger entry come back.

  10. 10
    Unattended agent 7 min read · Level 2

    A night of unsupervised work, with rules and a report.

  11. 11
    Remote-SSH In preparation

    VS Code on Windows, compute on the Mac.

  12. 12
    The keychain over SSH 9 min read · Level 2

    claude, gh and git over SSH with a tmux that is born in your session; the first real job.

  13. 13
    The Mac for 3D and for studying 9 min read · Level 2

    Blender on Metal: STL to PNG with one line from Windows, Onshape to render, algorithms on both machines.

  14. 14
    Presence and queue 7 min read · Level 3

    enjambre watch knows which nodes are ready; jobs for a downed node wait in a queue.

  15. 15
    Local models on the Mac 5 min read · Level 2

    Five MLX models with sha256, served one at a time by a manager that Windows reaches through a tunnel.

  16. 16
    Transcription with speakers 10 min read · Level 2

    Audio to text with renamable Speaker N labels; about 24 hours of audio per hour, measured against known truth.

  17. 17
    Mac vs Windows 5 min read · Level 2

    The same tasks on both machines; cloud vs local in claude -p; a local coding model vs Claude Code.

  18. 18
    Shared disks In preparation

    The Mac mounts Windows folders over SMB with a dedicated user; automatic mount, watch monitors it, firewall.

  19. 19
    The main viewer 12 min read · Level 2

    One page with nodes, open sessions, usage, queue and a comparison by task type; a summary in the statusline.

  20. 20
    Local models, round 2 16 min read · Level 2

    From five hand-picked models to a catalogue, a benchmark with identical inputs and a manager that picks each task's model.

  21. 21
    The router In preparation

    enjambre run without --node picks the machine from a table and live state, and explains why in one line.

  22. 22
    The commandment 7 min read · Level 2

    Every Claude Code session on both machines knows the Mac exists; a bare ssh mac is blocked by a hook.

  23. 23
    Web viewer and tray 16 min read · Level 3

    A viewer with two costs and its own history, a redacted web copy with an allowlist, and a tray to drop tasks from the phone.

  24. 24
    Long jobs 10 min read · Level 3

    enjambre script (a command declared in AGENTS.md, $0) and run --detach (an agent with a USD cap): they return at once, heartbeat, resume if they die and leave a line in the ledger; kind: tests gets exactly one Bash command.

  25. 25
    The bridge 18 min read · Level 3

    A persistent Claude Code on the Mac that Windows talks to (enjambre chat/send/sessions), with Playwright, a ledger per turn and gui yes/no in status; the key's threat model.

  26. 26
    Viewer v3 7 min read · Level 2

    Every failure with its cause, grouped; tests kept apart; projects sortable by spend from the phone; a zoomable timeline; usage through lenses and a heat map; local models with logo, state and an editable note.

  27. 27
    Live viewer and per-node telemetry 16 min read · Level 3

    What is running right now, on top and in green, every 10 s; per node: CPU, GPU, RAM with pressure and swap, thermals, network, 4-hour charts and processes tagged with their job or session.

  28. 28
    Priorities 18 min read · Level 3

    Four job classes, high > normal > low > night: a low job starts only on a free machine, a high one pauses or evicts it, and it resumes by itself 60 s later. The viewer says why.

  29. 29
    Unattended startup In preparation

    What starts by itself on each machine after a reboot, watch and live on the PC with nobody logged in, and a Mac that only reads as ready once its keychain can run an agent.

  30. 30
    Viewer polish 6 min read · Level 2

    Every number in the viewer says when it was measured and where it comes from: the age of each gauge, each chart's window and step measured from its data, and no user name in any screenshot.

  31. 31

    No job should stay in unknown forever. If a job cannot run, it must fail on the spot and say why. If it dies before starting, it has to leave a state and a reason on disk.

State of the guide today: 24 lessons with a page, 3 partly done, 4 still to write.

Mini project

Your first distributed task

One command on one machine creates a worktree and a branch on the other, an agent works there and a line comes back to the ledger. It is the skeleton of enjambre; everything else is built on top of it.

The project behind it

enjambre I spread Claude Code jobs across my PC and a Mac mini; each one returns as a branch I review, with a live dashboard of the machines.