Webhook Mode¶
The webhook server provides real-time, interactive code reviews. Mention the bot in a PR comment and it responds — with full conversation continuity across multiple interactions.
What It Does¶
- Listens for GitHub/GitLab webhook events on PR comments and lifecycle events
- Runs the reviewer or worker bot in response to
@mentions - Supports multi-turn conversations within the same PR (conversation continuity)
- Auto-triggers reviews on PR open, push, reopen, or ready-for-review events
Configuration¶
The recommended way to configure the webhook server is with a YAML config file. Environment variables can be used as overrides or as the sole configuration method for simple setups.
Secrets (tokens, webhook secrets, API keys) are kept separate from the config YAML — as environment variables in standalone mode, or in Kubernetes Secret manifests for K8s deployments. See Configuration for the full YAML schema and Environment Variables for all supported variables.
You also need a publicly reachable server (or a tunnel like ngrok for development). See GitHub or GitLab for webhook setup instructions.
Running the Server¶
The fastest way to start the server is with the Makefile:
This uses the config at deploy/local/config.yaml and validates that required env vars are set. See Standalone Deployment for the full setup guide.
For Kubernetes deployment, see Kubernetes Deployment.
You should see:
INFO Starting server on 0.0.0.0:8080 | platforms=['github'] | reviewer=@my-reviewer | allowed_users=...
INFO Server is running, waiting for webhooks...
Triggering Reviews¶
@mention¶
Mention the bot in a PR comment:
The bot reacts with an eyes emoji and then posts a structured code review.
Auto-Trigger¶
The reviewer can run automatically on PR lifecycle events without requiring an @mention:
See Auto-Trigger for the full event mapping and rules.
Multi-Platform Setup¶
To handle both GitHub and GitLab simultaneously, configure tokens for both platforms. Non-secret settings go in the YAML file:
Both platforms share the same bot usernames and allowed users list. Each platform gets its own webhook route (/webhooks/github and /webhooks/gitlab).
What's Different¶
Webhook mode is the only mode with conversation continuity — multi-turn conversations carry context across comments on the same PR. It requires a running server and the Claude Code CLI. See the mode comparison for a full breakdown.
For the complete configuration reference, see Configuration and Environment Variables.
For deployment options, see Deployment.