# Proval

> Self-hosted LLM code review agent that connects to GitLab, Forgejo, and GitHub, letting teams bring their own model and run reviews on their own infrastructure.

Proval is a self-hosted AI code review agent built by Dowon Seo and released under the AGPL-3.0 license. It connects to GitLab, Forgejo, and GitHub via webhooks, runs a multi-agent review loop against any OpenAI-compatible LLM endpoint, and posts findings directly on pull requests and issues — all without sending code to a third-party SaaS. The project was created in July 2026 and is actively developed, with the author describing it as early-stage but functional.

## What It Is

Proval sits between your Git host and your LLM of choice. When a pull request opens or receives a meaningful push, Proval reads the diff, groups changed files into review units, runs specialist sub-agents in parallel to investigate each group, and then produces a consolidated review with findings sorted by severity. Inline comments are posted directly on the affected lines for GitHub, GitLab, and Forgejo. It is not an IDE assistant like Copilot or Cursor — it is a team-layer review tool that operates at the Git host level.

## How the Agent Loop Works

The review pipeline follows a fixed sequence on every repository event:

- **Load context** — PR metadata, git diff, and existing code are gathered
- **Planning agent** — groups related changed files into logical review units
- **Specialist sub-agents** — run concurrently, one per file group; each can explore the codebase independently to catch cross-file issues and hidden dependencies
- **Writing agent** — consolidates findings into a summary with inline comments grouped by severity

The same flow applies to issue replies: Proval leaves a comment when an issue opens and can respond to follow-up comments, either always or only when @mentioned.

## Deployment Model

Proval ships as a single Docker image (`ghcr.io/seoes/proval:latest`) and is designed to be running in under three minutes with fewer than ten lines of configuration. Two ports are exposed: 7900 for the dashboard and 7901 for the webhook receiver. Deployment options include:

- **Docker Compose** — the recommended path; requires only an `ENCRYPTION_KEY` environment variable
- **Docker run** — single-container alternative with the same environment variables
- **Kubernetes** — a single-replica reference manifest is documented; uses SQLite on a PersistentVolumeClaim with a `Recreate` strategy

SQLite is the backing store. For HTTPS, the docs recommend placing nginx or Caddy in front of Proval.

## Bring Your Own Model

Proval works with any OpenAI-compatible Chat Completions API endpoint. Supported configurations documented in the project include:

- **OpenAI** and any OpenAI-compatible gateway
- **Ollama** and **llama.cpp** for fully local, on-premises inference
- **OpenRouter** for routing to multiple hosted models
- **Anthropic** and **Gemini** are listed as planned first-class integrations

The model endpoint, base URL, API key, and model ID are configured through the dashboard. Because review context goes only to the endpoint the operator configures, teams running a local model keep all code on their own network.

## Git Provider Support

Proval connects to Git hosts via webhooks and provider APIs:

- **GitHub** — via a GitHub App
- **GitLab** — via a personal access token and project webhooks; self-hosted GitLab is explicitly supported
- **Forgejo** — via a personal access token and repository webhooks; Gitea and Codeberg work through the same Forgejo-compatible API path

Repository-level settings control review behavior: off, first push only, or every push. Threaded reply behavior (always reply vs. reply only when @mentioned) is also configurable per repository.

## Current Status

The repository was created in July 2026 and last pushed in August 2026. The author describes the project as early-stage with rough edges and missing features, and is actively developing it based on issue feedback. Planned features listed in the README include custom user prompts, authentication and authorization, SSO support, LLM provider OAuth integrations, false-positive reduction, rate limiting, per-user response filtering, and model benchmarking. A public demo is available at demo.proval.app for trying the product without a local install.

## Features
- Pull request review with multi-agent pipeline
- Inline comments on affected lines of code
- Threaded reply support for PR and issue comments
- Issue comment automation
- Bring your own LLM (OpenAI-compatible endpoints)
- Local model support (Ollama, llama.cpp)
- GitLab, Forgejo, and GitHub integration
- Webhook-driven automation
- Activity tracking with token usage logging
- Docker Compose single-image deployment
- Kubernetes deployment support
- Per-repository review policy settings
- Concurrent specialist sub-agents per file group
- Planning agent for file grouping
- Writing agent for consolidated review output

## Integrations
GitHub, GitLab, Forgejo, Gitea, Codeberg, OpenAI, Ollama, llama.cpp, OpenRouter, Anthropic (planned), Gemini (planned)

## Platforms
LINUX, WEB, API, CLI

## Pricing
Open Source

## Version
latest

## Links
- Website: https://proval.app
- Documentation: https://proval.app/docs
- Repository: https://github.com/seoes/proval
- EveryDev.ai: https://www.everydev.ai/tools/proval
