An open-source, self-hosted AI code review bot powered by Vercel.
An open-source, self-hosted AI code review bot powered by Vercel.
An open-source, self-hosted AI code review bot. Deploy to Vercel, connect a GitHub App, and get on-demand PR reviews powered by Claude.
Beta: OpenReview is currently in beta. It was built as an internal project to help the Vercel team test their technologies together. Expect rough edges and breaking changes.
@openreview in any PR comment to trigger a review. Powered by Chat SDK.agents/skills/…
@openreview in a PR comment (optionally with specific instructions)Click the button above or clone this repo and deploy it to your Vercel account.
Create a new GitHub App with the following configuration:
Webhook URL: https://your-deployment.vercel.app/api/webhooks
Repository permissions:
Subscribe to events:
Generate a private key and webhook secret, then note your App ID and Installation ID.
Add the following environment variables to your Vercel project:
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY |
API key for Claude |
GITHUB_APP_ID |
The ID of your GitHub App |
GITHUB_APP_INSTALLATION_ID |
The installation ID for your repository |
GITHUB_APP_PRIVATE_KEY |
The private key generated for your GitHub App (with \n for newlines) |
GITHUB_APP_WEBHOOK_SECRET |
The webhook secret you configured |
REDIS_URL |
(Optional) Redis URL for persistent state, falls back to in-memory |
Install the GitHub App on the repositories you want OpenReview to monitor. Once installed, mention @openreview in any PR comment to trigger a review.
Trigger a review: Comment @openreview on any PR. You can include specific instructions:
@openreview check for security vulnerabilities
@openreview run the linter and fix any issues
@openreview explain how the authentication flow works
Reactions: React with or ❤️ on an OpenReview comment to approve and apply its suggestions. React with or to skip.
OpenReview uses a progressive skill system — the agent only loads specialized instructions when relevant, keeping context focused and reviews thorough. Skills are discovered from .agents/skills/ at runtime.
| Skill | Description |
|---|---|
next-best-practices |
File conventions, RSC boundaries, data patterns, async APIs, metadata, error handling |
next-cache-components |
PPR, use cache directive, cacheLife, cacheTag, updateTag |
next-upgrade |
Upgrade Next.js following official migration guides and codemods |
vercel-composition-patterns |
React composition patterns that scale for component refactoring |
vercel-react-best-practices |
React and Next.js performance optimization guidelines |
vercel-react-native-skills |
React Native and Expo best practices for performant mobile apps |
web-design-guidelines |
Review UI code for Web Interface Guidelines and accessibility compliance |
Create a folder in .agents/skills/ with a SKILL.md file containing YAML frontmatter:
.agents/skills/
└── my-custom-skill/
└── SKILL.md
---
name: my-custom-skill
description: When to use this skill — the agent reads this to decide whether to load it.
---
# My Custom Skill
Your specialized review instructions here...
The agent sees only skill names and descriptions in its system prompt. When a request matches a skill, it calls loadSkill to get the full instructions — keeping the context window clean.
bun install
bun dev
MIT
No open issues yet, or sync has not completed.