Time travel for checkpoints. Record a single MV2 tape, scrub a timeline, and run any moment on demand.
CommitReel stores everything in a single .mv2 file (Memvid's portable format for embeddings + metadata).
That means your entire timeline is one file you can move, archive, or share - no database required.
- Records git checkpoints (or file snapshots if git is missing).
- Renders a video-editor style timeline in the web UI.
- Lets you Run This Moment to boot a checkpoint in an isolated worktree.
- Streams logs and highlights likely blame when a run fails.
- Stores everything in one portable tape file.
Global install:
npm install -g commitreelOr run without installing:
npx commitreel start --webcommitreel start --webThis will:
- create
commitreel.tape.mv2 - watch for git checkpoints
- launch the web UI at
http://0.0.0.0:23404(falls back to23405if busy)
Record a different folder:
npx commitreel start --web --cwd /path/to/projectOpen an existing tape:
npx commitreel web --out /path/to/commitreel.tape.mv2CommitReel is not Replit-only. It works anywhere you have a git repo and a terminal:
- Replit: uses the git commits created by Agent checkpoints.
- Cursor: run the CLI in your local repo and it behaves the same.
- Local projects: any git repo works.
Run This Moment requires a detectable run command. CommitReel checks, in order:
.replitwithrun = "..."package.jsonscripts (dev,start,preview)- fallback files (
index.js,server.js,main.py,app.py)
If your stack is different, add a minimal .replit file with a run command.
You can also override the run command and mode:
npx commitreel start --web --run "python app.py" --run-mode webThe Time-Travel Lab is built to feel like a replay tool:
- Timeline reel with a playhead and checkpoint markers
- Checkpoint inspector with diff stats and metadata
- Live run logs
- Blame panel when a checkpoint fails
- Optional per-checkpoint AI chat
- Creates a git worktree at the checkpoint commit
- Detects the run command from
.replitorpackage.json - Runs it on a fresh port in a temp directory
- Streams logs to the UI
- Cleans up on stop
Your main workspace is never modified.
commitreel start [--out commitreel.tape.mv2] [--web] [--port 23404]
commitreel checkpoint "message" [--out commitreel.tape.mv2]
commitreel web [--out commitreel.tape.mv2] [--port 23404]--out PATHTape file path (default:commitreel.tape.mv2)--cwd PATHWorking directory (default: current directory)--webStart web UI--port NUMWeb UI port (default: 23404, falls back to 23405 if busy)--interval SECONDSGit poll interval (default: 5)--debounce MSFile checkpoint debounce (default: 4000)--capture-filesStore changed file snapshots in MV2--watch-filesWatch files even when git is available--no-seedSkip baseline checkpoint on start--run CMDOverride run command used for checkpoints--run-mode MODERun mode: auto, web, cli (default: auto)--verboseVerbose logs
Per-checkpoint AI chat is supported. Provide a key:
npx commitreel start --web --api-key YOUR_KEY --model openaiEnvironment variables:
COMMITREEL_API_KEYOPENAI_API_KEYorANTHROPIC_API_KEYCOMMITREEL_MODEL(openaioranthropic)
- Best experience when git checkpoints exist.
- File snapshots work without git, but Run This Moment requires git.
- Non-web projects still run; the UI shows logs without a preview URL.
- If a project is misdetected, use
--run-mode clior--run-mode webto override. - Database snapshots are not captured in v1.
Apache-2.0
