Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jakemarsh/ccthread --skill ccthreadgit 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/skills/jakemarsh/ccthread/ccthread)<a href="https://agentmods.dev/skills/jakemarsh/ccthread/ccthread"><img src="https://agentmods.dev/badge/skills/jakemarsh/ccthread/ccthread/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/skills/jakemarsh/ccthread/ccthread"><img src="https://agentmods.dev/badge/skills/jakemarsh/ccthread/ccthread.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.00123 | $0.00967 |
| Opus 5.5 | $0.00049 | $0.00387 |
| Sonnet 5.5 | $0.00025 | $0.00193 |
| Haiku 4.5 | $0.00012 | $0.00097 |
Grade D, and why
ccthread scanned grade D with 3 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.
Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
curl -fsSL https://raw.githubusercontent.com/jakemarsh/ccthread/main/install.sh | sh # macOS / Linux Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
description: Read, search, and summarize Claude Code conversation history. Use when the user asks to find things discussed in past sessions, review old threads, summarize recent work for teammates, extract learnings into Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -fsSL https://raw.githubusercontent.com/jakemarsh/ccthread/main/install.sh | sh # macOS / Linux How it starts
The opening of the file, as written. The whole thing — 81 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ccthread — past-conversation archaeology
You have a CLI tool ccthread available. It reads Claude Code conversation logs from ~/.claude/projects/ and returns clean markdown. Use it whenever the user asks about past work.
Common patterns
Look up something from THIS conversation
ccthread show current # read the current session
ccthread search "<what they asked about>" --session current --window 3
ccthread show current --before-last-compact # "before we compacted, what did you say?"
current resolves to whichever session invoked you — via the CCTHREAD_SESSION_ID env var, the parent claude process's argv, or the plugin's SessionStart hook if argv doesn't carry it. Use it whenever the user says "in our conversation", "before we compacted", "earlier in this session", "what did you just say".
Find a conversation by topic
ccthread find "<keywords>" --limit 10
Read a conversation
ccthread show <id> --page 1 --per-page 50
Paginate with --page 2 etc. Run ccthread info <id> first to see how long it is.
Keyword search with context
ccthread search "<query>" --window 2 --limit 5
Good for "what did we decide about X?" — returns ±2 messages around each hit.
Summarize recent work on a project
ccthread list --project <name> --since 2026-04-01
ccthread show <id> # for each session you want to dig into
Stats / overview
ccthread stats --project <name> --since <date>
Tool usage for a session
ccthread tools <id>
Tips
- Session ids can be short (8-char prefix) or full UUIDs.
last/latestresolves to the most recent session. --no-thinkinghides thinking blocks when they're noise.--tool-details nonehides tool outputs entirely (cleanest for summaries);fullshows them untruncated.--include-sidechainsinlines subagent threads.--jsonemits structured output when you need to re-process it.- Default page size is 50 messages.
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 · 81 lines · 123 tokens per session scan D 6d84d93202ad
ccthread is a skill published in the GitHub repository jakemarsh/ccthread (1 stars, last pushed 6mo ago), licensed MIT. It adds 123 tokens to every session and 967 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it D with 3 findings (downloads and executes remote code, reads agent configuration directories, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
durable-session-state
Persist plans, scope decisions, evidence, and reviewer/critic verdicts to durable files during long or multi-phase tasks so work survives context compaction, session resumes, and handoffs. Use for swarm-mode tasks, before context grows large, when recording approval gates, and when resuming after compaction or a…
trekker
Persistent task memory for AI agents across sessions.
task-sync
Synchronize Trekker with Claude's built-in TodoWrite. Trekker is the source of truth.
alive:save
The human wants to checkpoint. Or: the stash has grown heavy — 5+ items, 30+ minutes, a natural pause in the work. The squirrel doesn't decide when to save. It surfaces the need and lets the human pull the trigger. Runs the full save protocol: confirms stash, writes log, updates state, generates projections…
alive:capture-context
Use when external content arrives in the session — emails, transcripts, screenshots, documents, files, or in-session research worth keeping. Also use when there's nothing obvious to capture — the skill checks 03Inbox/ for unrouted files and enters inbox scan mode. Stores raw content, routes to bundles, extracts tasks…
alive:session-history
Revive sessions (quick or heavy), browse, and search — 'what happened recently?', 'find the session where we discussed X', 'revive yesterday's session'. For single-session recall and multi-session browsing. If the human needs to merge multiple sessions into one working context or detect conflicts between parallel…