The design goal, stated as a direction rather than a finished state, is to make everything modular with as few dependencies as possible. Swappable backends behind stable interfaces, nothing hardcoding what it talks to. It is not all the way there. But that is the shape I am building toward, and it is where the interesting forks are.
The clear swap points:
The executor. The agent runs Claude Code on a VM today, but that is one implementation of a stable HTTP contract with the relay. The same interface could front a runner on the host, a cloud instance, or a Docker container. Nothing about the relay cares where the run actually happens.
The relay. Hosted PHP is one implementation. A local, self-contained relay, a portable PHP runtime and SQLite bundled together behind the same HTTP interface, is the intended alternative for local-only operation, and it is the fix for the single biggest adoption barrier: needing a web host at all. That is the piece I would build first.
The extension. MV3 in Brave today, but it is only one client of the HTTP interface. It could be pulled out into its own repo, and a Firefox port is possible.
The popup. Entirely optional, and easy to leave out.
Things I already know are rough. The extension's hardcoded relay URL should be a single pasted-in relay profile, and will be. The no-queue design is deliberate, but whether a real wait-queue would beat re-firing on a wake is genuinely an open question I have not settled. The silence timeout is a blunt instrument: guessing a fixed threshold is worse than the run telling me it is still working, so a mid-job heartbeat from the Claude Code side that resets the clock while it is genuinely busy would be the better answer. There is a first step toward the deliberation problem already in: a flag that tells a run to just do the mechanical edit rather than sit and think about it, which came out of small fully-specified jobs timing out while the model deliberated instead of building.
Parked, and clearly not built, but where I would take it: usage awareness. Claude.ai checking its own remaining budget before it dispatches, and holding off near a limit, fed by my usage app posting its numbers to the relay. A tool that is aware of its own cost of operation. And a one-shot installer in the same family as my other Windows apps, so the whole thing comes up from a wizard rather than a manual assembly. Both are designed on paper and neither is shipped, and I would rather be plain about that than let the roadmap read like a changelog.