Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Change TrackerNew to Visual Studio Code? Get it now.
Change Tracker

Change Tracker

shreedhar vellayaraj

|
4 installs
| (0) | Free
Ground-truth, file-level review of edits made by Claude Code (or anything else). Snapshot a checkpoint, see the real diffs per file, and Accept or Reject each one. No git, local only.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Change Tracker — Per-File Accept/Reject

A VS Code extension that gives you ground-truth, file-level review of edits made by Claude Code (or anything else: yourself, another agent, a script).

The idea comes from the gap you noticed: Claude Code's "what I built" summary is the model describing its own work, so it can be wrong or incomplete. This extension ignores descriptions entirely. It reads the actual files on disk, compares them to a snapshot you took, and lets you Accept or Reject each changed file individually — the way Copilot Chat lets you accept/reject per file.

No git operations. Everything is stored locally.

How it works

  1. Take a checkpoint before you let Claude Code make changes. The extension snapshots the current contents of your tracked files into local storage (the extension's own per-workspace storage folder — not your repo, not git).
  2. Let Claude Code edit. It writes to disk as usual.
  3. The Change Tracker panel (activity bar, left) lists every file that now differs from the checkpoint, with +added (green) / -removed (red) line counts and an M / A / D status.
  4. Click a file to open a real diff (Checkpoint ↔ Working). It jumps straight to the first edited region rather than the top of the file. Use the diff editor's next/previous-change arrows (top-right of the diff editor) — or the keyboard shortcuts — to step through every other edit in that file.
  5. Hover a file and use the inline buttons:
    • ✓ Accept — keep the change. The checkpoint advances to the new content, and the file leaves the list.
    • ⟲ Reject — restore the file to its checkpoint state on disk. (For a newly added file, Reject deletes it — sent to Trash so it's recoverable. For a deleted file, Reject recreates it.)
  6. Accept All / Reject All are in the panel's … overflow menu.

Because it diffs the filesystem, it is completely tool-agnostic and trustworthy: whatever landed on disk is what you see, no matter what any chat panel claimed.

Install / run

You need Node.js and VS Code.

Option A — try it instantly (Extension Development Host):

npm install
npm run compile

Then open this folder in VS Code and press F5. A second VS Code window opens with the extension loaded. Open your project in that window and use the Change Tracker panel.

Option B — install it permanently as a .vsix:

npm install
npm install -g @vscode/vsce   # one-time
vsce package                  # produces change-tracker-0.1.0.vsix

Then in VS Code: Extensions panel → … → Install from VSIX… → pick the file.

Typical session with Claude Code

1. Open your project in VS Code.
2. Change Tracker panel → Take Checkpoint.
3. Ask Claude Code to do its thing.
4. Change Tracker shows the real changed files. Click each to verify the diff.
5. Accept the ones that are right; Reject the ones that aren't.

Settings

Setting Default What it does
changeTracker.include **/* Files to snapshot at checkpoint time.
changeTracker.exclude node_modules, .git, dist, out, build, … Files to ignore. VS Code's files.exclude / search.exclude also apply.
changeTracker.maxFileSizeKB 1024 Files larger than this are skipped (keeps it fast).
changeTracker.autoRefresh true Re-scan automatically when files change on disk.

Privacy / data

Everything stays on your machine. The extension makes no network requests and sends no telemetry — its only imports are the VS Code API, Node's crypto (for local file hashing), and path. The webview runs under a strict default-src 'none' content-security policy, so it cannot load anything remote. Checkpoint snapshots are written to the extension's own per-workspace storage folder on your disk, and git is never touched.

Tests

npm test runs the unit tests for the diff-count logic (Node's built-in test runner; no extra dependencies). The filesystem/UI behaviors are covered by the manual checklist in CHECKLIST.md in the source tree.

Limitations (v0.1)

  • Single workspace folder. It tracks the first folder in a multi-root workspace.
  • Text files only. Binary files (detected by a NUL byte) and files over the size limit are skipped.
  • Open + unsaved editors: Reject overwrites the file on disk. If you have unsaved changes to that file in an editor, save or close it first to avoid a reload conflict.

The panel is a webview styled with VS Code's own theme tokens, so the green/red counts and M/A/D badges follow your active color theme (they reuse the same colors git uses in the Source Control view).

Why not just use git or raise a PR to Claude Code?

You asked specifically to avoid git automation and to keep things local — done. And the core of Claude Code is proprietary, so there's no PR to send for this behavior; a local VS Code extension is the right shape. See the chat for how to file the idea with Anthropic if you want.

Project layout

src/extension.ts                 activation, commands, file watcher, accept/reject
src/baselineStore.ts             local snapshot + manifest persistence
src/changeModel.ts               enumerates files, diffs against the checkpoint
src/webviewProvider.ts           the changed-files panel (webview; colored +/- counts)
src/baselineContentProvider.ts   serves checkpoint content for the diff editor
src/diffUtil.ts                  LCS-based +added / -removed line counting

MIT licensed.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft