Skip to content

Docs

Introduction

Metis is an AI code reviewer that runs as your own GitHub App. It reviews pull requests, writes PR summaries, and can turn a GitHub issue into a pull request. These docs explain how to run it on your own infrastructure.

What Metis does

  • Pull request reviews. When a PR is opened, reopened, or receives new commits, an agent checks out the branch in an isolated sandbox, explores the code, and posts findings inline on the diff. Each finding has a severity (INFO, WARNING, ERROR, CRITICAL) and a category such as BUG, SECURITY, or PERFORMANCE. A final review with a verdict (approve, request changes, or comment) closes it out.
  • PR summaries. A second agent runs at the same time. It rewrites the PR title and appends a summary of the change to the PR description.
  • Issue → PR. From the dashboard, you can launch a coding agent on any issue. It branches, edits code, runs tests, commits, pushes, and opens a PR.
  • Dashboard. A web app where you sign in with GitHub, choose which repositories Metis reviews, tune review settings, and browse findings and agent runs.

What you run

A self-hosted Metis deployment has five services of its own:

ServiceWhat it does
APIFastAPI app. Receives GitHub webhooks, serves the dashboard API, handles GitHub sign-in.
WorkerCelery worker. Runs the review, summary, and coding agents.
DashboardReact single-page app for configuration and analytics.
PostgreSQLStores users, enrolled repositories, reviews, findings, and agent runs.
RedisJob queue between the API and the worker.

It also relies on three external services that you bring your own credentials for:

ServiceWhy it is needed
GitHub AppYou register your own app. It delivers webhooks and lets Metis read code and post reviews.
LLM providerAny provider supported by LiteLLM: Vertex AI, OpenAI, Anthropic, Mistral, Azure OpenAI, and more.
DaytonaCreates the sandboxes where agents clone and run code. Use Daytona Cloud or host it yourself.

Requirements

  • Docker with Docker Compose, to run the stack the easy way. To run without containers you need Python 3.10+, uv, Node.js 20+, and pnpm.
  • A GitHub account (personal or organization) that can create GitHub Apps.
  • An API key for an LLM provider, or a Google Cloud project with Vertex AI enabled.
  • A Daytona API key.
  • A public HTTPS URL that reaches the API, so GitHub can deliver webhooks. On a laptop, a tunnel such as ngrok or cloudflared is enough.

Next steps