A VS Code extension that runs a multi-agent AI code review on the file you are editing and displays a rich, structured report directly in the editor — no copy-pasting, no switching tabs.
Features
- Seven specialised review agents run in parallel: static analysis, security, style, logic, architecture (SOLID), test coverage, and documentation.
- Adaptive reports — a 5-line utility snippet gets a concise card; a 500-line module gets a full breakdown with severity sections, SOLID analysis, and an improvement roadmap.
- Inline diagnostics — findings are pinned as VS Code squiggles and appear in the Problems panel.
- Score gauge — an SVG donut ring shows the overall quality score (0–10) with a colour-coded label (Excellent → Critical).
- Severity chips — 🔴 Critical · 🟠 High · 🟡 Medium · 🔵 Low · ⚪ Info counts shown at a glance in the report header.
- 27 languages supported — Python (full static toolchain), JavaScript, TypeScript, Go, Java, Ruby, Rust, C, C++, C#, PHP, Kotlin, Swift, Scala, Bash, SQL, and more (see Supported Languages).
- Multiple LLM providers — OpenAI, Anthropic, and Google Gemini, with per-request model and reasoning-effort selection.
- Dark / light theme — the report panel uses VS Code CSS variables and adapts automatically.
Requirements
- VS Code 1.85 or later.
- The Code Review backend service must be running and reachable (defaults to
http://localhost:8000). See the backend setup section.
Quick Start
- Install the extension (
.vsix) via Extensions → ··· → Install from VSIX….
- Start the backend service (see Backend Setup).
- Open any source file.
- Press
Ctrl+Shift+R (Cmd+Shift+R on macOS) — or open the Command Palette and run Code Review: Run Code Review.
- The report panel opens beside the editor when the review completes.
Extension Settings
All settings are under the codeReview.* namespace and can be changed in File → Preferences → Settings.
| Setting |
Type |
Default |
Description |
codeReview.backendUrl |
string |
http://localhost:8000 |
URL of the Code Review backend service |
codeReview.provider |
openai | anthropic | gemini |
openai |
LLM provider |
codeReview.model |
see below |
gpt-4o |
Specific model to use; overrides the provider default |
codeReview.reasoningEffort |
default | low | medium | high |
default |
Reasoning depth (applies to OpenAI o-series and Anthropic extended thinking) |
codeReview.skipSecurity |
boolean |
false |
Skip the security analysis agent |
codeReview.skipTests |
boolean |
false |
Skip the test coverage agent |
codeReview.skipStyle |
boolean |
false |
Skip the style analysis agent |
codeReview.skipDocs |
boolean |
false |
Skip the documentation analysis agent |
Available Models
| Provider |
Models |
| OpenAI |
gpt-4o, gpt-4o-mini, o1, o1-mini, o3, o3-mini, gpt-4-turbo |
| Anthropic |
claude-fable-5, claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5-20251001 |
| Gemini |
gemini-2.0-flash, gemini-1.5-pro, gemini-1.5-flash |
You can also type any model ID directly into the codeReview.model setting to use a model not listed above.
Reasoning Effort
| Value |
Effect |
default |
No override — provider uses its own default |
low |
Faster, less deliberation — good for simple files |
medium |
Balanced speed and depth |
high |
Maximum reasoning — best for complex or security-critical code |
Reasoning effort maps to:
- OpenAI o1/o3: the
reasoning_effort API parameter.
- Anthropic: extended thinking with a token budget (1 k / 4 k / 10 k tokens).
- Gemini 2.0+: thinking mode with a proportional budget.
- All other models: ignored.
Report Anatomy
┌─────────────────────────────────────────────┐
│ Score gauge │ Score label │
│ (SVG donut) │ 🔴 Critical 2 🟠 High 1 │
│ │ 🔒 Security 1 🏗️ Arch 2 │
├─────────────────────────────────────────────┤
│ 🚨 Critical issues detected — … │ ← alert banner (conditional)
├─────────────────────────────────────────────┤
│ ## 🔴 Critical Issues │ ← severity section
│ ┌─ Finding card ──────────────────────────┐│
│ │ ### [security] Hardcoded API key — L 12 ││
│ │ Problem: … Impact: … ││
│ │ > Fix: move to environment variable ││
│ └─────────────────────────────────────────┘│
│ ## 🟡 Medium Severity │
│ │ Category │ Line │ Issue │ Suggested Fix │ │
│ ## 🏗️ Architecture & Design │
│ │ SOLID checklist + structural notes │ │
│ ## ✅ Improvement Roadmap │
│ │ P0 / P1 / P2 action table │ │
└─────────────────────────────────────────────┘
Backend Setup
The extension is a front-end only — analysis is performed by the Python backend that must run separately.
Docker (recommended)
# Clone the repository
git clone <repo-url>
cd code_analysis_tool
# Copy and fill in your API keys
cp .env.example .env
# Edit .env: set OPENAI_API_KEY (or ANTHROPIC_API_KEY / GEMINI_API_KEY)
# Start the backend
docker compose up --build
The API will be available at http://localhost:8000.
Manual (Poetry)
cd code_analysis_tool
poetry install
cp .env.example .env # fill in API keys
poetry run uvicorn src.api.main:app --host 0.0.0.0 --port 8000 --reload
Environment Variables
| Variable |
Required |
Description |
OPENAI_API_KEY |
If using OpenAI |
Your OpenAI API key |
ANTHROPIC_API_KEY |
If using Anthropic |
Your Anthropic API key |
GEMINI_API_KEY |
If using Gemini |
Your Google Gemini API key |
LLM_PROVIDER |
No |
openai (default) | anthropic | gemini |
Supported Languages
| Tier |
Languages |
What they receive |
| Full |
Python |
All 7 agents + flake8 + ruff + bandit + AST parsing |
| Semgrep |
JavaScript, TypeScript, Go, Java, Ruby, Rust, C, C++, C#, PHP, Kotlin, Swift, Scala, Bash, SQL |
5 agents + semgrep security scanning |
| LLM-only |
R, Dart, Elixir, Lua, Perl, F#, Groovy, PowerShell, Julia, Clojure, Erlang |
5 agents (logic, security, architecture, test coverage, docs) |
Keyboard Shortcut
| Platform |
Shortcut |
| Windows / Linux |
Ctrl+Shift+R |
| macOS |
Cmd+Shift+R |
The shortcut is active when the text editor has focus (editorTextFocus).
Known Limitations
- Reviews are run on the full file content as currently saved. Unsaved changes are included; files outside the workspace are supported if VS Code can open them.
- The backend must be reachable from the machine running VS Code. When using a remote or container workspace, update
codeReview.backendUrl accordingly.
- Very large files (over 10 000 characters by default) are rejected by the backend. The limit is configurable via the
MAX_CODE_LENGTH environment variable.
License
MIT — see LICENSE.
| |