Argus — Self-hosted AI code review
Argus is a self-hosted AI code review platform built with Spring Boot 3, Spring AI, and Vue 3. Review a pasted unified diff or a local Git repository, or connect GitHub, GitLab, and Gitee webhooks to review pull requests automatically. Argus can publish line-level findings and a Markdown summary back to the code host.
The demo uses an animated SVG instead of a binary GIF, allowing GitHub and patch-based PR tools to render and review it without binary-file support.
Try it without an API key: the Docker Compose setup starts in deterministic mock mode, so the complete workflow is available immediately.

Why Argus?
Quick start with Docker
Requirements: Docker Engine with the Compose plugin.
git clone <repository-url>
cd Argus
docker compose up --build -d
Open http://localhost:18080. RabbitMQ management is available at http://localhost:15672 (argus / argus for local use).
Compose enables ARGUS_LLM_MOCK=true by default, so no model key is required. To use a real OpenAI-compatible provider:
ARGUS_LLM_MOCK=false \
ARGUS_LLM_BASE_URL=https://api.deepseek.com \
ARGUS_LLM_API_KEY=replace-me \
ARGUS_LLM_MODEL=deepseek-chat \
docker compose up --build -d
Stop the stack while retaining data:
docker compose down
Delete all local Argus, report, and RabbitMQ volumes:
docker compose down --volumes
Replace the default RabbitMQ credentials and set
ARGUS_ACCESS_TOKENbefore exposing Argus to a network.
How it works
Web UI / local Git / VCS webhook / MCP
│
▼
Parse and filter unified diff
│
▼
Add Java method-level context
│
▼
Finder reviews files in parallel
│
▼
Verifier challenges false positives
│
▼
Validate changed lines, score, and persist
┌───────┼────────┐
▼ ▼ ▼
Web UI PR comments IM notification
Webhook requests return 202 Accepted; RabbitMQ processes the review asynchronously. A persisted review record deduplicates the same commit. Failed messages retry three times and then move to a dead-letter queue.
Public evaluation
The repository contains an inspectable four-case smoke dataset covering SQL injection, null handling, resource management, and clean code. The reproducible built-in mock baseline currently reports 0% recall and 0% precision. This result verifies the evaluation pipeline—it is explicitly not a claim about real-model quality.
See the methodology, limitations, and reproduction commands and the machine-readable result. Run it yourself after startup:
curl --fail --request POST http://localhost:18080/api/eval/run
Configuration
Runtime settings can be changed in the System configuration page and are persisted to data/argus-config.json. Environment variables seed the initial configuration.
Persistent paths are data/ for H2/configuration and reports/ for Markdown reports. Compose stores both in named volumes.
VCS integration
Configure the provider token and secret, then register this endpoint:
http://<argus-host>:18080/api/webhook/{platform}
MCP
Argus exposes an MCP SSE endpoint at http://localhost:18080/sse. Example client configuration:
{
"mcpServers": {
"argus": {
"url": "http://localhost:18080/sse"
}
}
}
The argus_review_diff tool accepts a Git unified diff and returns a structured result. Send X-Argus-Token when access control is enabled.
Local development
Requirements: Java 17+, Maven 3.6+, Node.js 18+, npm 9+, Git, and RabbitMQ 3.8+.
# Terminal 1: infrastructure and backend
docker compose up -d rabbitmq
mvn spring-boot:run
# Terminal 2: Vite development server
cd web
npm ci
npm run dev
Open http://localhost:5173; Vite proxies /api to port 18080. For a production-style local build:
cd web && npm ci && npm run build && cd ..
mvn clean package
java -jar target/argus-0.1.0-SNAPSHOT.jar
API overview
Testing
mvn test
cd web && npm ci && npm run build
Release and roadmap
- v0.1.0 release notes
- Product roadmap
- Reliable review queue PRD
- Reliable review queue test plan
- Architecture skill
- Code implementation skill
Current limitations
- The public dataset has only four cases and is a smoke/regression suite, not a production benchmark.
- Gitee delivery currently falls back to a summary comment.
- The default embedded H2 database is intended for a simple single-instance deployment.
License
No license file is currently included. Until one is added, normal copyright restrictions apply.