Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Change-by-Change ReviewNew to Visual Studio Code? Get it now.
Change-by-Change Review

Change-by-Change Review

Smith P

| (0) | Free
Review and accept or reject individual file changes. Independent extension compatible with Claude Code; not affiliated with or endorsed by Anthropic.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Change-by-Change Review

Change-by-Change Review logo

Review Claude Code edits directly in VS Code. See the original lines in red, the new lines in green, and choose Accept or Reject for each change.

Works with Claude Code in any permission mode, including auto mode. You can also snapshot a file to review your own edits.

What you can do

  • Accept or reject individual changes, a whole file, or every pending file.
  • Review changes in an inline diff or keep the normal editor with highlights.
  • Find every file awaiting review in the Pending Changes panel.
  • Move between changes with keyboard shortcuts.
  • Undo and redo review decisions alongside your own typing.

Requirements

  • VS Code 1.94 or later, or a compatible editor.
  • Claude Code installed separately for automatic change capture.
  • Node.js available on the PATH where Claude Code runs. Check with node --version.

For WSL, Remote SSH, and dev containers, install the extension in the remote environment and run Claude Code there too.

Get started

  1. Install Change-by-Change Review by smithp from the Visual Studio Marketplace. For compatible editors that use Open VSX, use the Open VSX listing.
  2. Open your project. The extension automatically sets up its Claude Code hook.
  3. Start a new Claude Code session, or run /hooks in an existing session, so the hook is picked up.
  4. Let Claude Code edit a file, then open the file or select it in Pending Changes in the bottom panel.
  5. Use Accept to keep a change or Reject to restore the original lines.

You can also install from the command line:

code --install-extension smithp.change-by-change-review

If you have a .vsix file, use Extensions: Install from VSIX... in the Command Palette. After replacing an installed version, run Developer: Reload Window.

Review your changes

A file awaiting review opens as — Changes to review. By default, the review shows old lines above new lines in a single column.

  • Accept / Reject above a change applies to that change only.
  • Accept file / Reject file at the top applies to every pending change in that file.
  • Click a change's gutter icon to open its change bar and inspect the original lines.
  • Select a change in Pending Changes to jump to it. The status bar also lets you choose a pending file.

Accepting keeps the current text. Rejecting restores the saved original text and saves the file. When every change in a file has been decided, that file leaves the pending list.

The Command Palette contains additional Change-by-Change Review commands:

Command Use it to
Show files awaiting review Choose a pending file.
Accept / Reject all changes in all files Apply a decision across pending files.
Review in inline diff (old red, new green) Switch to the review diff.
Open as plain editor Return to the normal editor.
Snapshot this file (review my own edits from now on) Start a review baseline for your own edits.
Refresh Refresh the pending changes.

Keyboard shortcuts

These are the default shortcuts while the editor has focus:

Action Windows / Linux macOS
Accept change Alt+Y Ctrl+Cmd+Y
Reject change Alt+N Ctrl+Cmd+N
Accept file Alt+Enter Cmd+K, Cmd+Enter
Reject file Alt+Backspace Cmd+K, Cmd+Backspace
Next / previous change Ctrl+K, Alt+Down / Alt+Up Ctrl+Alt+Down / Ctrl+Alt+Up
Undo / redo typing and review decisions in the current file Ctrl+Z / Ctrl+Y or Ctrl+Shift+Z Cmd+Z / Cmd+Shift+Z
Undo / redo the newest review decision across files Ctrl+K, Ctrl+Z / Ctrl+K, Ctrl+Shift+Z Ctrl+Cmd+Z / Ctrl+Cmd+Shift+Z

A comma separates two steps in a shortcut: press the first combination, release it, then press the second. Accept/reject and navigation shortcuts apply when the file has pending changes. You can customize shortcuts in Keyboard Shortcuts.

Alt+Enter keeps its normal behavior when Find is open or a Jupyter code cell is active. Alt+Backspace keeps its normal behavior when a comment box is open. Use the review links in those cases.

On macOS, agentChangeReview.keymap: "single" enables Cmd+Y / Cmd+N while the cursor is inside a change, and Cmd+Enter / Cmd+Backspace inside a review.

Undo and redo

In a file under review, the extension's keyboard shortcuts undo and redo your typing and review decisions in order. Undoing an Accept or Reject brings the change back for review.

Pending Claude Code edits stay in place until you Accept or Reject them. Edit > Undo from the menu can undo typing and text-changing Reject decisions, but cannot undo an Accept because Accept does not change the text. Use the keyboard shortcut or Undo last Accept / Reject for that.

Settings

Open Settings and search for Change-by-Change Review.

Setting Default What it controls
agentChangeReview.openAs inlineDiff Open pending files as an inline diff. Choose highlights to keep the normal editor with change markers.
agentChangeReview.forceInlineDiff true Set VS Code's diff editor to one column and enable diff CodeLens. This also affects other diffs, including Git diffs.
agentChangeReview.codeLens true Show Accept / Reject links above changes and at the top of the file.
agentChangeReview.inlineBar always Show a change bar behind a gutter icon. auto shows it only in the plain editor; never hides it.
agentChangeReview.expandBar false Open change bars automatically.
agentChangeReview.autoAdvance true Move to the next change after a decision.
agentChangeReview.keymap chords Use the default shortcuts or macOS single-key combinations described above.
agentChangeReview.manageHook true Install and maintain the Claude Code capture hook automatically.
agentChangeReview.filesChangedList true Add a Claude Code rule requesting clickable Files changed links at the end of replies that edit files.

The hook

The hook saves a local copy of a file before Claude Code changes it. The extension compares that copy with the current file to show what needs review.

Automatic setup updates Claude Code's user settings in ~/.claude/settings.json, or the directory specified by CLAUDE_CONFIG_DIR. Existing settings are preserved, with a settings.json.bak backup when settings change. The extension also maintains rules/change-by-change-review.md in the same Claude Code configuration directory for the optional Files changed list.

On Windows, these folders are under your user profile. The hook runs with Node.js and uses a full path, so it works with PowerShell, Command Prompt, and Git Bash.

Manual hook setup

If automatic setup fails, first check that node --version works in a terminal on the machine where Claude Code runs. To manage the hook yourself, turn off agentChangeReview.manageHook.

Run Extensions: Open Extensions Folder, open the smithp.change-by-change-review-<version> folder, and run the included installer using its full path:

node "/full/path/to/smithp.change-by-change-review-<version>/hook/install.js"

You can pass additional Claude Code settings files to configure more than one profile:

node "/full/path/to/extension/hook/install.js" "/path/to/claude/settings.json" "/path/to/claude-work/settings.json"

For remote projects, run the installer in the remote environment. Then start a new Claude Code session or run /hooks.

Troubleshooting

Problem What to check
No changes appear Confirm the hook setup message, check Node.js, and start a new Claude Code session. Use Refresh after checking setup.
Changes made by a terminal command are missing Bash capture requires a Git repository and skips Git-ignored files.
Changes appear in WSL but not in the editor Run Claude Code and the extension in the same WSL, remote, container, or local environment.
Another extension version is still running Run Developer: Reload Window after updating or removing an older copy.
The Comments panel opens unexpectedly Set VS Code's comments.openView to never if you do not want it to open automatically.

Limits and local storage

  • Review applies to text files. Binary files and files over 5 MB are skipped. Jupyter notebooks opened in the notebook editor are not decorated.
  • Claude Code changes made through Bash are captured only for files Git does not ignore. Your own saves during a running Bash command can be included in that command's review.
  • Your own typing in a file under review appears as a pending change until accepted.
  • Undo protection covers external edits observed while the extension is running. Restarting the extension host does not reconstruct earlier editor undo history.
  • Saved originals contain full file contents and are stored locally in ~/.claude-review/baselines/. Completed reviews older than seven days are cleaned up at a later extension startup.
  • On Windows, Git Bash tools such as sed -i can change CRLF line endings to LF, making every line appear changed. Reject restores the original endings.
  • On Windows, the folder-name casing used by Claude Code and VS Code must match; the drive-letter casing may differ.

Uninstall

Uninstall the extension, then restart the editor to allow its uninstall hook to remove the managed hook entries and Files changed rule. Saved originals remain in ~/.claude-review/baselines/.

If your editor does not run the uninstall hook, remove the hook manually:

node ~/.claude-review/hook/uninstall.js

In Windows PowerShell:

node "$HOME\.claude-review\hook\uninstall.js"

Support

Report a problem with your editor version, operating system, and steps to reproduce it.

Independent extension by Smith Pateliya (publisher: smithp). Not affiliated with, sponsored by, or endorsed by Anthropic. Claude and Claude Code are trademarks of Anthropic, PBC. References to them describe compatibility with the user's separately installed Claude Code; they are not this extension's name or branding.

License

MIT. See LICENSE.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft