Made a mistake with Claude Code? Here's how to undo any operation in just 3 steps using ccundo.
No more wasting tokens asking Claude to fix things. No more manual file restoration. Just quick, safe undo.
Step 1: Install ccundo
First, install ccundo globally:
npm install -g ccundo
That's it. Zero configuration needed.
Step 2: See What to Undo
Navigate to any directory where you've used Claude Code and check the operation history:
ccundo list
You'll see all Claude Code operations:
Operations from Claude Code session:
1. [ACTIVE] file_edit - 2m ago
ID: toolu_01XYZ...
File: /project/src/app.js
2. [ACTIVE] file_create - 5m ago
ID: toolu_01ABC...
File: /project/src/utils.js
3. [ACTIVE] bash_command - 7m ago
ID: toolu_01DEF...
Command: npm install express
Want to see exactly what will change? Preview it:
ccundo preview
You'll get a detailed diff:
📋 Preview: Would undo 1 operation(s):
1. file_edit - 2m ago
Will revert file: /project/src/app.js
- const newFeature = true;
+ const newFeature = false;
console.log('App started');
Step 3: Safely Undo
Now undo the operation:
ccundo undo
Interactive selection with full safety:
⚠️ Cascading undo: Selecting an operation will undo it and ALL operations that came after it.
? Select operation to undo: file_edit (1 ops)
This will undo 1 operation(s):
1. file_edit - 42s ago
Will revert file: /project/test.txt
This is an updated test file with new content.
- Here are some additional sentences.
- This file now contains multiple lines of text.
- Each line demonstrates different content.
? Are you sure you want to undo these 1 operations? Yes
Undoing 1 operations...
✓ File reverted: /project/test.txt
Backup saved to: ~/.ccundo/backups/toolu_01AhVF5HYdmpAz91sUWre3te-current
Completed: 1 successful, 0 failed
That's It!
You've just undone a Claude Code operation without:
- Spending any tokens
- Affecting unrelated changes
- Wasting time on manual fixes
Quick, safe, and precise.
Common Use Cases
Case 1: Wrong File Edited
# 1. Check what changed
ccundo list
# 2. Preview the changes
ccundo preview
# 3. Undo it
ccundo undo
Case 2: Unwanted File Created
# File creation is easily undone
ccundo undo
# → Created file gets deleted (with backup)
Case 3: Multiple Operations to Undo
# Cascading feature undos everything after your selection
ccundo undo
# → Maintains project consistency automatically
What ccundo Can Undo
ccundo handles all Claude Code operations:
- File edits, creations, deletions
- Directory operations
- File/folder renames
- ⚠️ Bash commands (manual intervention required)
How It Works
ccundo:
- Reads Claude Code session files from
~/.claude/projects/
- Parses operation history
- Creates safe backups before changes
- Reverts only the selected Claude Code operations
Everything runs locally - zero token consumption.
Language Support
Prefer Japanese? ccundo has full Japanese support:
ccundo language ja
All messages, prompts, and interface elements switch to Japanese.
Why ccundo?
Before ccundo:
- Ask Claude Code to undo → wastes tokens
- Git reset → affects unrelated changes
- Manual fixes → time consuming
With ccundo:
- 3 simple commands
- Only targets Claude Code operations
- Instant results with safety backups
Get Started
When Claude Code makes a mistake:
-
npm install -g ccundo
- Install once -
ccundo list
- See operations -
ccundo undo
- Fix instantly
No more fear of Claude Code mistakes!
Links
- GitHub: RonitSachdev/ccundo
- npm: ccundo
⭐ Star the repo if this helps you!
What's your biggest Claude Code frustration? Let me know in the comments!
Top comments (5)
PS D:\LearnCusor\tooldiutobe> npm install -g ccundo
changed 54 packages in 7s
16 packages are looking for funding
run
npm fund
for detailsPS D:\LearnCusor\tooldiutobe> ccundo init
error: unknown command 'init'
PS D:\LearnCusor\tooldiutobe> ccundo config --auto-checkpoint true
error: unknown command 'config'
PS D:\LearnCusor\tooldiutobe> ccundo config --max-checkpoints 10
error: unknown command 'config'
PS D:\LearnCusor\tooldiutobe> ccundo list
No active Claude Code session found in this directory.
Make sure you are in a directory where Claude Code has been used.
PS D:\LearnCusor\tooldiutobe> ccundo undo
No active Claude Code session found in this directory.
PS D:\LearnCusor\tooldiutobe> ccundo sessions
Available Claude Code sessions:
0d7dcacd-0015-43a2-b284-a23f8e164792
Project: ///LearnCusor/tooldiutobe
2197ccf0-5f13-4f9c-80e6-f65ddc259ae5
Project: ///LearnCusor/tooldiutobe
22ffbf94-163e-4ae1-8463-2d94a278a3ed
I don't understand why it doesn't work with the ccundo list command
this is so cool. i seriously have no idea how claude could skip on such an important feature to undo and redo. was it an accident? or did they just wanted people to use more tokens. whatever it is this features helps so much!
thanks!
i am pretty sure it was part of their business model, they will get more tokens usage if people use claude to revert it back, might have made them a lot of money tbh...
yea..
Please merge this PR. I also ran into the issue with dots in the path names:
github.com/RonitSachdev/ccundo/pul...