Skip to main content

Grep every Claude Code session you've ever run.

Project description

cc-transcript

Grep every Claude Code session you've ever run. The lossless Rust parser reads Claude Code's on-disk JSONL at 169 MB/s; the compiled CLI greps it and renders one line per event, 25 ms cold.

CI PyPI License PolyForm Noncommercial

Get started

uvx cc-transcript list

Every session is already on disk under ~/.claude/projects. list finds them newest first, and stats collapses one into a screenful:

Terminal running 'uvx cc-transcript stats' — one session summarized as counts, kinds, models, and tool names

Driving with an agent? Paste this:

/plugin marketplace add yasyf/cc-transcript
/plugin install cc-transcript@cc-transcript

The plugin's skill teaches Claude to answer "what did I ask you yesterday" from its own history, funneling through the CLI instead of reading raw JSONL.

No Claude Code? Point any agent at the CLI
Use `uvx cc-transcript` to investigate my Claude Code sessions: `list` finds
transcripts on disk, `stats` summarizes one, `grep` searches content, and `show`
renders one compact line per event. Start by listing my newest sessions and
summarizing the most recent one. Docs: https://yasyf.github.io/cc-transcript/

Use cases

Ask Claude what you asked Claude yesterday

Yesterday's session is a megabyte of JSONL, and pasting it into a chat blows the context window. Render the spine instead:

uvx cc-transcript show --signal --tail 20 ~/.claude/projects/<project>/<session>.jsonl

--signal keeps only the substantive user and assistant turns. One line per event, a few hundred tokens for the whole exchange. With the plugin installed, skip the command and ask Claude directly; its skill runs this funnel for you.

Find the session where you fixed that bug

The fix happened weeks ago, in one of a few hundred transcripts. Search them all:

uvx cc-transcript grep "TranscriptExpiredError" --project cc-transcript

Hits print under their transcript's path, each line carrying its raw event index; feed an index back into show --range to re-read the conversation around the fix. grep searches your newest 50 transcripts by default; --all takes it to every session on disk, and a no-match run exits 1 so it scripts cleanly.

Debug a token blowup from transcript evidence

A session burned through the context window and you want the culprit, not a guess. Rank the evidence:

uvx cc-transcript stats --per-file --project myapp

Each block reports text, thinking, and tool-io bytes plus per-tool call counts; the blowup stands out as an outsized tool io line. Then grep --tool <name> --with-result pins it to the exact calls.

Script it from Python

The CLI's funnel is four commands; your own tooling wants the events themselves. parse turns a path into a Transcript of typed lazy views, with the noise already dropped inside the engine:

from cc_transcript import NOISE_SPEC, discover, parse

transcript = parse(discover()[0], drop=NOISE_SPEC)
print(len(transcript.events), "events after the noise drop")

discover() lists every transcript on disk newest first, stream fans a whole corpus across the parse pool, and resolve finds one session by UUID. The getting-started guide builds this out to a composed filter and a sentiment score.

More in the docs

  • The Python library turns a transcript into typed lazy views, a composed filter, and a score in a dozen lines.
  • Filtering events covers composable clauses, specs, and the ready-made NOISE_SPEC.
  • Sentiment scoring buckets conversations and scores them around any inference engine.
  • Feedback mining runs detectors, confidence calibration, and LLM verdict passes over your corpus.
  • The Rust engine is the implementation — parsing, filtering, scoring, and mining — its correctness pinned by hand-owned literals and golden fixtures.
  • API reference documents the complete typed surface, from TranscriptEvent to SessionActivity.

Read the docs for the full guide. Licensed under PolyForm Noncommercial 1.0.0.

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

cc_transcript-14.5.0.tar.gz (12.1 MB view details)

Uploaded Source

Built Distributions

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

cc_transcript-14.5.0-cp313-abi3-manylinux_2_28_x86_64.whl (27.9 MB view details)

Uploaded CPython 3.13+manylinux: glibc 2.28+ x86-64

cc_transcript-14.5.0-cp313-abi3-manylinux_2_28_aarch64.whl (27.6 MB view details)

Uploaded CPython 3.13+manylinux: glibc 2.28+ ARM64

cc_transcript-14.5.0-cp313-abi3-macosx_11_0_x86_64.whl (27.6 MB view details)

Uploaded CPython 3.13+macOS 11.0+ x86-64

cc_transcript-14.5.0-cp313-abi3-macosx_11_0_arm64.whl (27.5 MB view details)

Uploaded CPython 3.13+macOS 11.0+ ARM64

File details

Details for the file cc_transcript-14.5.0.tar.gz.

File metadata

  • Download URL: cc_transcript-14.5.0.tar.gz
  • Upload date:
  • Size: 12.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cc_transcript-14.5.0.tar.gz
Algorithm Hash digest
SHA256 8f9ee2d6ce67d93d5bdbb64fae68522ca304aaede3fb4bca704d2c3e4bd81ddc
MD5 342277d140ece7bb53c380648f9677af
BLAKE2b-256 2e3fe53dc219513fdb196f4a583af75260e424c594830f4317598b635231d4e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_transcript-14.5.0.tar.gz:

Publisher: release-pypi.yml on yasyf/cc-transcript

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cc_transcript-14.5.0-cp313-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cc_transcript-14.5.0-cp313-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 14e0928df66a44ea56b868fdb0d18b3561c5439d60432a09addbfa3109a7311e
MD5 282d17dff135ab3db775634344d6e531
BLAKE2b-256 1202c871a5233be6e68e48b8fce4415c47f4cb15a4aa2e8e27cbb2142dc1726f

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_transcript-14.5.0-cp313-abi3-manylinux_2_28_x86_64.whl:

Publisher: release-pypi.yml on yasyf/cc-transcript

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cc_transcript-14.5.0-cp313-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cc_transcript-14.5.0-cp313-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fc7b9752d4cffb7e00f7bae9d819abb19020bbabedb1c9090302fee58b6b17e6
MD5 2c23f65157eb6f0b3905bea8ddf896b6
BLAKE2b-256 db7b2f3434b5b65947df7b11ab0e4e9fa6ea75f56d2ec9591d38c894313ce0d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_transcript-14.5.0-cp313-abi3-manylinux_2_28_aarch64.whl:

Publisher: release-pypi.yml on yasyf/cc-transcript

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cc_transcript-14.5.0-cp313-abi3-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for cc_transcript-14.5.0-cp313-abi3-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 eae6d8a46c2af3a8db76a490a795cc0806cafc09f60591e825f1f194d339b27b
MD5 fc03fb7e6377ce6720e70674bb6ecc40
BLAKE2b-256 fab341562689a6ad195cac1aabc571156e0b1a3f6b00be5b6d85b8acd9593ec1

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_transcript-14.5.0-cp313-abi3-macosx_11_0_x86_64.whl:

Publisher: release-pypi.yml on yasyf/cc-transcript

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cc_transcript-14.5.0-cp313-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cc_transcript-14.5.0-cp313-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87ed1e50f557d5ba69dd12c6ea465a9198b1508da735c097f64e2cade9f9a8ef
MD5 743e10a98a4e4705a70f06a447a50f77
BLAKE2b-256 4cb0bc0c34933944e12172e0abb71c87d502327448bc8d98918eea51bb8fc0a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_transcript-14.5.0-cp313-abi3-macosx_11_0_arm64.whl:

Publisher: release-pypi.yml on yasyf/cc-transcript

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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