Skip to content
Open source · KacemMathlouthi/metis

Your AI
code companion

An open-source GitHub App with two jobs: review every pull request you open, and turn the issues you pick into pull requests. Self-hosted, with the LLM of your choice.

What Metis does

Reviews the pull requests you open, and opens pull requests for the issues you pick. Keep scrolling to deal the deck.

01 · PR reviews

Reviews that read the whole codebase

Every opened or updated pull request gets reviewed. Metis explores the surrounding code, not just the diff, and posts findings on the exact lines, tagged by severity and category.

02 · Issue → PR

From issue to pull request, hands-off

Launch a coding agent on any GitHub issue. It branches, edits code, runs your tests and linters, pushes, and opens a PR for you to review.

03 · PR summaries

Every pull request explains itself

A second agent runs alongside the review. It rewrites vague titles and appends a clear summary of what changed, so reviewers start with context.

04 · Any LLM

Bring the model you trust

Built on LiteLLM. Use Gemini, GPT, Claude, Mistral, Azure OpenAI, or a model you host yourself. Switching is one environment variable.

05 · Dashboard

See everything your reviewer sees

Choose which repositories get reviewed, tune each one, browse every finding, and replay agent runs step by step.

Agents with real tools

Neither agent guesses from a diff. Both work inside a copy of your repository, the way an engineer would.

Knows what to look for

Every finding carries a category and a severity, and every review ends with a verdict, so critical issues never drown in nits. Drag the lens to look closer.

  • Bug
  • Security
  • Performance
  • Maintainability
  • Documentation
  • Testing
  • Style
  • Critical
  • Error
  • Warning
  • Info
  • Approve
  • Request changes
  • Comment
  • SQL injection
  • Race conditions
  • Resource leaks
  • Leaked secrets
  • N+1 queries
  • Missing tests
  • Swallowed errors

Runs your code

Both agents run your tests and linters in the sandbox: the reviewer to back up its claims, the coder to prove its change works.

Isolated by design

Every review and every coding run gets a fresh Daytona sandbox, deleted when it ends. Agent tools never touch your servers.

Your rules

Tune review sensitivity and ignored files per repository, and give coding agents extra instructions when you launch them.

Findings as it goes

Comments land on the PR while the agent is still working, not in one batch at the end.

Every run on record

Each Issue → PR run keeps its full conversation and every tool call, so you can replay exactly how a pull request was built.

Verified before it opens

Metis confirms the agent's branch actually landed on GitHub before it opens the pull request.

How it works

Two flows on the same engine: one reviews the code you write, the other writes code for you to review.

Automatic · every PR

Review a pull request

Open or update a PR and the review starts on its own.

  1. 1

    A PR is opened

    GitHub sends a signed webhook. Metis verifies it, records a pending review, and answers in milliseconds.

  2. 2

    Work is queued

    A review job and a summary job go onto a Redis queue, so slow LLM calls never block your webhooks.

  3. 3

    An agent investigates

    A worker clones the PR branch into a fresh Daytona sandbox. The agent reads files, searches the codebase, and runs tests and linters.

  4. 4

    Feedback lands on the PR

    Findings appear inline as the agent finds them, then a summary review with a verdict. The PR title and description are updated too.

On demand · any issue

Turn an issue into a PR

Pick an issue in the dashboard and a coding agent takes it from there.

  1. 1

    Pick an issue

    Choose any open issue from the dashboard and launch an agent, with optional instructions for how to approach it.

  2. 2

    A sandbox spins up

    A worker clones your default branch into a fresh Daytona sandbox, with git credentials scoped to your GitHub App.

  3. 3

    The agent codes

    It creates a branch, edits the code, runs your tests and linters, then commits and pushes its work.

  4. 4

    A PR opens for review

    Metis checks the branch landed on GitHub and opens the pull request. The full run is saved so you can replay every step.

It works where you work

No new tool to adopt. Metis lives in your repository: it reviews the pull requests you open and answers issues with pull requests of its own, just like a teammate would.

  • Reviews arrive as inline PR comments
  • Issues come back as ready-to-review PRs
  • Your keys, your infrastructure

Boring tech, on purpose

Built from open-source parts you already know how to run, and the model provider you already use.

Runs on

  • FastAPI

    Webhooks & REST API

  • Celery

    Background agents

  • Redis

    Job queue

  • PostgreSQL

    Reviews, findings & runs

  • Daytona

    Isolated sandboxes

  • React

    Dashboard

Thinks with

  • Gemini

    via Vertex AI

  • OpenAI

    GPT models

  • Anthropic

    Claude models

  • Mistral AI

    Mistral models

  • Azure OpenAI

    Your deployments

  • LiteLLM

    100+ more providers

Questions, answered

The short version of what people ask before they self-host Metis.

Can't find your answer? Open an issue on GitHub.

Run it yourself

Metis is free and open source. Bring your own GitHub App, LLM key, and Daytona account, and the whole stack starts with one command. Your code only goes to the services you configure.

Read the quickstart
terminal
git clone https://github.com/KacemMathlouthi/metis.git
cd metis

# add your GitHub App, LLM and Daytona keys
cp backend/.env.example backend/.env

# API, worker, dashboard, Postgres and Redis
make dev