Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

CI Status Version License Python Privacy


Overview

When OpenAI Codex CLI can't resume safely, Rescue tells you what actually happened and gets you back to work.

Codex Rescue is a local-first fsck and crash-recovery tool for OpenAI Codex sessions. It diagnoses interrupted or damaged sessions, verifies repository working tree state, and reconstructs a bounded evidence-backed continuation without modifying the original Codex rollout.

[!WARNING] Codex Rescue is experimental alpha software. It is an evidence-gathering release designed to collect real failure cases. See Alpha Limitations below.


Core Commands

Rescue provides four narrow, read-only diagnostic and recovery entry points:

Command Usage Description
sessions codex-rescue sessions Discover and list recent local Codex rollout sessions
doctor codex-rescue doctor --latest Inspect and diagnose a damaged session (read-only)
salvage codex-rescue salvage --latest --fork Create an immutable, content-addressed recovery handoff
verify codex-rescue verify <rescue-id> Detect repository divergence before executing continuation

Confidence Model

Rescue reconstructs facts with explicit, uncompromised confidence levels. Model prose alone is never accepted as source of truth.

Level Badge Meaning & Source of Truth
VERIFIED VERIFIED Directly proven by durable evidence: Git HEAD SHA, working tree diff, tool execution exit code, or durable output record
RECONSTRUCTED RECONSTRUCTED Strongly inferred from available evidence with no unresolved contradictions
UNKNOWN UNKNOWN Cannot be proven safely. UNKNOWN is deliberate. Rescue refuses to guess when execution state is uncertain

[!NOTE] Safety Invariants:

  1. Source rollouts are immutable (doctor, salvage, and verify never write to the original .jsonl file).
  2. No automatic replay — an action whose execution status is UNKNOWN is never automatically re-executed.

Quick Start

1. Installation

Install directly from PyPI:

# Recommended global installation via pipx
pipx install codex-rescue

# Or via standard pip
pip install codex-rescue

2. Workflow Example

# 1. Discover recent Codex sessions
codex-rescue sessions

# 2. Diagnose the latest session
codex-rescue doctor --latest

# 3. Generate an immutable recovery handoff
codex-rescue salvage --latest --fork

# 4. Verify repository state before continuing
codex-rescue verify <rescue-id>

Sample Output

$ codex-rescue doctor --latest

Doctor: UNFINISHED_TOOL_CALL
Findings: UNFINISHED_TOOL_CALL
Repository: /path/to/repo (HEAD a6cfe48)

$ codex-rescue salvage --latest --fork

Salvage: 8f8f4e822c9ce353ed584c5f
Original session untouched: yes
Rescue directory: .codex-rescue/rescues/8f8f4e822c9ce353ed584c5f

$ codex-rescue verify 8f8f4e822c9ce353ed584c5f

Verify: REVIEW_REQUIRED
Review: unfinished action requires inspection before replay
Review: handoff contains load-bearing unknowns

Proven Compatibility & Evidence

Version / Scope Status Proven Real-World Evidence
Codex CLI 0.147.0 Validated Genuine interrupted session diagnosed (UNFINISHED_TOOL_CALL), source rollout preserved, repo state verified
Codex CLI 0.146.1 Smoke-tested Isolated authentication & basic rollout parser validation
Codex 0.145.0-alpha.18 Observed Legacy envelope format compatibility observed
Synthetic Fixtures 5/5 PASS kill_apply_patch, kill_shell_before_result, lost_tail_after_compaction, malformed_jsonl, oversized_payload

Alpha Limitations

[!IMPORTANT] The following limitations are documented honestly. Do not claim recovery guarantees that have not been validated.

  • Compaction recovery — broad real compaction-related recovery is not yet validated; only synthetic fixtures exist.
  • Interactive continuation — automatic fresh continuation depends on terminal/TTY environment (Windows ConPTY limitations noted).
  • Previous versions — validation is focused on Codex CLI 0.147.0; earlier versions are smoke-tested or observed.
  • Side-effect replay — Rescue does not automatically replay unknown side effects; it reports them as REVIEW_REQUIRED.

Privacy & Security

  • 100% Local-First — zero telemetry, zero analytics, zero network uploads, zero cloud dependencies.
  • No private DB mutation — Rescue never modifies state_*.sqlite or internal Codex databases.
  • Secret Redaction — built-in secret redaction automatically filters common API key patterns (sk-*, ghp_*, AKIA*, Bearer tokens).
  • Sanitization Notice — Codex rollouts can contain secrets; sanitize all session files before attaching to public issues.

Development & Verification

# Clone the repository
git clone https://github.com/shleder/codex-rescue.git
cd codex-rescue

# Install in editable mode
pip install -e .

# Run full unit test suite (58 passed, 1 expected skip)
python -m unittest discover -s tests -v

# Run synthetic fixture harness (5/5 PASS)
python -m codex_rescue.harness fixtures --output .validation-output/test

# Run deterministic alpha demo
python scripts/demo_alpha.py

Submit a Recovery Report

The primary goal of this public alpha is collecting real broken Codex sessions to expand our sanitized regression corpus.

Open a Recovery Report →

[!CAUTION] Do NOT upload raw rollout files containing secrets or credentials. Always sanitize session data before attaching.


License

Distributed under the MIT License. Copyright (c) 2026 shleder.

Download files

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

Source Distribution

codex_rescue-0.1.0a2.tar.gz (38.7 kB view details)

Uploaded Source

Built Distribution

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

codex_rescue-0.1.0a2-py3-none-any.whl (42.4 kB view details)

Uploaded Python 3

File details

Details for the file codex_rescue-0.1.0a2.tar.gz.

File metadata

  • Download URL: codex_rescue-0.1.0a2.tar.gz
  • Upload date:
  • Size: 38.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for codex_rescue-0.1.0a2.tar.gz
Algorithm Hash digest
SHA256 1ccffcf19c929cb1b01f313d104d5cde28d2fc2a6097d03bef502a68d438165a
MD5 955d5e42036a07aee5c00a69a2b34012
BLAKE2b-256 493a1f5fb9df8c285216e631767c18deaa69186933a466c476bede7e40f1a1f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for codex_rescue-0.1.0a2.tar.gz:

Publisher: release.yml on shleder/codex-rescue

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file codex_rescue-0.1.0a2-py3-none-any.whl.

File metadata

  • Download URL: codex_rescue-0.1.0a2-py3-none-any.whl
  • Upload date:
  • Size: 42.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for codex_rescue-0.1.0a2-py3-none-any.whl
Algorithm Hash digest
SHA256 18834fc4eced65ce49f1b568fa3db519a1e1ad77e72213bb7d693c9db6776e4a
MD5 da2a35533cf8be94aac6100a8ecc1804
BLAKE2b-256 c4914b8f43e0ac0a523ecf3f3b0d44ce86b7bd338de454c5256a20d72a3618b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for codex_rescue-0.1.0a2-py3-none-any.whl:

Publisher: release.yml on shleder/codex-rescue

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0a2 This release

2 files

Supported by

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