No description
Find a file
2025-10-30 00:20:30 -04:00
src fix: strip timeline filter highlights and lock ctrl navigation 2025-10-30 00:20:30 -04:00
.gitignore Update .gitignore 2025-10-28 14:18:06 -04:00
AGENTS.md add AGENTS.md 2025-10-29 10:39:13 -04:00
Cargo.lock feat: ui improvements 2025-10-29 12:22:26 -04:00
Cargo.toml feat: ui improvements 2025-10-29 12:22:26 -04:00
Makefile feat: initial 2025-10-28 12:39:19 -04:00
README.md feat: initial 2025-10-28 12:39:19 -04:00
UI.txt feat: ascii art 2025-10-28 19:37:35 -04:00

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/**/*.jsonl and ~/.codex/**/*.json when 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