A local-only VS Code extension for reviewing your own git branch diffs the way you'd review a
pull request — native inline comment threads, a four-view "PR panel", /tag classification, and a
one-click Ask Copilot round-trip — all offline, with every comment stored as plain JSON on disk.
Status: local-only, single-developer tool. The extension never calls a language model directly — all AI work happens through an external
copilotCLI shell-out. Reviews live under.vscode/searchlight-reviews/(no server, no database, no network), a superset of — and never a clobber of — the originalGururagavendra.local-pr-reviewformat.
Captured with the demo dataset (synthetic, no PII) — see DEMO.md.
- Four-view review panel in a dedicated Activity Bar container, all driven by one in-memory
active comparison (
base= target branch,compare= source branch under review):- Comparison — the current
Base/Comparebranches; click to pick,⇄to swap. - Changed Files — a hierarchical folder tree of
git diff base...comparewith per-file reviewed checkboxes; click opens a native diff. - Commits —
git log base..compare; click copies the full SHA. - Conversations — every comment thread for the active review; click jumps to
file:line.
- Comparison — the current
- Native inline comment threads — comments render as first-class VS Code
CommentControllerthreads in the editor gutter, with reply, resolve / unresolve, and copy commands. /tagclassification — type/in any comment box for autocomplete over the tag set; tags are merged into the thread on submit.- Ask Copilot round-trip — hand a review thread to the
copilotCLI; when the agent writes its reply back intocomments.json, a file watcher reloads and re-renders it in-thread. The extension only ever shells out — it never calls a model itself. - Plain-JSON storage — reviews are human-readable JSON under
.vscode/searchlight-reviews/, created lazily on first mutation so clean repos stay clean. Durable thread ids and v1/v2 back-compat are preserved on every write.
Build and install into your local VS Code from source:
# 1. Install dependencies and compile TypeScript -> out/
npm install
npm run compile
# 2. Package the extension into searchlight-0.0.1.vsix (gitignored)
npx @vscode/vsce package
# 3. Build + install into local VS Code in one step
pwsh -File scripts/deploy-local.ps1
# (or reinstall the existing .vsix without rebuilding:)
pwsh -File scripts/deploy-local.ps1 -InstallOnlyThen run Developer: Reload Window in VS Code to pick up the build. Requires Node.js and the
code CLI on PATH.
Classify a thread by typing / in the comment box and picking from the autocomplete:
/idea · /question · /bug · /change · /todo
(The full configurable set also includes /nit and /praise; edit searchlight.tags to customize.)
Full knowledge base in docs/:
- architecture.md — ownership split, the four views, the
CommentController, and the Ask-Copilot bridge. - data-model.md — on-disk layout, the v2 schema, v1 back-compat, the tag set,
and the durable
seqCounter. - engineering.md — build / package / deploy commands, VM verification, and commit conventions.
See DEMO.md for the repeatable demo path and how to capture the screenshot above.
