Codex Explorer is a local Codex session manager. The cx command indexes ~/.codex/sessions/**/*.jsonl so you can search, preview, and resume old Codex sessions without remembering the exact date.
Codex Explorer is early, work-in-progress software. It is useful today, but the data model and interface are still evolving.
Codex Explorer is an independent project and is not affiliated with, endorsed by, or sponsored by OpenAI.
- Rust and Cargo
- The Codex CLI available as
codexon yourPATHforcx resume - A terminal with TUI support
From this checkout:
cargo install --path . --lockedCargo installs the cx binary into ~/.cargo/bin. Make sure that directory is on your PATH, then verify the installed command:
cx --versionTo reinstall from a newer checkout:
cargo install --path . --locked --forceFrom GitHub:
cargo install --git https://github.com/Tobiadefami/codex-explorer --lockedcx
cx reindex
cx list
cx search "turnstile worker"
cx show <session-id>
cx resume <session-id>Run cx without a command to open the terminal session browser. The browser opens immediately with cached sessions and refreshes the index in the background.
TUI keys:
- type to search
Backspaceedits searchUp/Downmoves selectionashows all projectspreturns to the current directoryPgUp/PgDnscrolls the previewEnterresumes the selected sessionEscquitsqquits when the search box is empty
cx stores its search index in your platform data directory under cx/index.sqlite. On Linux this is typically ~/.local/share/cx/index.sqlite.
The index is local SQLite data. It contains session metadata, source file paths, titles, searchable text, and full user/assistant message text so cx show, search, and previews work without reparsing every JSONL file each time. Treat this index as private local data, because Codex sessions may contain prompts, code, file paths, command output, and other sensitive project context. Use --db <PATH> to write the index somewhere else.
cx reads Codex session files from ~/.codex/sessions by default. Use --sessions-dir <PATH> to index a different directory.
Run tests:
cargo testRun the full local check before opening a pull request:
cargo fmt --check
cargo test
cargo clippy --all-targets -- -D warnings
cargo package --allow-dirty --no-verify --offlineRun against fixture data:
cargo run -- --db /tmp/cx.sqlite --sessions-dir tests/fixtures reindex
cargo run -- --db /tmp/cx.sqlite search turnstileMIT