{"id":47363570,"url":"https://github.com/vercel-labs/openreview","last_synced_at":"2026-04-01T22:01:29.493Z","repository":{"id":342628690,"uuid":"1170324144","full_name":"vercel-labs/openreview","owner":"vercel-labs","description":"An open-source, self-hosted AI code review bot powered by Vercel.","archived":false,"fork":false,"pushed_at":"2026-03-06T16:44:33.000Z","size":707,"stargazers_count":431,"open_issues_count":2,"forks_count":26,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-06T19:56:17.094Z","etag":null,"topics":["aisdk","codereview","vercel"],"latest_commit_sha":null,"homepage":"https://openreview.labs.vercel.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vercel-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-02T01:57:16.000Z","updated_at":"2026-03-06T19:55:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vercel-labs/openreview","commit_stats":null,"previous_names":["vercel-labs/openreview"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/vercel-labs/openreview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vercel-labs%2Fopenreview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vercel-labs%2Fopenreview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vercel-labs%2Fopenreview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vercel-labs%2Fopenreview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vercel-labs","download_url":"https://codeload.github.com/vercel-labs/openreview/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vercel-labs%2Fopenreview/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292631,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aisdk","codereview","vercel"],"created_at":"2026-03-18T17:00:36.993Z","updated_at":"2026-04-01T22:01:29.482Z","avatar_url":"https://github.com/vercel-labs.png","language":"TypeScript","readme":"# OpenReview\n\nAn open-source, self-hosted AI code review bot. Deploy to Vercel, connect a GitHub App, and get on-demand PR reviews powered by Claude.\n\n\u003e **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.\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-description=An+open-source%2C+self-hosted+AI+code+review+bot.+Deploy+to+Vercel%2C+connect+a+GitHub+App%2C+and+get+automated+PR+reviews+powered+by+Claude.\u0026demo-image=https%3A%2F%2Fopenreview.labs.vercel.dev%2Fopengraph-image.png\u0026demo-title=openreview.labs.vercel.dev\u0026demo-url=https%3A%2F%2Fopenreview.labs.vercel.dev%2F\u0026from=templates\u0026project-name=OpenReview\u0026repository-name=openreview\u0026repository-url=https%3A%2F%2Fgithub.com%2Fvercel-labs%2Fopenreview\u0026env=GITHUB_APP_ID%2CGITHUB_APP_INSTALLATION_ID%2CGITHUB_APP_PRIVATE_KEY%2CGITHUB_APP_WEBHOOK_SECRET\u0026products=%5B%7B%22integrationSlug%22%3A%22upstash%22%2C%22productSlug%22%3A%22upstash-kv%22%2C%22protocol%22%3A%22storage%22%2C%22type%22%3A%22integration%22%7D%5D\u0026skippable-integrations=0)\n\n## Features\n\n- **On-demand reviews** — Mention `@openreview` in any PR comment to trigger a review. Powered by [Chat SDK](https://chat-sdk.dev)\n- **Sandboxed execution** — Runs in an isolated [Vercel Sandbox](https://vercel.com/docs/sandbox) with full repo access, including the ability to run linters, formatters, and tests\n- **Inline suggestions** — Posts line-level comments with GitHub suggestion blocks for one-click fixes\n- **Code changes** — Can directly fix formatting, lint errors, and simple bugs, then commit and push to your PR branch\n- **Reactions** — React with 👍 or ❤️ to approve suggestions, or 👎 or 😕 to skip\n- **Durable workflows** — Built on [Vercel Workflow](https://vercel.com/docs/workflow) for reliable, resumable execution\n- **Extensible skills** — Ships with built-in review [skills](https://skills.sh) and supports custom skills via `.agents/skills/`\n- **Powered by Claude** — Uses Claude Sonnet 4.6 via the [AI SDK](https://sdk.vercel.ai) for high-quality code analysis\n- **Simple route handler** — Easily define route handlers using [Next.js Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers) for custom API endpoints and webhooks\n\n## How it works\n\n```mermaid\nsequenceDiagram\n    participant U as Developer\n    participant GH as GitHub\n    participant WH as Webhook Handler\n    participant WF as Vercel Workflow\n    participant SB as Vercel Sandbox\n    participant AI as Claude Agent\n\n    U-\u003e\u003eGH: @openreview in PR comment\n    GH-\u003e\u003eWH: Webhook event\n    WH-\u003e\u003eWF: Start workflow\n\n    WF-\u003e\u003eGH: Check push access\n    WF-\u003e\u003eSB: Create sandbox\n    SB-\u003e\u003eSB: Clone repo on PR branch\n    SB-\u003e\u003eSB: Install dependencies\n    SB-\u003e\u003eSB: Configure git\n\n    WF-\u003e\u003eAI: Run agent with PR context\n    AI-\u003e\u003eSB: Read files, run linters, explore code\n    SB--\u003e\u003eAI: Command output\n    AI-\u003e\u003eGH: Post inline comments \u0026 suggestions\n    AI--\u003e\u003eWF: Agent complete\n\n    WF-\u003e\u003eSB: Check for uncommitted changes\n    alt Changes made\n        WF-\u003e\u003eSB: Commit \u0026 push to PR branch\n        SB-\u003e\u003eGH: Push changes\n    end\n    WF-\u003e\u003eSB: Stop sandbox\n\n    U-\u003e\u003eGH: React 👍 or ❤️ on suggestion\n    GH-\u003e\u003eWH: Reaction event\n    WH-\u003e\u003eWF: Start new workflow run\n```\n\n1. Mention `@openreview` in a PR comment (optionally with specific instructions)\n2. OpenReview spins up a sandboxed environment and clones the repo on the PR branch\n3. A Claude-powered agent reviews the diff, explores the codebase, and runs project tooling\n4. The agent posts its findings as PR comments with inline suggestions\n5. If changes are made (formatting fixes, lint fixes, etc.), they're committed and pushed to the branch\n6. The sandbox is cleaned up\n\n## Setup\n\n### 1. Deploy to Vercel\n\nClick the button above or clone this repo and deploy it to your Vercel account.\n\n### 2. Create a GitHub App\n\nCreate a new [GitHub App](https://github.com/settings/apps/new) with the following configuration:\n\n**Webhook URL**: `https://your-deployment.vercel.app/api/webhooks`\n\n**Repository permissions**:\n\n- Contents: Read \u0026 write\n- Issues: Read \u0026 write\n- Pull requests: Read \u0026 write\n- Metadata: Read-only\n\n**Subscribe to events**:\n\n- Issue comment\n- Pull request review comment\n\nGenerate a private key and webhook secret, then note your App ID and Installation ID.\n\n### 3. Configure environment variables\n\nAdd the following environment variables to your Vercel project:\n\n| Variable                     | Description                                                            |\n| ---------------------------- | ---------------------------------------------------------------------- |\n| `ANTHROPIC_API_KEY`          | API key for Claude                                                     |\n| `GITHUB_APP_ID`              | The ID of your GitHub App                                              |\n| `GITHUB_APP_INSTALLATION_ID` | The installation ID for your repository                                |\n| `GITHUB_APP_PRIVATE_KEY`     | The private key generated for your GitHub App (with `\\n` for newlines) |\n| `GITHUB_APP_WEBHOOK_SECRET`  | The webhook secret you configured                                      |\n| `REDIS_URL`                  | (Optional) Redis URL for persistent state, falls back to in-memory     |\n\n### 4. Install the GitHub App\n\nInstall the GitHub App on the repositories you want OpenReview to monitor. Once installed, mention `@openreview` in any PR comment to trigger a review.\n\n## Usage\n\n**Trigger a review**: Comment `@openreview` on any PR. You can include specific instructions:\n\n```\n@openreview check for security vulnerabilities\n@openreview run the linter and fix any issues\n@openreview explain how the authentication flow works\n```\n\n**Reactions**: React with 👍 or ❤️ on an OpenReview comment to approve and apply its suggestions. React with 👎 or 😕 to skip.\n\n## Skills\n\nOpenReview 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.\n\n### Built-in skills\n\n| Skill                         | Description                                                                           |\n| ----------------------------- | ------------------------------------------------------------------------------------- |\n| `next-best-practices`         | File conventions, RSC boundaries, data patterns, async APIs, metadata, error handling |\n| `next-cache-components`       | PPR, `use cache` directive, `cacheLife`, `cacheTag`, `updateTag`                      |\n| `next-upgrade`                | Upgrade Next.js following official migration guides and codemods                      |\n| `vercel-composition-patterns` | React composition patterns that scale for component refactoring                       |\n| `vercel-react-best-practices` | React and Next.js performance optimization guidelines                                 |\n| `vercel-react-native-skills`  | React Native and Expo best practices for performant mobile apps                       |\n| `web-design-guidelines`       | Review UI code for Web Interface Guidelines and accessibility compliance              |\n\n### Adding custom skills\n\nCreate a folder in `.agents/skills/` with a `SKILL.md` file containing YAML frontmatter:\n\n```\n.agents/skills/\n└── my-custom-skill/\n    └── SKILL.md\n```\n\n```markdown\n---\nname: my-custom-skill\ndescription: When to use this skill — the agent reads this to decide whether to load it.\n---\n\n# My Custom Skill\n\nYour specialized review instructions here...\n```\n\nThe 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.\n\n## Tech stack\n\n- [Next.js](https://nextjs.org) — App framework\n- [Vercel Workflow](https://vercel.com/docs/workflow) — Durable execution\n- [Vercel Sandbox](https://vercel.com/docs/sandbox) — Isolated code execution\n- [AI SDK](https://sdk.vercel.ai) — AI model integration\n- [Chat SDK](https://www.npmjs.com/package/chat) — GitHub webhook handling\n- [Octokit](https://github.com/octokit/octokit.js) — GitHub API client\n\n## Development\n\n```bash\nbun install\nbun dev\n```\n\n## License\n\nMIT\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvercel-labs%2Fopenreview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvercel-labs%2Fopenreview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvercel-labs%2Fopenreview/lists"}