Rewindo
Prompt-to-code timeline with one-command revert for Claude Code.
Rewindo automatically records every prompt you give to Claude Code and the changes that result, creating checkpoints you can instantly revert to.
Problem solved: Claude breaks something that was working, and you can't remember exactly which prompt had the "good" state. With Rewindo, just list your timeline and revert to any checkpoint.
Features
- Automatic timeline recording - No manual intervention needed
- One-command revert - Roll back to any previous state instantly
- Search & labels - Find checkpoints by prompt text or add custom labels
- Git-based checkpoints - Uses refs (not commits), so your
git log stays clean
- Token-efficient - CLI designed to minimize LLM context usage
- Works offline - Everything runs locally in your repo
Installation
Prerequisites
- Python 3.9+
- Git
- Claude Code
Install the Plugin
Inside any Claude Code session, run these two commands:
/plugin marketplace add utkarshranaa/rewindo
/plugin install rewindo@rewindo-marketplace
That's it. The hooks activate automatically — every prompt is captured and every response creates a checkpoint.
Install the CLI (optional)
The plugin handles recording automatically, but to use commands like rewindo list and rewindo revert from your terminal:
git clone https://github.com/utkarshranaa/rewindo.git
cd rewindo
pip install -e .
This puts the rewindo command on your PATH.
Verify Installation
Inside Claude Code, type /hooks to confirm the rewindo hooks are active. You should see:
- UserPromptSubmit hook (captures prompts)
- Stop hook (creates checkpoints)
Understanding the Timeline
Rewindo tracks two types of changes:
| Actor | Symbol | Meaning |
|---|
| Assistant | A | Changes made by Claude in response to a prompt |
| User | U | Manual edits you made between prompts |
When you view your timeline with rewindo list, you'll see both types of steps:
ID A Date/Time Files Description
---- - ------------------- ------------------------------------- ------------------------------
#5 A 2026-02-01 14:30 +filter.ts (+35/-8) "Add filtering"
#4 U 2026-02-01 14:28 +footer.tsx (+3/-0) "Add footer"
#3 A 2026-02-01 14:15 +button.tsx (+28/-5) "Create login component"
#2 U 2026-02-01 14:10 +styles.css (+2/-1) "Fix navbar CSS"
#1 A 2026-02-01 12:00 +app.tsx (+120/-0) "Setup project"
In this example:
- Steps #1, #3, #5 are Claude's responses to prompts
- Steps #2, #4 are manual edits you made between prompts
This helps you track exactly what changed, whether it was from a prompt or your own edits.
Quick Start
Once the plugin is installed, Rewindo works automatically. Every prompt you submit and every response Claude gives is recorded.
You can run rewindo commands either from your terminal (if you did pip install -e .) or by asking Claude inside a session (e.g., "show me my timeline").
# Prompt: "Add user authentication"
# Prompt: "Add database layer"
# Prompt: "Add API endpoints"
# View your timeline
rewindo list
# Output:
ID A Date/Time Files Description
---- - ------------------- ------------------------------------- ------------------------------
#3 A 2026-01-30 14:22 +api.py (+15/-0) "Add API endpoints"
#2 U 2026-01-30 14:18 +navbar.css (+3/-1) "Manual edits before prompt #3"
#1 A 2026-01-30 14:15 +db.py (+20/-0) "Add database layer"
# Actor column: A = Assistant (prompt), U = User (manual edit)
# Something broke? Revert to when it was working
rewindo label 2 working # Mark checkpoint #2 as working
rewindo revert 2 # Revert to checkpoint #2
# Or just undo the last change
rewindo undo
Commands
rewindo list [--limit N] [--query PATTERN] [--expand] [--expand-chars N]
List timeline entries.
rewindo list # Show last 20 entries (compact, 60 chars)
rewindo list --limit 5 # Show last 5 entries
rewindo list --query api # Search for "api" in prompts
rewindo list --expand # Show longer prompts (200 chars)
rewindo list --expand --expand-chars 500 # Show 500-char prompts
Output format:
#ID Timestamp Files changed Prompt snippet
#17 2026-01-30 14:22 +api.py (+15/-0) +utils.py (+5/-2) "Add pagination..." [+]
#16 2026-01-30 14:15 +types.ts (+8/-0) "Fix TypeScript errors"
The [+] indicator means the prompt is longer than shown. Use --expand to see more without reading the full prompt.
rewindo show <id>