writers' room

idle
$0.00000 calls
1.0×

how this works

the fight

Every model on the panel gets the same brief and writes it in its own voice. The drafts are then dealt back out under anonymous letters, and each panelist roasts all of them and ranks them, not knowing which is its own. Everyone rewrites against what was said. An optional judge ranks the revisions, still blind. Health bars track the rankings; the scoreboard is the Borda count underneath.

where your key goes

There is no server. The engine runs in this tab. Your key is held in one variable, sent to openrouter.ai with each request, and forgotten on reload. It is never written to storage, a cookie or the URL.

Do not take that on trust. The page carries a Content-Security-Policy that makes the browser refuse any connection except to openrouter.ai, which you can read in view-source and watch in the Network tab. Better still, make it not matter: create a key with a spend limit, funded with only what you are willing to lose. Then the worst case is bounded whatever this page does or does not do. The page reads the limit back after you paste and tells you if there is not one.

Sign in instead runs OpenRouter's OAuth flow and mints a key without you handling one. That key is real and persists on OpenRouter's side until you revoke it there, even though this page forgets it.

nothing is saved

The same rule cuts the other way. A finished run lives in memory and does not survive a reload. The download button that appears in the header when a run ends is the only thing that makes it outlive the tab. Three shapes: the transcript as markdown, the transcript as plain text, or the raw JSON, which replay in setup will take back from any machine.

what it costs

Every panelist writes, reviews every other draft, and rewrites, so tokens grow with roughly the square of the panel. Five cheap models on one round has come to about two cents; six frontier models with a judge, about thirty. The running total is in the header.

uhhh, why tho?

This is an adaptation of ai-writers-room, a goofy little project I made in response to a tweet when I was nearing the weekly reset on my Claude Code subscription. While mostly a goof, the basic framework there ended up being pretty useful. Feel free to take a look and/or check out my website malcolmwardlaw.com for some of my slightly more serious work.

no warranty

This is free software under the MIT licence, provided as is. It is a hobby project, not a service, and nothing on this page is a promise. In particular, the page cannot protect your key from software running on your own machine: a browser extension, malware, or a copy of this page served from some other address. Check the address bar before you paste. If your key is misused, the cost falls on you, and the one control that works regardless of what this page does or fails to do is a spend limit set on the key at OpenRouter. Your use of OpenRouter is governed by their terms, not by anything here. The roasts are written by third-party models and do not reflect the author's views.