Whence banner
chanmaoganda chanmaoganda

Whence

Productivity community

Description

Local search engine and time machine for your coding agents' transcripts — Claude Code and Codex, entirely on your own machine

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

whence

*Whence did this come?* — a local search engine and time machine for your coding agents' transcripts.

Claude Code and Codex both leave a detailed record of what you asked, what they did and why, and then it is never read again. `whence` makes that record searchable, replayable and attributable — across every agent you use, entirely on your own machine. No telemetry, no uploads.

$ whence sources
harness    files  root
claude       965  ~/.claude/projects
codex          9  ~/.codex/sessions

$ whence "card view"
6 matches across 3 sessions (claude, codex)

2026-07-11 02:04  codex   prompt  /code/acme/dashboard  1498aa04#5
  the card view cannot be scrolled, and the grid view is not laid out right

$ whence show 1498aa04#5        # read the conversation back
$ whence file src/app.rs        # which sessions changed this, and why
$ whence --harness codex ...    # narrow to one agent
$ whence tui                    # browse it: search as you type, read what you find

Why it is not a `grep` over `~/.claude`

The on-disk formats are undocumented event logs, and reading them naively gives wrong answers rather than no answers:

  • A Claude Code response is spread over many lines that each repeat the same usage block. Summing per line overstates output tokens by 93%.
  • A Codex token_count event carries a running session total, not a delta. Summing those overstates output tokens by 4268%.
  • Under both, most records that look like the user are not: tool results, hook output, AGENTS.md, injections.
  • Codex records every prompt and reply twice, in two different streams.
  • The record that says which file an edit touched identifies itself, in both harnesses, with an id that matches nothing else in the file.

Each of these is documented, measured against a real corpus, and pinned by a test. See [CLAUDE.md](CLAUDE.md).

Design

source/{claude,codex} ──▶ model ──┬──▶ index + search (tantivy, jieba)
 per-har