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 asBUG,SECURITY, orPERFORMANCE. 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:
| Service | What it does |
|---|---|
| API | FastAPI app. Receives GitHub webhooks, serves the dashboard API, handles GitHub sign-in. |
| Worker | Celery worker. Runs the review, summary, and coding agents. |
| Dashboard | React single-page app for configuration and analytics. |
| PostgreSQL | Stores users, enrolled repositories, reviews, findings, and agent runs. |
| Redis | Job queue between the API and the worker. |
It also relies on three external services that you bring your own credentials for:
| Service | Why it is needed |
|---|---|
| GitHub App | You register your own app. It delivers webhooks and lets Metis read code and post reviews. |
| LLM provider | Any provider supported by LiteLLM: Vertex AI, OpenAI, Anthropic, Mistral, Azure OpenAI, and more. |
| Daytona | Creates 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
ngrokorcloudflaredis enough.
Next steps
- Quickstart: run the whole stack with Docker Compose.
- GitHub App: register the app Metis acts through.
- Configuration: every environment variable and LLM provider setup.
- Architecture: how a webhook becomes a review.