VS Code Extensions
Claude's Changes

Claude's Changes

by userID503

Track and revert file changes without git. Designed for AI-assisted editing in Windsurf and VS Code.

Downloads

38

Rating

— (0)

Version

1.0.2

Last updated

Jun 02, 2026

Track file changes without Git and revert specific chunks with one click. Built as the perfect companion for AI-assisted coding in VS Code, Windsurf, Cursor, and other VS Code-based editors.

Claude's Changes

Claude's Changes in action — sidebar, gutter markers, CodeLens and diff view

Features

  • Changed Files panel (Activity Bar) — live list of every modified file with +added -removed stats. Click any file to open a clean baseline ↔ current diff.
  • Gutter decorations — green (added), yellow (modified), red (deleted) line highlights + overview ruler markers.
  • CodeLens on every hunk — shows change summary (2 removed 5 added), plus one-click ↩ Revert and ✓ Accept buttons right above the changed code.
  • Context menu — Right-click in the editor → Claude: Revert This Chunk.
  • Per-chunk Accept — promote only a specific hunk to the new baseline (great when you like some AI suggestions but not others).
  • Full-file Revert / Accept.
  • Accept All — wipe all baselines at once (treat current state as "new ground truth").
  • Smart baseline capture — first edit after opening a file automatically becomes the baseline. Works even for files you edited before the extension loaded.
  • FTP upload — one-click or bulk upload changed files to a remote server (optional).
  • Zero Git required — everything lives in a local .claude-changes/ folder that is automatically gitignored.

How It Works

  1. You (or an AI) edit a file.
  2. On the first change, the extension silently saves the original content as a baseline.
  3. All future diffs are computed against that baseline.
  4. Reverting a chunk/file restores the text from the baseline.
  5. Accepting a chunk/file updates the baseline to the current text (so future "revert" will go to this new state).

Baselines are stored in <workspace>/.claude-changes/snapshots/ (the whole folder is gitignored automatically).

The Changed Files Panel

  • Located in the Activity Bar (icon looks like a document with arrows).
  • Shows only files that actually differ from their baseline.
  • Inline buttons: Open Diff (↔), Accept, Revert, Upload.
  • Panel badge shows the number of truly changed files.

Gutter + CodeLens + In-Editor Revert

Claude's Changes — Gutter decorations, CodeLens and in-editor revert/accept

Every tracked change gets:

  • Colored gutter bar (green/yellow/red)
  • CodeLens line above the hunk with:
    • Summary of the diff
    • ↩ Revert (revert just this hunk)
    • ✓ Accept (make this hunk the new baseline for future reverts)

You can also select any range and run Claude: Revert This Chunk from the context menu — it will revert all hunks that intersect your selection.

Commands

All commands are available from the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) under the Claude's Changes category.

Command Description
Claude's Changes: Open Diff Open split diff: baseline ↔ current
Claude's Changes: Revert File Revert the entire file to its baseline
Claude's Changes: Revert This Chunk Revert the chunk(s) under cursor or selection (also in editor context menu)
Claude's Changes: Accept File (Clear Baseline) Accept current file state as the new baseline
Claude's Changes: Accept All Accept everything — clear all baselines
Claude's Changes: Accept This Chunk Accept only the hunk under the cursor (via CodeLens)
Claude's Changes: Capture Unsaved Files as Baseline Useful for files that were already dirty when VS Code started
Claude's Changes: Set Baseline = Current File State Explicitly set baseline to whatever is in the editor right now
Claude's Changes: Upload to FTP Upload the selected file
Claude's Changes: Upload All to FTP Upload every changed file
Claude's Changes: Configure FTP Create/edit .claude-changes/ftp.json
Claude's Changes: Refresh Force refresh the panel and decorations

FTP Support (Optional)

Useful when you edit locally with AI and want to push only the changed files to a staging server.

  1. Run Claude's Changes: Configure FTP
  2. Fill in host, user, password, remotePath
  3. Use the Upload commands from the panel or Command Palette

Example .claude-changes/ftp.json:

{
  "host": "ftp.example.com",
  "port": 21,
  "user": "username",
  "password": "password",
  "remotePath": "/public_html"
}

⚠️ The ftp.json file lives inside .claude-changes/ and is also gitignored.

Storage & Git

<your-workspace>/
├── .claude-changes/
│   ├── .gitignore          # contains "*" so nothing is committed
│   ├── snapshots/
│   │   └── <hash>.snap   # your baselines
│   └── ftp.json            # optional
└── ... your project ...

The extension never touches your Git history.

Requirements

  • VS Code ^1.85.0 or any compatible editor (Windsurf, Cursor, etc.)
  • No other dependencies

Installation

Search for "Claude's Changes" in the Extensions view.

From VSIX (any version)

code --install-extension claudes-changes-1.0.0.vsix

For Windsurf:

windsurf --install-extension claudes-changes-1.0.0.vsix

Or use the UI: Extensions → ⋯ menu → Install from VSIX…

Uninstall

code --uninstall-extension userID503.claudes-changes

Or right-click the extension in the Extensions panel → Uninstall.

Development

git clone https://github.com/userID503/claude-changes.git
cd claude-changes
npm install
npm run watch          # or "build"
  • Press F5 in VS Code to launch an Extension Development Host window.
  • Changes to TypeScript are automatically rebuilt by esbuild.

Package a local .vsix

npm run package

The resulting .vsix can be installed with the command above.

Publishing

1. To GitHub (source of truth)

  • Update version in package.json (semantic versioning)
  • Update CHANGELOG.md
  • Commit everything
  • git tag vX.Y.Z
  • git push && git push --tags
  • Create a GitHub Release and attach the .vsix produced by npm run package

2. To the VS Code Marketplace

Prerequisites:

  • You are a member of the userID503 publisher (or create one via vsce create-publisher)
  • Personal Access Token with Marketplace publish rights
npm install -g @vscode/vsce
vsce login userID503
npm run publish

Or manually:

npm run build
vsce publish --no-dependencies

After the first successful publish, the Marketplace badges and links in this README will become live.

License

MIT © 2026 userID503

Credits

Created for fast, safe AI-assisted editing workflows where you want the power of "undo specific AI changes" without forcing everything through Git.


Found a bug or have an idea? Open an issue on GitHub.

Related extensions