The model's answer is a starting point: fork it, challenge it, compare approaches, keep what holds.
You ask for something hard and get something plausible: clean, compiles, reads right. Plausible enough that you build on it before you catch what it missed. You ask for a fix; it breaks something it wrote two prompts ago, and you're scrolling a flat transcript holding a branching problem in your head.
None of that is the model being bad. It's abundance forced through tools built to guard one precious draft. The bottleneck moved. The tools didn't.
Get a result that looks reasonable. The right next move is to challenge it — demand tests, write down your complaints, try a rival approach. Almost nobody does, because in a chat every challenge pollutes the context that produced the answer: pushing back risks the thing you already have. Here, challenging is cheap. Fork the result, set the approaches side by side, throw the same objection at both. Keep what holds; what doesn't stays a card you can flip back to. Explore, challenge, compare, merge, kill. Nothing you try is lost.
Current tools move your judgment to the edges. Agents do the work and you approve the diff; or you write the spec and they execute. Both park you at a gate. Collimate keeps you in the middle, where the thinking happens: testing hunches, running the experiment, choosing between approaches.
It doesn't care whether a draft came from one model or eight agents racing, only what you do with it once it exists. If throughput is the goal, a background agent wins. This is for work where the cost is in the commit, not the keystroke.
Read the longer essay →Runs locally: single-user, no cloud, no accounts, keyboard-driven. What you make is plain files in local content-addressed storage, indexed by SQLite. Pre-1.0 and single-author: the hard parts are solved with care, some of the polish isn't.
The layer you build on is two pieces, both created in the app. Generators are plain Python that can run anything: any model, any agent harness, or no AI at all. Renderers are TypeScript views for whatever files they produce. That layer is Apache-licensed and separate from the app, so nothing you make is trapped if the app goes away.
Feedback shapes what this becomes. Tell me what's broken, or show what you've made.
Join the Discord