In the last post I described a manual habit: two Cursor threads per topic, “A: " prefix for the architect and “E: " for the engineer, and a small set of typed commands moving work between them. Since then I’ve built eng (short for engineer), a CLI that turns that habit into an actual tool.

From threads to commands
eng studio FOR-134 # dispatch a task, returns immediately
eng status <run> # check in on progress
eng wait <run> # block until it needs a decision
eng review <run> # checkout, run checks, show the diff
eng continue <run> --feedback "..." # send review notes, keep going
eng land <run> # merge once it's clean
That’s the whole loop. “Pickup FOR-134”, “Review”, “Address review comments” from the last post are now literally those five commands, plus a handful of commands underneath (ack-bugbot, resume, abort, gc) for when things don’t go smoothly.
Each dispatch gets its own git worktree, checked out on its own branch from a shared clone. Two runs against the same repo never share a working directory, so I can have several tasks going on the Studio at once without one run’s half-finished edits leaking into another’s.
That isolation is at the git level, not the process level. Right now the engineer runs with full access to the Studio otherwise: filesystem, network, all of it. I’m still weighing options on how to set up the per-run sandboxing. At the moment I’m just YOLOing with my Mac Studio. Life is short, you gotta take some risks.
Two engines, one machine
Architects still live in Cursor, on my laptop. That part hasn’t changed. What’s different is where the engineer runs. eng studio dispatches to the Mac Studio, the always-on machine from an earlier post that I originally set up just to host a local model. Now it also runs the engineer role. My laptop doesn’t heat up, and I can close the lid mid-run without killing anything.
On the Studio, there are two engines to pick from. One dispatches to Claude with Sonnet 5, same cost profile as before. The other runs pi against the Studio’s local model, for free. I’d assumed I’d eventually wire up Cursor’s cloud agents as a third option, dispatching engineers to the cloud instead of the Studio. I still might, but so far I haven’t needed to. Two machines, two engines, seems to cover everything I throw at it.
Closing the loop
The review loop got the same treatment. eng land used to just check that CI was green. Now it also checks Bugbot, Cursor’s automated PR reviewer. If Bugbot reports findings on a PR, eng land refuses to merge until I run eng ack-bugbot with a note on how it was handled, fixed, filed as a follow-up, whatever. Landing used to mean trusting a green checkmark. Now it means trusting a green checkmark and an explicit decision on anything the reviewer flagged.
The architect still does the same job it always did: deciding what gets built, asking questions, reviewing the output. The engineer got cheaper again, down to free when pi and the local model are good enough for the task, and it’s not sitting on my laptop’s fan anymore either.