Manki

Multi-stage, multi-agent AI code review for GitHub — self-hosted, provider-neutral.

A planner picks the team, agents review in parallel, a judge filters the noise.

How it works

Multi-stage pipeline

Planner, Reviewer, Judge, Dedup. Each stage has a specific job; the judge filters noise before you see findings.

Bring your own model

Configure Claude today; multi-provider support coming soon. Your API key, your compute.

Open source, self-hosted

Runs as a GitHub Action in your repo. No SaaS dependency, no vendor lock-in, no subscription required.

The review pipeline

Planner

Picks team size and effort based on the PR

Reviewer

Parallel specialist agents produce findings

Judge

Evaluates, filters, classifies findings by severity

Dedup

Filters findings that match previously-dismissed ones

Why Manki?

Self-hosted

Your code never leaves your CI runner. No data shared with third-party SaaS platforms.

Multi-stage

Planner + parallel reviewers + judge. Not a single LLM call — a coordinated review team.

Review memory

Learns from your feedback. Dismiss a finding and Manki won't raise it again. Add custom patterns to teach it what matters to your team.

Provider-neutral

Bring your own API key, swap models freely. No lock-in to a specific vendor.

Open source

Inspect, fork, customize. No black box — you can read every prompt and every line of code.

No subscription

Pay only for API usage. No per-seat fees, no monthly plans, no surprise invoices.

Get started in 3 steps

1

Install the GitHub App

Grant manki access to post review comments on your repositories.

Install manki-review →
2

Add your API key

Set your Claude Code OAuth token as a repository secret. An Anthropic API key also works as an alternative.

gh secret set CLAUDE_CODE_OAUTH_TOKEN --repo <owner>/<repo>
3

Add the workflow

Create .github/workflows/manki.yml in your repository:

name: Manki

on:
  pull_request:
    types: [opened, synchronize]
  pull_request_review:
    types: [submitted, dismissed]
  issue_comment:
    types: [created, edited]
  pull_request_review_comment:
    types: [created]

permissions:
  contents: read          # read repo files and diffs
  pull-requests: write    # post review comments and approvals
  issues: write           # create nit issues when configured
  id-token: write         # OIDC token for GitHub App identity
  actions: read           # verify workflow run is legitimate

jobs:
  review:
    if: github.actor != 'manki-review[bot]'
    concurrency:
      group: manki-${{ github.event_name }}-${{ github.event.comment.id || github.event.pull_request.number || github.event.issue.number || github.run_id }}
      cancel-in-progress: true
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'
      - name: Install Claude Code CLI
        run: npm install -g @anthropic-ai/claude-code
        env:
          CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
      - name: Manki Review
        uses: manki-review/manki@v4
        with:
          claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}

See it in action

Real reviews on real PRs — no staged demos.

run dedup before judge to fix stale summary View review →
embed version in `manki-bot` comment marker View review →
progress dashboard — stage grouping, icons, no pre-planner flicker View review →

FAQ

Does manki work without Claude?
Not yet, but multi-provider support is planned. Today it requires an Anthropic API key or a Claude Max subscription.
How much does it cost to run?
You pay only for API usage. A typical PR review costs $0.05–$0.50 depending on diff size and model.
Is my code sent to third parties?
Your code is sent to your configured AI provider's API (e.g., Anthropic). Manki itself stores nothing.
How do I switch from a hosted review tool?
Add manki to your workflow, disable the old tool. Manki uses standard GitHub PR comments, no migration needed.
Can I customize the review team?
Yes. Configure specialist agents in .manki.yml — name, focus area, and how many run per review.