Automated AI code reviews powered by Claude Code. Assign a reviewer on your merge request — Claude reviews the code, tracks progress in real time, and follows up when you push fixes.
Works with GitLab and GitHub out of the box.
Developer pushes code
│
▼
GitLab/GitHub webhook ──► Review server receives event
│
▼
Queue deduplicates & schedules
│
▼
Claude Code runs review skill
│
┌─────────┼─────────┐
▼ ▼ ▼
Agent 1 Agent 2 Agent N
(Archi) (Tests) (Quality)
│ │ │
└─────────┼─────────┘
▼
MCP server reports progress
│
▼
Dashboard shows live status
│
▼
Review posted on MR/PR
│
▼
Dev pushes fixes ──► Auto follow-up
Each review runs a configurable set of specialized audit agents — Clean Architecture, SOLID, Testing, DDD, Code Quality, and more. Define your own agents per project to match your team's standards.
{
"agents": [
{ "name": "clean-architecture", "displayName": "Clean Archi" },
{ "name": "security", "displayName": "Security" },
{ "name": "testing", "displayName": "Testing" }
]
}A built-in Model Context Protocol server gives Claude structured tools to report progress, manage review phases, and queue actions on discussion threads — replacing fragile text-marker parsing with typed tool calls.
| MCP Tool | Purpose |
|---|---|
get_workflow |
Read current review state and agent list |
start_agent / complete_agent |
Track per-agent progress |
set_phase |
Advance review phases |
get_threads |
Fetch MR/PR discussion threads |
add_action |
Queue thread actions (resolve, reply, comment) |
Powered by p-queue with:
- Concurrency control — limit parallel reviews (default: 2)
- Deduplication — prevents duplicate reviews within a configurable time window
- Graceful cancellation — abort running reviews via dashboard or API
- Memory guard — auto-kills if RSS exceeds 4 GB
- Retry on failure — failed jobs clear deduplication so they can be re-triggered immediately
A WebSocket-powered dashboard shows live review progress:
- Phase and agent-level progress bars
- Running / queued / completed review counts
- Review history with duration, scores, and error details
- Log stream for debugging
- Auto-reconnection with exponential backoff
When a developer pushes fixes after a review, Claude automatically:
- Re-reads the discussion threads
- Checks if blocking issues are resolved
- Resolves threads on GitLab/GitHub
- Posts a follow-up summary with updated score
This creates an iterative review loop, not just a one-shot check.
| Feature | GitLab | GitHub |
|---|---|---|
| Webhook trigger | Reviewer assigned | Review requested or needs-review label |
| Thread actions | Resolve, reply, comment | Resolve, reply, comment |
| Auto-followup | On MR push | On PR push |
| Authentication | glab CLI (OAuth) |
gh CLI (OAuth) |
No API tokens needed — both platforms use secure CLI-based OAuth.
Review behavior is defined by Claude Code skills — Markdown files in your project that tell Claude what to audit and how. Templates included for frontend, backend, and API reviews in English and French.
npm install -g reviewflowreviewflow initThe interactive wizard will:
- Configure server port and usernames
- Generate webhook secrets
- Scan your filesystem for git repositories
- Set up MCP server integration with Claude Code
For non-interactive setup: reviewflow init --yes
reviewflow start
# Dashboard at http://localhost:3847Then configure a webhook on your GitLab/GitHub project pointing to your server.
reviewflow validateFor detailed setup, see the Quick Start Guide.
| Command | Description |
|---|---|
reviewflow init |
Interactive setup wizard |
reviewflow start |
Start the review server |
reviewflow stop |
Stop the running daemon |
reviewflow status |
Show server status |
reviewflow logs |
Show daemon logs |
reviewflow validate |
Validate configuration |
| Init Flag | Description |
|---|---|
-y, --yes |
Accept all defaults (non-interactive) |
--skip-mcp |
Skip MCP server configuration |
--show-secrets |
Display full webhook secrets |
--scan-path <path> |
Custom scan path (repeatable) |
| Topic | Link |
|---|---|
| Quick Start | guide/quick-start |
| Configuration Reference | reference/config |
| Project Configuration | guide/project-config |
| Review Skills Guide | guide/review-skills |
| MCP Tools Reference | reference/mcp-tools |
| Architecture | architecture |
| Deployment | deployment |
| Troubleshooting | guide/troubleshooting |
| Endpoint | Method | Description |
|---|---|---|
/dashboard/ |
GET | Web dashboard |
/health |
GET | Health check |
/status |
GET | Queue status |
/webhooks/gitlab |
POST | GitLab webhook receiver |
/webhooks/github |
POST | GitHub webhook receiver |
/api/reviews |
GET | List reviews |
/api/reviews/cancel/:jobId |
POST | Cancel a running review |
/ws |
WS | Real-time progress updates |
npm run dev # Dev server with hot reload
npm test # Tests in watch mode
npm run test:ci # Tests (CI mode)
npm run typecheck # TypeScript validation
npm run lint # Biome linting
npm run verify # All checks (typecheck + lint + test)See CONTRIBUTING.md for guidelines.
MIT — Damien Gouron