A VS Code extension that integrates OpenCode CLI with inline code review capabilities. Run OpenCode prompts and review file changes with accept/reject functionality, similar to GitHub Copilot.
Features
- Embedded OpenCode Terminal - Full interactive CLI in the sidebar with
/model,/session,/helpsupport - Inline Code Review - Green/red gutter decorations showing changed lines directly in your files
- Accept/Reject Changes - Per-file, per-hunk, or bulk accept/reject with CodeLens buttons
- Sidebar Panel - Dedicated sidebar with Terminal and Review tabs
- State Persistence - Sidebar remembers your session when you switch away and back
- Detect Existing Terminals - Connect to any OpenCode terminal already running in VS Code
Installation
From VS Code Marketplace
- Open VS Code
- Go to Extensions panel (Ctrl+Shift+X)
- Search "OpenCode Review"
- Click Install
From .vsix file
code --install-extension opencode-review-1.0.0.vsix
Prerequisites
- OpenCode CLI installed and available in PATH
- If
opencodeis not in PATH, set the path in VS Code Settings:- File → Preferences → Settings
- Search
opencodeReview - Set
opencodeReview.opencodePathto the full path of youropencodebinary
Usage
Sidebar Panel
Click the OpenCode icon in the activity bar (left side) to open the sidebar.
Terminal Tab
- Click "Start OpenCode" to launch OpenCode in a VS Code terminal
- Use the full interactive CLI with all commands (
/model,/session,/help, etc.) - Or type a prompt in the textarea and click "Run"
- Use "Detect OpenCode" to connect to an existing terminal
Review Tab
- After making changes in OpenCode, click "Detect Changes"
- Changed files appear with green highlights in the editor
- Click file names to open them in the editor
- Use Accept/Reject buttons per file or per hunk
- Accept All / Reject All for bulk operations
Commands
| Command | Description |
|---|---|
OpenCode: New Prompt |
Open the prompt panel |
OpenCode: Accept Change |
Accept change in active file |
OpenCode: Reject Change |
Reject change in active file |
OpenCode: Accept All Changes |
Accept all pending changes |
OpenCode: Reject All Changes |
Reject all pending changes |
OpenCode: View Diff |
Open side-by-side diff view |
Configuration
| Setting | Default | Description |
|---|---|---|
opencodeReview.opencodePath |
opencode |
Path to the opencode CLI binary |
How It Works
- Snapshot - Takes a snapshot of your workspace files
- Run - Opens OpenCode in a terminal for you to interact with
- Detect - Compares files before/after to find changes
- Display - Shows inline diffs with gutter decorations and CodeLens
- Review - Accept keeps changes, reject reverts to original
Workflow
┌─────────────────────────────────────────────────────────────┐
│ Sidebar - Terminal Tab │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ [Start OpenCode] [Detect OpenCode] │ │
│ │ [Type prompt here...] │ │
│ │ [Run] │ │
│ └─────────────────────────────────────────────────────┘ │
│ ● OpenCode is running in terminal │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ OpenCode Terminal (VS Code Integrated Terminal) │
│ Full interactive CLI with /model, /session, /help │
│ █ opencode> │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Sidebar - Review Tab │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ ● 2 pending ● 1 accepted ● 0 rejected │ │
│ │ [Accept All] [Reject All] [Clear] │ │
│ ├─────────────────────────────────────────────────────┤ │
│ │ ▶ src/index.ts +12 -3 [Accept] [Reject] │ │
│ │ ▶ src/utils.ts +5 -2 [Accept] [Reject] │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Editor - Inline Review │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 1 // Original code │ │
│ │ 2 function hello() { │ │
│ │ 3 ● return 'world'; ← green highlight │ │
│ │ 4 } │ │
│ │ [✓ Accept] [✗ Reject] ← CodeLens buttons │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
Features in Detail
Inline Decorations
- Green gutter marks - Lines added/modified by OpenCode
- Background highlighting - Changed lines have subtle green background
- Overview ruler - Changes visible in minimap
CodeLens Integration
- Accept/Reject buttons appear above each changed hunk in the editor
- View Full Diff button to see side-by-side comparison
State Persistence
- Sidebar remembers which tab you were on
- Terminal status is preserved
- Review data persists when switching away
- Expanded files stay expanded
License
MIT