Skip to main content

Time-travel debugger and shareable replay for Claude Code sessions.

Project description

rewind

Time-travel debugger and shareable replay for Claude Code sessions.

CI PyPI version Python versions License: MIT Coverage: 87%

rewind tui — timeline of a Claude Code session

Watch the 30-second live demo (MP4 · 691 KB)

pip install rewindx       # PyPI package; binary is `rewind`
rewind cc setup           # wires up Claude Code hooks (idempotent)
# ...use Claude Code normally...
rewind tui                # browse the most recent session
rewind goto 6             # restore the file system to just before event #6
rewind export --format markdown --out session.md

Local-first, no API keys, MIT licensed.

What it does

Claude Code does dozens of tool calls per session. The agent's transcripts are JSONL, hard to read, and impossible to replay. git diff shows files but not the reasoning. When the agent breaks something subtle, you have nothing to fall back on. rewind closes that loop:

  • Observability — every prompt, tool call, file edit, and cost recorded in a per-session SQLite event store with content-addressed blobs.

  • Recoveryrewind goto <seq> restores the file system to any prior point. Each rollback creates a checkpoint so rewind undo is one command:

    rewind goto + undo, recorded live

  • Shareable replayrewind export renders the session as a privacy-masked Markdown or text transcript. (GIF and MP4 backends ship in 0.2.)

Status

Pre-launch alpha (v0.1.0). The core pipeline is production-grade: 131 tests, 87% branch coverage, mypy strict, ruff clean, multi-OS / multi-Py CI. The non-interactive TUI is what you see above; full scrubbable TUI lands in 0.2.

What it captures

Hook Stored event Snapshots
SessionStart session_start
UserPromptSubmit user_prompt
PreToolUse pre_tool before-content of every Edit / Write / MultiEdit path
PostToolUse post_tool after-content + classification (productive / wasted / neutral)
Stop session_end totals (cost, tokens, events)

CLI

rewind --version
rewind cc {setup,uninstall,status} [--scope user|project]
rewind capture {session-start,user-prompt,pre-tool,post-tool,session-end}    # reads stdin
rewind sessions {list,show,delete}
rewind tui [SESSION_ID] [--seq N]
rewind goto SEQ [--session ID] [--cwd PATH] [--force] [--dry-run]
rewind undo
rewind stats [SESSION_ID] [--json]
rewind export [SESSION_ID] [--format text|markdown] [--out PATH] [--no-mask]

Storage layout

~/.rewind/
├── config.toml                  # optional, all fields have sensible defaults
├── current_session.txt          # active session id
├── checkpoints/                 # one JSON per rollback (used by `rewind undo`)
└── sessions/
    └── <session_id>/
        ├── events.db            # SQLite, WAL mode, schema v1
        └── blobs/<aa>/<bb>/<sha256>

Per-session storage isolates blast radius: deleting one session is one rm -rf, nothing else is affected.

Privacy

  • Local-only: zero network calls. No telemetry. Ever.
  • rewind export masks file contents to head/tail and redacts env-shaped secrets by default. Pass --no-mask to opt out explicitly.
  • Add .rewind/ to .gitignore if you keep a per-project home.

Documents

Sister projects

rewind is one corner of an ecosystem of open-source tools for Claude Code:

Project Concern Repo
spent cost tracking https://github.com/loplop-h/spent
debtx code quality https://github.com/loplop-h/debtx
mcpguard MCP security https://github.com/loplop-h/mcpguard
rewind observability + recovery (this repo)

License

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rewindx-0.1.4.tar.gz (40.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rewindx-0.1.4-py3-none-any.whl (45.0 kB view details)

Uploaded Python 3

File details

Details for the file rewindx-0.1.4.tar.gz.

File metadata

  • Download URL: rewindx-0.1.4.tar.gz
  • Upload date:
  • Size: 40.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for rewindx-0.1.4.tar.gz
Algorithm Hash digest
SHA256 88ae9121455fd4e3e0eba3e144896b23b70267311e40731dc2954d12e1432621
MD5 20547c56e660b31b4c2af8281f8486db
BLAKE2b-256 6c7c67e59fc692c8c054fe6c06332f21600ec29861560c4e8fafcf089eaa25c0

See more details on using hashes here.

File details

Details for the file rewindx-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: rewindx-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 45.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for rewindx-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f969b80d0979ed6ef04336af5c7e262e2d82f78f3ccfe30b7bc3ad1606d5a20e
MD5 d0f19f53bc57148c4e2c08f41a26740a
BLAKE2b-256 eb4786c9bd8fc934e5da26c4421437cc9959bf75b810460ced3f6c83da8cfac2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page