Production-safe record-replay for Python. Capture real executions and replay them deterministically
pip install retracesoftware.proxy
PREVIEW RELEASE: Apache-2.0 OSS · ≤2% overhead · Deterministic replay · Python 3.11/3.12 · Backed by PWV
Production-safe recording
Minimal overhead.
Safe in production
Deterministic Replay
Reproduce the exact execution, every time
VS Code debugging
Debug a past production execution
Captures external interactions
Network/DB/time/file I/O
recorded for replay.
No code changes
Works without rewriting your app.
Benchmarked overhead
python -m pip install
--upgrade pip
python -m pip install
retracesoftware.proxy retracesoftware.autobundle
# Installs the Retrace runtime
# Automatically configures support for Python 3.11 / 3.12
# No code changes required
RRETRACE_RECORDING_PATH=./
recordings \
python your_app.py
# Your app runs normally
# External interactions (DB, network, time, file I/O) are captured
# Timing and concurrency are preserved
# The recording is written to disk
retrace run ./recordings
# Or open it directly in VS Code:
code ./recordings/retrace.replay
# Set breakpoints
# Step through code
# Inspect variables and control flow
# Debug the exact execution that already happened
Python 3.12 support is in progress, with broader coverage planned before GA.
It records at the Python runtime layer (not
A re-run often takes a different path.
Retrace lets you debug the exact execution that happened, after the fact.
Retrace records the real execution and lets you replay it deterministically, so you can inspect the actual code path and state.
Retrace records external interactions (DB, API calls, file I/O, time) during a real run, then replays them deterministically in your local debugger — no prod access needed.
Perfect for:
- Debug production-only bugs you can’t reproduce
Replay the exact execution that already happened. No repro steps required. - Reproduce race conditions and timing-sensitive failures
Capture and deterministically replay concurrency, async behavior, and thread interactions. - Stabilise flaky CI tests
Replay the exact failing run to understand and fix non-deterministic test failures. - Debug systems with external dependencies
Reproduce failures involving databases, APIs, file I/O, and other external services. - Investigate failures after the fact
Inspect real code paths and state from incidents that are already over. - Debug non-deterministic systems (including AI calls and agents)
Understand failures where behavior depends on timing, model responses, or external tools.
Get launch updates
One email per month. Demos + release notes. Unsubscribe anytime.