# Yes-Brainer > Ask several AI models one question and compare how they answer — independently, by > anonymized peer vote, or through a multi-round debate. Yes-Brainer is a free, > open-source (AGPL-3.0) web app that runs entirely in the browser: there is no backend, > no account, and no server operated by the project that holds conversations. Users bring > their own provider API keys, which are stored in the browser's localStorage and sent > only to the model provider the user selected. Official site: https://yesbrainer.ai — source: https://github.com/trekhleb/yesbrainer Author: Oleksii Trekhleb (https://trekhleb.dev). License: GNU AGPL-3.0. ## What it does One question is sent to several large language models at once, in one of three deliberation structures: - **Parallel answers** — every seated model answers independently. No voting, no synthesis; the raw answers sit side by side for comparison. - **Trial verdict** — models answer, then vote anonymously on each other's answers against a rubric, then a Judge model reads the answers plus the votes and writes one synthesized verdict. There is no revision step; the Judge rules on first drafts. - **Consensus debate** — a multi-round debate. Each round, every model re-answers while seeing its peers' anonymized positions; a Mediator model then judges whether the group has converged, and either writes the final consensus or distils the live disagreements to seed the next round. Rounds are capped (3 by default). At the cap the Mediator reports points of agreement and the conflicts that remain rather than forcing agreement. Sessions are multi-turn: follow-up questions carry prior turns as context. ## Supported model providers Anthropic (Claude), OpenAI (GPT), Google (Gemini), Groq, OpenRouter, and local Ollama. Several providers can be seated in the same council. Ollama is opt-in and off by default; while it is off the app does not probe localhost. ## Architecture and data handling Yes-Brainer is a static bundle of HTML, CSS and JavaScript — it can be served from any CDN or static host, and it is installable as a PWA. - **API keys** are held in the browser's `localStorage` (key `yesbrainer:keys`), in plaintext, per device. They are sent to the provider the key belongs to when a turn is sent, and to nobody else. - **Conversations** (councils, turns, role outputs, votes, token totals) are held in the browser's IndexedDB via Dexie. No copy is synced or stored server-side. Their content reaches only the providers the user sends turns to. - **Settings** are held in `localStorage`. - **Provider API calls** go directly from the browser to the provider over TLS. - **Analytics**: the official deployment reports pageviews to a self-hosted analytics instance (`stats.yesbrainer.ai`) — no cookies, no client-side identifiers, no third-party scripts in the page. What is sent: the route pattern from a fixed list, screen size, language, referrer, and counts of a few feature-level actions (that a feature was used, not what was in it). Both lists are closed TypeScript types in `src/analytics/`. A build of the repository without the deploy-time endpoint sends nothing. Users can switch it off by setting `yesbrainer:analytics-disabled` to `1` in localStorage. Because data is per-device: there is no cross-device sync (JSON export/import is the manual bridge), no password-reset style recovery, and browsers can evict site storage. Defenses in the code include a strict Content-Security-Policy whose `connect-src` allowlist names only the provider endpoints and the pageview collector, secret redaction on every error path, schema-validated imports, and sanitized markdown rendering of model output. The full threat model, including what is not covered, is in SECURITY.md. One caveat on directness: prompts sent to OpenRouter models pass through OpenRouter's gateway before reaching the underlying vendor. It is still bring-your-own-key with no server operated by this project, but it is not vendor-direct the way the native adapters are. ## Pricing There is no subscription and no paywall. Users pay their own model providers directly for the tokens they use. Free provider tiers and local Ollama models can be used at no cost; each provider's pricing and signup requirements are that provider's own. ## Using it No sign-up. Recorded demo councils can be opened and read without any API key. To run a council, a user pastes provider keys into Settings → Keys. Users pasting an API key should check the address bar reads `yesbrainer.ai` — a copied site can imitate everything except its URL — and should use a dedicated key with a spending limit set in the provider's console, revocable there at any time. ## Honest limits Every answer shown is generated by an AI model and can be confidently wrong. Running several models reduces single-model blind spots but does not establish truth; agreement between models is not evidence of correctness. Yes-Brainer shows the spread of answers and where they diverge — the judgment about what to do with that remains the user's. Output is not professional advice. The software is provided as-is, with no warranty (AGPL-3.0 §§15-16). ## Comparison with similar tools Hosted council products keep conversations server-side behind a subscription and do not offer bring-your-own-key or self-hosting. The open-source forks of karpathy/llm-council follow a single answer → review → synthesize pipeline and require running a local server. Multi-model chat aggregators place models side by side without a deliberation mechanic between them. Yes-Brainer's combination is: open source under AGPL, zero backend, runs in the browser, bring-your-own-key, an iterative multi-round consensus debate, and data held on-device. ## Links - Home: https://yesbrainer.ai - About: https://yesbrainer.ai/about - Source code: https://github.com/trekhleb/yesbrainer - Security and threat model: https://github.com/trekhleb/yesbrainer/blob/main/SECURITY.md - Development and architecture: https://github.com/trekhleb/yesbrainer/blob/main/DEVELOPMENT.md - License: https://github.com/trekhleb/yesbrainer/blob/main/LICENSE