Open-source Agentic code review tool inspired by DevinReview, using Recursive Language Models (RLM)
- Python 3.11+
- Node.js (or Bun)
- uv (recommended for Python package management)
- Deno (Required for sandboxed code execution)
AsyncReview.Code.Review.mp4
-
Install Backend (cr)
# Using uv (Recommended) uv pip install -e . # Or standard pip pip install -e . # Pre-cache Deno dependencies (speeds up first run) deno cache npm:pyodide/pyodide.js
-
Install Frontend (web)
cd web bun install # or npm install
-
Environment Setup Copy
.env.exampleto.envand fill in your API keys:cp .env.example .env
Required variables:
GEMINI_API_KEY: Your Google Gemini API key.GITHUB_TOKEN: GitHub Token (for PR access & higher rate limits).
cr serve
# or
uv run uvicorn cr.server:app --reloadServer runs at http://127.0.0.1:8000.
cd web
bun devOpen http://localhost:3000 in your browser.
No installation needed! Just use npx:
# Review a GitHub PR
npx asyncreview review --url https://github.com/org/repo/pull/123 -q "Any security concerns?"You can also use the tool directly from the terminal:
- Interactive Q&A:
cr ask - One-shot Review:
cr review -q "What does this repo do?" - Help:
cr --help
Review GitHub PRs and Issues directly from the command line:
# Review a PR
npx asyncreview review --url https://github.com/org/repo/pull/123 -q "Any security concerns?"
# Review with markdown output (great for docs/skills)
# Review with markdown output (great for docs/skills)
npx asyncreview review --url https://github.com/org/repo/pull/123 \
-q "Summarize the changes" \
--output markdown
# Quiet mode for scripting (no progress bars)
# Quiet mode for scripting (no progress bars)
npx asyncreview review --url https://github.com/org/repo/pull/123 \
-q "What does this PR do?" \
--quiet --output json
# Use a specific model
# Use a specific model
npx asyncreview review --url https://github.com/org/repo/pull/123 \
-q "Deep code review" \
--model gemini-3.0-pro-previewOptions:
--url, -u: GitHub PR or Issue URL (required)--question, -q: Question to ask (required)--output, -o: Output format:text,markdown,json(default: text)--quiet: Suppress progress output--model, -m: Model override (default: from .env)
If you see errors like Could not find npm:pyodide, run:
deno cache npm:pyodide/pyodide.jsThe first run may take longer as Deno downloads and compiles pyodide (~50MB). Subsequent runs are instant.