Borrowing it
Nothing to install: this file belongs to jakemarsh/ccthread. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/jakemarsh/ccthread/main/CLAUDE.mdgit clone --depth 1 https://github.com/jakemarsh/ccthreadWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/jakemarsh/ccthread/claude-md)<a href="https://agentmods.dev/instructions/jakemarsh/ccthread/claude-md"><img src="https://agentmods.dev/badge/instructions/jakemarsh/ccthread/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/jakemarsh/ccthread/claude-md"><img src="https://agentmods.dev/badge/instructions/jakemarsh/ccthread/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.02891 | $0.02891 |
| Opus 5.5 | $0.01156 | $0.01156 |
| Sonnet 5.5 | $0.00578 | $0.00578 |
| Haiku 4.5 | $0.00289 | $0.00289 |
Grade A, and why
ccthread CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 174 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md — ccthread
Context for future agents working in this repo. Reading the code is fine; reading this first will save you time.
Why this exists
Claude Code writes every session to ~/.claude/projects/<encoded-project>/<session-uuid>.jsonl. Raw JSONL is unreadable for agents and humans. ccthread turns any session (or any slice) into clean markdown and offers cross-project search. The six target use cases:
- Finding things in past conversations
- Learning from past mistakes
- Reviewing/summarizing rounds of work for teammates
- Finding answers or values discussed before
- Reviewing conversations to create skills out of past processes (or enhance them)
- Reviewing conversations to populate a project's
CLAUDE.md
Stack & key decisions
- Bun + TypeScript. Chosen over C for portability, simplicity, and
bun build --compile— which emits a single cross-platform binary with the Bun runtime embedded. - Streaming everywhere. Real session files go up to 100+ MB / 35k lines. Never load a file whole. All parsing flows through
src/parser/stream.tswhich usesBun.file().stream()+ line splitter. - Ship a compiled binary. Users get
ccthreadas a single executable; Bun isn't required at runtime. - Plugin with a tiny dispatcher. The plugin repo stays ~few KB.
plugin/bin/ccthreaddetects OS/arch on first run and downloads the matching release asset into${CLAUDE_PLUGIN_DATA}/bin/, caches it, then execs it. - No SQLite index in v1. Streaming scan is plenty fast (sub-second for
findacross 11k files on an M-series Mac). v2 can addbun:sqlitefor offset caching. - Thinking on by default. Agents reviewing past work usually want the reasoning.
--no-thinkingflips it off. - Tool results truncated to 40 lines by default.
--tool-details fullshows everything;nonehides them entirely. - Pager is opt-in. Default is plain stdout (agent-friendly; humans can
| lessthemselves).
Architecture
src/
cli.ts # citty-based entry; dispatches subcommands
commands/ # one file per subcommand (projects, list, show, find, search, info, tools, stats, current)
parser/
stream.ts # streaming line-by-line reader (never buffers whole files)
types.ts # discriminated types for every known log-line shape
resolve.ts # resolves tool_result overflow to sibling tool-results/*.txt
format/
markdown.ts # canonical renderer; per-type rendering policy table lives here
truncate.ts # line truncation + image-block stripping
util/
current-session.ts # three-tier detector for the "current" session keyword
dates.ts # --since/--until parsing
paths.ts # ~/.claude/projects resolution; project-name decode (lossy → fs-verified)
tests/
fixtures/ # small crafted .jsonl files covering every message type we render
*.test.ts # unit + command-level tests (bun test)
.claude-plugin/marketplace.json # makes the repo itself a marketplace
# (`/plugin marketplace add jakemarsh/ccthread`)
plugin/
.claude-plugin/plugin.json
bin/ccthread # POSIX dispatcher
bin/ccthread.cmd # Windows dispatcher
bin/.ccthread-version # pinned binary version (bumped in lockstep with plugin.json)
hooks/hooks.json # SessionStart + SessionEnd wiring for the 'current' detector
hooks/record-session.sh # writes session id to $CLAUDE_PLUGIN_DATA/sessions/<claude-pid>.json
hooks/cleanup-session.sh # removes the file on session end
skills/ccthread/SKILL.md
scripts/
build-all.ts # cross-compile every target
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 174 lines · 2,891 tokens per session scan A cb60a9755270
ccthread CLAUDE.md is an instructions file published in the GitHub repository jakemarsh/ccthread (1 stars, last pushed 6mo ago), licensed MIT. It adds 2,891 tokens to every session, about $0.0116 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
vscode copilot-instructions.md
Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).
deno copilot-instructions.md
Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.