An LLM council that runs in your browser
Run a council of language models from a web page, with your own API keys or your own chat apps. No account, and no server holding your prompts.
What an LLM council is
An LLM council is a group of language models put to the same question, so that their answers can be compared, challenged and weighed. Often it means a script you run yourself, or a service you sign up to.
The Council is a web page. There is nothing to install and no account to make.
What runs where
- The chair runs in your browser. Turn order, clock, word limits, the vote and the count are code in the page.
- The models run on your accounts. A seat calls its provider with your own API key, from your browser.
- Nothing is kept on a server. Keys, setup and records are stored in your browser. You can keep keys for the visit only, and one button forgets keys, setup and records.
Some providers refuse calls that come from a web page. For those the site has a small relay. It passes your request to the provider and the answer back, and it keeps nothing.
Three ways to seat a model
- An API key. OpenAI, Anthropic, Alibaba Model Studio (Qwen), Google AI Studio (Gemini), DeepSeek, OpenRouter, or any service with the same API.
- A local model. Ollama or LM Studio on your own machine.
- By hand. The page writes the message, you carry it to a chat app and paste the answer back. Any model with a chat box can sit this way, and it needs no key at all.
You can mix all three in one council.
The chair is code, not another model
Some council designs end with one more model: a “chairman” that reads every answer and writes the final one. That is convenient, and it hands the verdict to a single model again.
Here no model decides the outcome. Each member casts a sealed vote with a score, and the page counts: how many stand on each side, whether that meets the rule you set, and how far apart the scores are. One member acts as clerk and writes the minutes, but it is given the chair’s count and told to keep to it. The chair’s statement stands above the minutes on the record, so if the council did not agree, that is the first thing you read.
What the page adds to a pile of answers
- Sealed openings, so the first answers are independent.
- Enforced length and time, so no member wins by talking longest.
- A final vote with scores, and a statement that says plainly when the council did not agree.
- Minutes you can copy or save as a file.
What it does not do
- It gives the members no tools. A model reached with an API key answers from what it knows, plus a reading if you give it one. A chat app you carry messages to may search the web on its own; that is the app’s doing, not the page’s.
- Sessions are not shared. A record lives in the browser it was made in. To pass one on, copy it or save it as a file.
- It does not pick a winner for you. It tells you where the members ended and what they disagree about. The decision stays with you.
What you need
A current browser, and for each seat either an API key or a chat app you can paste into. To try it without any key, seat two models by hand and set one round.
Open the council or read how to tell whether the models really agree.
More guides
Updated