- Category
- Developer Tools
- Rank
- No. 1113Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- badlogic
- GitHub
- 490 stars
- Date
About
Extract and compare system prompts and tools across different Claude Code versions. Spelunk for what shipped when.
What it does
cchistory launches a chosen released or local Claude Code build under a request tracer, triggers one model request, then writes a Markdown snapshot of the captured user-message shape, system instructions, and non-MCP tool schemas.
Why it's ranked here
This is a focused forensic utility with a reproducible capture path and readable output. Released builds and local binaries use the same tracing pipeline, while existing snapshots are skipped to avoid repeated downloads and model requests.
What's good
It supports single releases, release ranges, and unpublished local builds. Request selection favors non-Haiku traffic containing both tools and a system prompt. Tool entries are sorted for stable reading, MCP tools are excluded, and supplied Claude arguments are parsed with shell operators removed.
Tradeoffs
Every capture requires Claude Code authentication and sends a Haiku request, which can cost money. Released-version handling depends on a deliberately fragile text patch that may break when upstream code changes. Output omits MCP tools, and malformed trace lines fail during direct JSON parsing.
How to use it well
Use it when auditing prompt or tool changes across releases, checking a fork before publication, or preserving readable evidence of runtime behavior. Keep snapshots under version control and compare them with normal diff tools. It does not replace general request tracing or provide a comparison interface.
Technical notes+
src/index.ts orchestrates npm download, tar extraction, version-check patching, claude-trace execution, JSONL discovery, request selection, formatting, and cleanup. src/core/cli-patcher.ts replaces the body of a function located by warning text and balanced braces; src/core/cli-patcher.test.ts documents its success and failure cases. src/core/request-filter.ts prefers non-Haiku requests with tools and a system prompt, then removes MCP-prefixed tools. src/core/jsonl-parser.ts parses each nonblank line directly with JSON.parse, while src/core/content-extractor.ts handles string and text-block messages. src/core/output-formatter.ts emits Markdown. package.json defines the npm CLI package, TypeScript build, Vitest scripts, MIT license, and Node requirement.
Observed
- License
- MIT
- Primary language
- TypeScript
- Install surface
- Global npm package @mariozechner/cchistory
- Interface
- Command-line tool named cchistory
- Runtime
- Node.js 16 or newer
- Output
- Markdown snapshot files containing user message, system prompt, and non-MCP tools
- Testing
- Vitest scripts are configured, with colocated tests shown for patching and JSONL parsing
Read from README.md, package.json, src/index.ts, src/types/request.ts, src/core/cli-patcher.ts, src/core/jsonl-parser.ts, src/core/version-utils.ts, src/core/request-filter.ts, src/services/npm-service.ts, src/core/cli-patcher.test.ts, src/core/output-formatter.ts, src/services/file-service.ts, src/services/temp-service.ts, src/core/content-extractor.ts, src/core/jsonl-parser.test.ts.
What it can do
Extract system prompts from Claude Code versions
Claude Code version data → System prompts used in that version
Extract tools from Claude Code versions
Claude Code version data → Tools available in that version
Compare system prompts across different Claude Code versions
Multiple Claude Code versions → Differences and changes in system prompts between versions
Compare tools across different Claude Code versions
Multiple Claude Code versions → Differences and changes in tools between versions
Track what features shipped in specific versions
Claude Code version history → Timeline of feature releases and version details
Analyze version history of Claude Code changes
Historical Claude Code data → Analysis of how the system evolved over time
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
