LLM Council talks to every council member — OpenAI, Anthropic, Google, xAI, Meta, and more — through a single API endpoint provided by OpenRouter. Instead of creating and managing separate API keys for each AI provider, you purchase credits on OpenRouter and use one key for everything. This guide walks through account creation, key configuration, and how the key flows through the application.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/karpathy/llm-council/llms.txt
Use this file to discover all available pages before exploring further.
What OpenRouter provides
OpenRouter is a unified API gateway that normalizes hundreds of LLMs behind a singlePOST https://openrouter.ai/api/v1/chat/completions endpoint. Every request you make to LLM Council — council member queries in Stage 1 and Stage 2, the Chairman call in Stage 3, and background title generation — goes to this one endpoint with an Authorization: Bearer <your-key> header. OpenRouter handles routing to the underlying provider, billing, and rate limiting transparently.
Setting up your account and key
Go to openrouter.ai and create a free account. No model-specific agreements are needed — OpenRouter handles provider terms on your behalf.
Navigate to the Credits section of your dashboard. You can add a one-time credit balance or enable automatic top-up so your council never gets interrupted mid-conversation. Frontier models (GPT-5, Claude Opus, Gemini Pro) cost more per call than mid-tier models; the model list shows per-token pricing for every option.
Go to the Keys section and click Create Key. Give it a descriptive name (e.g.,
llm-council-local). The key will be displayed once — copy it now. It begins with sk-or-v1-.The
.env file is listed in .gitignore and will not be committed to version control. Never paste your API key directly into config.py or any other tracked file.If the backend is already running, stop it and restart it so it picks up the new environment variable:
Credit consumption per message
Every user message triggers a fixed number of model calls. WithN council members:
| Stage | Calls | Description |
|---|---|---|
| Stage 1 | N | Council members answer the question in parallel |
| Stage 2 | N | Council members rank each other’s answers in parallel |
| Stage 3 | 1 | Chairman synthesizes the final response |
| Title generation | 1 | google/gemini-2.5-flash generates a 3–5 word title (first message only) |
| Total | 2N + 2 | Per message (2N + 1 for follow-up messages) |