Metis is a GitHub App you host yourself. It runs two flows on the same agent engine:
- Review a pull request (automatic). When a PR is opened or updated, an agent clones the branch into an isolated Daytona sandbox, reads the surrounding code, runs your tests and linters, and posts findings inline on the diff. Each finding is tagged with a severity and a category. A summary review with a verdict follows, and a second agent rewrites the PR title and description.
- Turn an issue into a PR (on demand). Pick an issue in the dashboard and a coding agent branches, edits, tests, commits, and pushes. Metis then opens the pull request and keeps the full run so you can replay it.
It works with any model LiteLLM supports (Gemini, GPT, Claude, Mistral, Azure OpenAI, and more), and every repository gets its own sensitivity, custom instructions, and ignore patterns.
You need Docker, a GitHub App you create, an LLM API key, and a Daytona API key.
git clone https://github.com/KacemMathlouthi/metis.git && cd metis
cp backend/.env.example backend/.env # fill in GitHub App, LLM and Daytona credentials
make dev # API, worker, dashboard, PostgreSQL and RedisThen point your GitHub App's webhook at https://<public-api-url>/webhooks/github, sign in at http://localhost:5173, and enable a repository.
The step-by-step guides live in the website docs (source in landing/):
quickstart, GitHub App setup, configuration reference, and architecture.
GitHub webhook ─► FastAPI (verify, record, enqueue) ─► Redis ─► Celery worker
│
Daytona sandbox ◄── agent loop ──► LLM (via LiteLLM)
│
findings, reviews and PRs ──► GitHub · PostgreSQL ──► dashboard
| Path | Contents |
|---|---|
backend/ |
FastAPI API, Celery tasks, agents, tools, Alembic migrations |
frontend/ |
React dashboard (repositories, settings, findings, agent runs) |
landing/ |
Public landing page and docs, deployed as a static site |
make setup # install backend (uv) and frontend (pnpm) dependencies
make infra-up # PostgreSQL, Redis and pgAdmin only
make migrate # alembic upgrade head
make backend-dev # API on :8000
make worker-dev # Celery worker
make frontend-dev # dashboard on :5173
make ci-local # lint, type-check and testsContributions are welcome. Read CONTRIBUTING.md and the Code of Conduct. Report vulnerabilities privately as described in SECURITY.md.
MIT © Kacem Mathlouthi
