Your tokens, your rules. Self-hosted AI code review that runs on your own GitHub runners and learns from your team.
Manki assembles a dynamic review team sized to your PR's content and complexity. Dedup drops repeats from prior reviews, a judge filters noise and classifies what remains, and manki learns your team's conventions over time.
- Multi-stage pipeline — a planner picks the team, agents review in parallel, dedup catches repeats from prior reviews, a judge filters noise and classifies findings by severity
- Adaptive team sizing — 1, 3, 5, or 7 reviewers chosen per PR based on content and complexity
- Smart verdicts — blocks PRs on real issues, approves over style nitpicks; auto-approves when all blocking threads resolve
- Multi-provider — Anthropic, OpenAI, and Gemini, mix-and-match per agent via
.manki.yml - Self-learning memory —
/manki rememberteaches conventions,/manki dismisssuppresses false positives, patterns stick across PRs - Conversational — reply to any review comment to discuss, or use
@manki explain/forgetinline - Self-hosted GitHub Action — your API key, your compute, no SaaS intermediary
- Install the app — github.com/apps/manki-review
- Add a provider secret —
ANTHROPIC_API_KEY,OPENAI_API_KEY, orGEMINI_API_KEY(OAuth subscription paths are also supported, see SETUP.md) - Add the workflow — copy the YAML from the Setup Guide
Full setup guide with memory and troubleshooting: SETUP.md
Manki wakes up when a PR is opened. A fast planner (Haiku) picks the team size and effort, reviewers work in parallel, dedup drops findings that match repeats from prior reviews, and the judge evaluates and classifies what remains. Results land as inline comments plus a summary and verdict. When all blocking threads resolve, manki approves.
See SETUP.md for the full walkthrough.
| Command | What it does |
|---|---|
/manki review |
Trigger a full multi-agent review |
/manki explain [topic] |
Ask about the PR changes |
/manki dismiss [finding] |
Dismiss a finding (stored as suppression in memory) |
/manki remember <instruction> |
Teach it something for future reviews |
/manki remember global: <instruction> |
Teach globally (applies to all repos) |
/manki check |
Check thread resolution and auto-approve if clear |
/manki forget <text> |
Remove a learning matching the text |
/manki forget suppression <pattern> |
Remove a suppression matching the pattern |
/manki help |
Show all commands |
You can also use @manki as the command prefix, or reply to any review comment to start a conversation. Tip: edit a comment to add /manki if you forgot to include it.
Create .manki.yml in your repo root:
auto_review: true
auto_approve: true
exclude_paths: ["*.lock"]
review_level: auto # auto | small | medium | large
instructions: |
This is a Rust project. Focus on ownership and error handling.
models:
planner: claude-haiku-4-5
reviewer: claude-sonnet-4-6
judge: claude-opus-4-6
dedup: claude-haiku-4-5See .manki.yml.example for all options, or SETUP.md for the full guide.
Secrets are masked, PR content is sanitized before posting, and memory access is restricted to repo collaborators. See SETUP.md for the full security model.
AGPL-3.0

