TL;DR
TL;DR: Council of Alignment convenes Claude, ChatGPT, Gemini, and Grok as independent reviewers of your AI-generated code — surfacing consensus, disagreement, and lone warnings before you ship.
What Is Council of Alignment?
Council of Alignment is an open-source multi-model design review tool. You work with one AI as your Lead (Claude, ChatGPT, Gemini, or Grok) to develop your idea, then convene a council of the other three to critique it in parallel. The synthesis is structured: Accord when all agree, Majority when two out of three see it the same way, Dissent when opinions split, and Lone Warnings when a single reviewer catches something the others missed.
It is built by the scifi-signals team and hosted at council.stardreamgames.com. The source is on GitHub under the MIT license.
Source and Accuracy Notes
⚠️ This section is MANDATORY. All links must be verified from actual source, not guessed.
- Project page: council.stardreamgames.com
- Source repository: github.com/scifi-signals/council-of-alignment
- License: MIT (verified via README.md)
- HN launch thread: news.ycombinator.com/item?id=47280698
Setup Workflow
Step 1: Try the Hosted Version
No installation required. Visit council.stardreamgames.com and sign in with GitHub OAuth. You get one free council review to evaluate the tool.
Step 2: Connect Your Own OpenRouter Key (Optional)
For unlimited reviews without the free tier limit, bring your own OpenRouter API key:
- Get a key at openrouter.ai/keys
- Go to Settings on Council of Alignment
- Add your OpenRouter API key
Your key is encrypted at rest using Fernet symmetric encryption (AES-128-CBC).
Step 3: Run a Design Review
Basic review (web UI):
- Pick a Lead AI model and chat through your design or paste your code
- Attach source files or link a GitHub repo for full context
- Click Convene the Council — three reviewers analyze in parallel
- Review the synthesis: each proposed change shows confidence level and source attribution
- Accept or reject each change individually
MCP integration (for Claude Code, Cursor, etc.):
Add this to your MCP client config:
{
"mcpServers": {
"council-of-alignment": {
"command": "uvx",
"args": ["council-of-alignment"],
"env": {
"COUNCIL_API_KEY": "your-api-key"
}
}
}
}
Get your API key from Settings after signing in. Then from your IDE: “Have the Council review this project for security issues.” The agent handles session creation, file attachment, and convening the Council.
Step 4: Self-Host (Optional)
Python 3.11+ and an OpenRouter API key are required.
git clone https://github.com/scifi-signals/council-of-alignment.git
cd council-of-alignment
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
Required environment variables:
export OPENROUTER_API_KEY="***"
export ENCRYPTION_KEY="$(python -c 'from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())')"
export SESSION_SECRET="$(python -c 'import secrets; print(secrets.token_urlsafe(64))')"
export GITHUB_CLIENT_ID="your-oauth-app-id"
export GITHUB_CLIENT_SECRET="your-oauth-app-secret"
GitHub OAuth requires an OAuth App with callback URL http://localhost:8890/auth/callback.
uvicorn app:app --host 0.0.0.0 --port 8890
Deeper Analysis
How the Review Pipeline Works
The council review pipeline runs in three stages:
- Lead AI gap scan — the primary model identifies weaknesses in the design or code
- Three parallel reviewer calls — Claude, ChatGPT, Gemini, and Grok each analyze independently (the Lead is excluded from this round)
- Structured synthesis — proposed changes are categorized by consensus level with source attribution
The result is not an average of opinions — it preserves disagreement. A Lone Warning from a single reviewer is surfaced alongside unanimous Accord, so you do not accidentally override minority insight with majority vote.
Structured Synthesis Categories
| Category | Meaning | |---|---| | Accord | All three reviewers agree | | Majority | Two of three agree | | Dissent | Split opinion, no clear majority | | Lone Warning | One reviewer catches something others missed |
Architecture
- Backend: Python, FastAPI, SQLite
- Frontend: Server-rendered Jinja2 templates, vanilla JavaScript
- AI routing: OpenRouter (one API call for all four models) or direct provider API keys
- Auth: GitHub OAuth
- Key storage: Fernet (AES-128-CBC) encryption at rest
- MCP: First-class MCP server support for IDE integration
Pricing
- Free tier: 1 council review — no credit card required
- BYOK: Add your own OpenRouter key for unlimited reviews, billed to your OpenRouter account
- Self-host: Free and open source under MIT — run your own instance with your own API keys
Practical Evaluation Checklist
- Can sign in with GitHub OAuth and run a review without a credit card
- Lead AI chat works with code paste and GitHub repo attachment
- Council review completes with structured synthesis (Accord / Majority / Dissent / Lone Warnings)
- Each proposed change shows confidence level and source attribution
- MCP server connects from Claude Code or another MCP client
- BYOK mode accepts an OpenRouter API key and uses it for reviews
- Self-hosted instance starts with
uvicorn app:appand environment variables
Security Notes
- API keys for providers are encrypted at rest using Fernet (AES-128-CBC)
- BYOK users self-report usage to their own provider accounts — no key ever touches Council of Alignment servers in plaintext
- GitHub OAuth is the only authentication method — no email/password
- Self-hosted deployments must configure their own GitHub OAuth App credentials
FAQ
Q: What is the difference between the Lead AI and the three reviewers? A: You pick one model as your primary collaborator (Lead) to develop the design or code. When you convene the Council, the three other models review the Lead’s output independently and in parallel. This prevents the Lead from being influenced by its own reviewers.
Q: Does the free tier require a credit card? A: No. One council review is available without registration beyond GitHub OAuth.
Q: Can I use my own API keys instead of OpenRouter? A: Yes. The self-hosted version supports direct provider API keys in addition to OpenRouter. For the hosted version, BYOK mode uses OpenRouter only.
Q: Does it work with Claude Code, Cursor, and other MCP clients? A: Yes. Council of Alignment ships a first-class MCP server. Configure it in your MCP client JSON and prompt the AI to request a council review.
Q: How does it preserve minority opinions rather than averaging them? A: The synthesis step categorizes each proposed change as Accord, Majority, Dissent, or Lone Warning. Lone Warnings are explicitly surfaced — a single reviewer catching something the other two missed is treated as a first-class finding, not noise.
Q: Is the source code available? A: Yes, on github.com/scifi-signals/council-of-alignment under the MIT license.
Conclusion
Council of Alignment solves a real problem with solo AI coding: one model’s blind spots become your blind spots. By pitting three independent AI reviewers against a Lead’s output, it surfaces structured disagreement rather than a false consensus. The MCP server integration makes it natural to use from within Claude Code or Cursor — just ask for a Council review and the agent orchestrates everything.
Free tier works for evaluation. BYOK removes the limit for active development. Self-hosting is available if you want full control over your data.
Try it at council.stardreamgames.com.
Related Posts
ai-setup
Recall – Persistent Memory for Claude Code via MCP Hooks
Recall gives Claude Code a permanent memory store that survives session restarts and context compaction. Four hooks capture and restore context automatically — with cloud SaaS or self-hosted options.
2/28/2026
ai-setup
Sentrial – Catch AI Agent Failures Before Your Users Do
YC W26-backed AI agent observability platform. Trace sessions, detect silent regressions, and A/B test prompts in production before failures reach users.
5/28/2026
ai-setup
IonRouter – Fast Low-Cost AI Inference API
IonRouter is a YC W26 inference API routing open-source and fine-tuned models via an OpenAI-compatible endpoint, built on a C++ runtime optimized for GH200.
5/28/2026