A JVM command-line tool is easy to write and miserable to ship. You need five platforms, a JDK the user does not have, an update path that never overwrites a running install, and a trust story for a `curl | sh` one-liner. Here is the architecture we ended up with in `devrig`: generate the install script from a model whose JDK coordinates are signature-verified, make installs content-addressed and…
In one afternoon — one pasted prompt, included below — we turned an interactive Claude Code session into a personal-assistant orchestrator: channels in, a fresh headless sub-agent per request, an inbox loop that delivers finished work before taking new work, and a three-lens quorum that reviews and ships its own process fixes. By day two it was also babysitting the machine's other AI Agent…
Last time we put a full IntelliJ IDEA inside a Docker container. But Docker only gives you Linux, and some GUIs are macOS — Aqua, Gatekeeper, TCC prompts and all. So we taught a Linux AI Agent to boot, see, and drive a real macOS desktop inside a Tart VM over SSH, and packaged the whole thing as reusable Agent Skills you can point at any Apple Silicon Mac.
Evals that boot a full IntelliJ IDEA — pixels, dialogs, indexing and all — inside a Docker container. Xvfb provides the display, fluxbox keeps the windows in place, ffmpeg records everything, and a tiny Node.js server streams the live video straight into a browser tab on your machine. Here is the whole recipe, so you can build your own.
Part 3 — the build for the lighter solution. How a set of git hooks stamps a session id on every commit an AI Agent makes, survives squash and rebase, and captures each push — all best-effort, all inside the sandbox.
Part 2 — how the git proxy intercepts HTTPS, forces a parseable pack, logs every commit, pins the objects with marker refs, and survives the sharp edges of a signed, atomic protocol.
When you hand a repo to an autonomous AI Agent, you need to bound what it can touch and capture what it did. Part 1 — the approach — keep the keys away from the agent, a git proxy as the hard boundary, and git hooks as the lighter alternative.
The new `devrig` CLI in MCP Steroid 0.100 turns the IDE bring-up ritual into one stdio command. `devrig install ` writes the MCP config; `devrig backend download/start` brings an IntelliJ-family IDE into existence and gives the agent an IDE of its own. In the e2e test, Claude provisions an IDE and finds 4,633 PSI usages of one class in Keycloak — in one prompt.
The obvious way to connect an AI Agent to a running IntelliJ is an HTTP MCP server inside the IDE. I built it, shipped it, and used it daily — and it kept breaking on real workstations: dynamic ports, start-order lottery, multiple IDEs, and the agent-up/IDE-down dead end. Here is why I moved the whole thing to stdio and a CLI coordinator called devrig, and what the journey taught me.
We turned one release's roadmap — 130+ umbrella-epic issues — into fully-researched implementation specs using a swarm of three different agent CLIs (Claude, Codex, Gemini): 818 runs, ~155M+ tokens, ~$576, four days. Then, mid-release-cycle, we ran a snapshot to compare the research against reality — with no expectation that anything was "done" yet. Here is the pipeline, the numbers, and the…