
I run five AI coding assistants side by side in one window — Claude, GPT, Grok, Gemini, and a local model — each in its own lane, all stopped by the same permission rail before they touch a file or run a command. This week the lanes learned to pass work to each other. Here is what that gets me, in the order it matters.
Answers I can trust more. Ask one model a design question and you get a confident paragraph. Ask three of them blind — nobody sees anybody else's answer — and you find out whether the question has one answer or three. Then hand each of them the other two answers and make them argue. Models retract. Claims get sharper. The one that was bluffing usually says so by round two.
I've run thirteen of these panels in the last ten days, on my own designs. One caught a write-ordering bug in a change I'd already reviewed myself. One talked me out of building a control plane for a problem my own numbers showed wasn't happening yet — a fire engine for a fire that wasn't burning, in Grok's words. One bug bash came back with fifteen fixes. None of that came from a smarter model. It came from three of them disagreeing where I could see it.
For less money. The old way was a router that paid metered API rates per call, roughly a dollar a panel. The lanes run on the vendors' own command-line tools, on subscriptions I already pay for. Same three opinions, no meter running.
In less time. A panel used to mean pasting the same paragraph into three terminals and relaying the answers back by hand. Now it's one question, ⌘↵ to ask everyone, ⇄ to make them argue, and about ninety seconds. The whole exchange stays in the panes, so I can scroll back through who moved and why.
Without giving up the rail. Nothing here sends anything I didn't type or approve. Quoting an answer into another pane only fills my composer; I still press send. A fanned-out prompt stops at the same approval a typed one would. Every prompt the window composes shows up in the pane as an ordinary turn, so there's no hidden channel between models. That matters to me more than the speed: it's the reason I can hand this window to someone who isn't me.
And a lane I'd written off. The first live run found a bug I'd misread for two weeks. Grok panes on my Linux server came up ready and died a second later, no error. I'd filed it under flaky. It wasn't — Grok's tool asks the kernel to kill it if its parent dies, Linux counts the thread that started it as the parent, and my server was starting each agent from a web request that ended right after. One long-lived launcher thread fixed it. I got the lane back, and the fix is in both versions of the window.
How it started. I didn't design the hand-off. I asked the GPT lane, mid bug bash, to "run this by Grok." It shelled out to the `grok` command through my permission prompt, read the answer, and kept going — one model deciding another's opinion was worth a subprocess call. I wanted that to be something I could do on purpose from the keyboard. So now there are five ways to pass work between lanes: give one a note to read, quote one answer into another pane, ask everyone at once, cross-feed the answers, or let an assistant go ask on its own. Each fits a different moment; the guide in the repo says which.
What changed in my day is simple. Design reviews I used to skip because they cost an afternoon now cost ninety seconds, so I run them. I'll let you know what the next one turns up.
Corral Light is public: github.com/cvp1/corral-light.