Skip to main content

Local-first web viewer for Codex CLI and Claude Code session logs

Project description

Codex & Claude History Viewer

Local-first, dependency-free web viewer for Codex CLI and Claude Code session logs.

  • Browse sessions and projects (work dirs)
  • Search sessions by keyword + date range
  • Filter messages by role, and search within a session (highlight + next/prev)
  • Sort sidebar by start time or last activity
  • Highlight interruptions and common error outputs

Not affiliated with OpenAI or Anthropic. “Codex” and “Claude” are trademarks of their respective owners.

Codex UI screenshot

More screenshots

Claude Code UI screenshot

Why

Codex CLI and Claude Code both generate local, machine-readable transcripts (JSONL). This project turns those logs into a fast, searchable “history inbox” you can use to:

  • find past commands/patches/discussions quickly
  • audit tool failures and interruptions
  • compare sessions across days/projects
  • keep everything local (no uploads by default)

Quick start

Requirements:

  • Python 3.8+ (standard library only)
  • A modern browser

Run:

python3 app.py

or install and use the global CLI:

CCHV install
CCHV serve

Open:

By default it reads:

  • Codex logs: ~/.codex/sessions
  • Claude logs: ~/.claude/projects

Indexes (SQLite) are stored by default in ~/.cache/cchv (or $XDG_CACHE_HOME/cchv) unless you set --data-dir.

Configuration

Show all options:

python3 app.py --help

CCHV subcommands:

CCHV --help
CCHV serve --help
CCHV demo --help
CCHV install

Demo data (included)

This repo includes a small set of synthetic Codex/Claude logs under demo/ so you can try the UI without using your own transcripts.

python3 app.py \
  --codex-dir ./demo/codex \
  --claude-dir ./demo/claude \
  --data-dir ~/.cache/cchv/demo

Common examples:

# Store indexes outside the repo (recommended)
python3 app.py --data-dir ~/.cache/cchv

# Same thing via the bundled CLI
CCHV serve --data-dir ~/.cache/cchv

# Bind to LAN (be careful: your logs may contain secrets)
python3 app.py --host 0.0.0.0 --port 8787

# Launch with bundled synthetic logs
CCHV demo

# Install CCHV into ~/.local/bin so it works globally
CCHV install

# Custom log locations (these are the *base dirs* that contain `sessions/` and `projects/`)
python3 app.py --codex-dir ~/.codex --claude-dir ~/.claude

# Faster/slower auto-rescan (seconds)
python3 app.py --scan-interval 2

Using the UI

  • Source: switch between Codex / Claude Code logs.
  • Browse:
    • Sessions: list individual sessions.
    • Projects: group sessions by working directory (cwd).
  • Sidebar sort: top-right dropdown in the sessions list:
    • Start time (default)
    • Last activity
  • Roles: toggle user/assistant/system/developer/tool/other.
  • Role jump: click a message on the right, then use each role row’s ▲/▼ buttons to jump across that role. The n/m counter shows the selected message’s position within that role.
  • Search
    • Left panel: keyword search across sessions + optional date range, with a keyword clear button.
    • Right panel: search within the opened session (highlight + ▲/▼ navigation). The summary uses n/m format.
  • Error highlighting
    • User interruptions (e.g. turn_aborted) are highlighted.
    • Common tool failures (HTTP 4xx/5xx, Traceback/Exception, Status: error, etc.) are highlighted.

Privacy & safety notes

  • Your local transcripts may contain sensitive info (API keys, file paths, proprietary code).
  • If you bind --host 0.0.0.0, anyone on your network may be able to access the UI. Prefer 127.0.0.1.
  • Index files are local SQLite databases; this repo’s .gitignore excludes them.

License

MIT (see LICENSE).

Project details


Download files

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

Source Distribution

codex_claude_history_viewer-0.1.0.tar.gz (32.0 kB view details)

Uploaded Source

Built Distribution

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

codex_claude_history_viewer-0.1.0-py3-none-any.whl (31.1 kB view details)

Uploaded Python 3

File details

Details for the file codex_claude_history_viewer-0.1.0.tar.gz.

File metadata

File hashes

Hashes for codex_claude_history_viewer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1f155cb0a31ebf2a11f78c036dff3c8a466ab140eb76fe11db3d17b9069201f5
MD5 3f4b90cfa47f55a07153462477c35253
BLAKE2b-256 e1cb17b3ba3caae6a32fd82226df03d08742eb3529eda71a012796f65df5e5dc

See more details on using hashes here.

File details

Details for the file codex_claude_history_viewer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for codex_claude_history_viewer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 08b01a85f11d12d9e705d9cceaad59bdddb0177312321e81abff1e1bef3c8fc2
MD5 1eea0600cb578760cc178ca918192aa7
BLAKE2b-256 93acb38683bcb8505b5fa7fdd70ed9a8800c813984aead6acca7ab71f076adca

See more details on using hashes here.

Supported by

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