A single model misses things and also invents them; four of them agreeing on a SQL injection is a much stronger signal than one of them saying so. Cost scales with the size of the council, so check list_review_config before pointing it at a large diff, and use review_plan first — catching the problem in the plan is cheaper than catching it in the review.
A multi-model review server. Each review fans out to several models through OpenRouter and comes back as a consensus report rather than one opinion.
- review_code for general quality, bugs, performance and security, with review_frontend and review_backend adding the concerns specific to each side — accessibility and UX one way, architecture and security the other
- review_plan applies the same council to an implementation plan before any code exists
- review_git_changes reviews what is staged, what is unstaged, a diff, or one specific commit
- Findings grouped by agreement: unanimous, majority, disagreement where the models split, and single-model findings worth a look
- discuss_with_council opens a multi-turn discussion in which each model keeps its own conversation history — pass the session ID back to continue it
- tps_audit walks a repository for flow, waste, bottlenecks and quality, scanning entry points and data flow, and returns an interactive HTML report or markdown or JSON
- list_review_config to see which models are in the council, and init_config to write a TypeScript or JavaScript config file with model settings, consensus options and LLM parameters
An OpenRouter API key in OPENROUTER_API_KEY — every review calls several models through OpenRouter, so it costs whatever those models cost. Run it over stdio with npx -y @klitchevo/code-council. The same package doubles as a CLI for CI use and can generate a GitHub Actions workflow that posts findings as inline PR comments with one-click fix suggestions.
One command plus a key — npm install -g @klitchevo/code-council, then supply credentials
