Local-first full-text search across AI coding-agent transcript JSONL files.
Built for the moment when you remember that an agent fixed something yesterday, but not which session, command, patch, or transcript line contains it.
AI coding agents now produce valuable local history: prompts, plans, shell commands, tool output, patches, and postmortems. But the native UX is often session-by-session, while real work spans many sessions.
Public requests for better retrieval include:
- OpenAI Codex: searchable local transcript history across sessions
- Claude Code: in-conversation search and session resume/history UX
This project is an independent local tool, not an official OpenAI or Anthropic product.
- indexes Claude Code-style and Codex-style JSONL transcripts;
- SQLite FTS5 full-text search;
- shows nearby transcript context around each hit;
- filters by agent, role, and timestamp;
- exports a standalone HTML report;
- optional
--redactfor common token/email/key shapes; - no network calls, no telemetry, no model key, no upload;
- standard-library-only runtime.
From GitHub once this repository is public:
pipx install git+https://github.com/lajiaojiang-ai/agent-transcript-search.gitOr with uv:
uv tool install git+https://github.com/lajiaojiang-ai/agent-transcript-search.gitFor local development:
git clone https://github.com/lajiaojiang-ai/agent-transcript-search.git
cd agent-transcript-search
python -m pip install -e .Index default Claude Code / Codex transcript locations if they exist:
agent-transcript-search indexOr index an explicit file/directory:
agent-transcript-search index --root "$env:USERPROFILE\.claude\projects" --db .\.ats\index.dbSearch:
agent-transcript-search search "gateway restart" --db .\.ats\index.dbJSON output with redaction:
agent-transcript-search search "gateway restart" --db .\.ats\index.db --json --redactExport a shareable HTML report:
agent-transcript-search export "gateway restart" --db .\.ats\index.db --output .\gateway-search.html --redactThis repo includes tiny synthetic examples under examples/; they contain no real user data.
python demo.pyThe demo builds a temporary index, searches for gateway restart, and writes an HTML report under a temporary directory.
The index can contain sensitive local transcript text. Keep the SQLite DB private. Use --redact before sharing terminal output or HTML reports.
Redaction is a convenience, not a cryptographic guarantee. Always review exports before publishing them.
- best-effort parsers for Claude Code-style and Codex-style JSONL; other JSONL formats are treated as generic;
- index rebuild is full rebuild, not incremental yet;
- no TUI yet;
- no semantic/vector search yet;
- no official affiliation with OpenAI, Anthropic, or any agent vendor.
Run tests:
python -m unittest discover -s tests -vRun CLI from a checkout without installing:
$env:PYTHONPATH = "src"
python -m agent_transcript_search.cli index --root examples --db .\.ats-demo\index.db
python -m agent_transcript_search.cli search "gateway restart" --db .\.ats-demo\index.db- incremental indexing;
- richer per-agent format adapters;
- TUI result browser;
- saved searches;
- optional watched folders;
- stronger export review checklist.
MIT. See LICENSE.