No description
|
|
||
|---|---|---|
| src | ||
| .gitignore | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Makefile | ||
| README.md | ||
| UI.txt | ||
chist
Rust-based ingester and terminal UI for OpenAI Codex CLI history. chist collects JSON/JSONL transcripts beneath ~/.codex/**, normalizes them, and stores messages in a local SQLite database that is ready for full-text search and browsing via a ratatui interface.
Features
- SQLite-backed storage with automatic schema creation and FTS5 integration.
- Deduplicated inserts using SHA-256 canonical hashes to avoid double imports.
- Flexible ingestion via glob patterns and optional per-day filtering.
- Ratatui-driven TUI with live keyword search, list navigation, and detailed view.
Getting Started
Prerequisites
- Rust toolchain (Rust 1.78 or newer is recommended). Install via rustup.
Setup
# from project root
cargo fmt
cargo clippy --all-targets --all-features -- -D warnings
Build & Run
# Ingest Codex history into the default database (~/.chist.sqlite)
cargo run -- ingest
# Ingest a specific day from a non-default history export
cargo run -- ingest --date 2025-10-28 "~/Downloads/codex-export/*.jsonl"
# Launch the ratatui browser (uses the same database by default)
cargo run -- view
Common flags:
--db <path>: store or read from an alternate SQLite file.--date YYYY-MM-DD: only ingest entries that fall on the given day (falls back to file mtime when timestamps are missing).- Additional positional arguments are treated as glob patterns. Defaults to
~/.codex/**/*.jsonland~/.codex/**/*.jsonwhen omitted.
Development Tasks
A simple Makefile is provided for convenience:
make fmt # rustfmt
make lint # clippy with warnings as errors
make check # cargo check
License
MIT