A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
A Python CLI tool that converts Claude Code transcript JSONL files into readable HTML / Markdown format.
A Python CLI tool that converts Claude Code transcript JSONL files into readable HTML and Markdown formats.
Browser log demo:
TUI demo:
📋 View Changelog - See what's new in each release
This tool generates clean, minimalist HTML pages showing user prompts and assistant responses chronologically. It's designed to create a readable log of your Claude Code interactions with support for both individual files and entire project hierarchies.
📄 View Example HTML Output - A real example generated from a sample of this project's development, regenerated on every docs build
TL;DR: run the command below and browse the pages generated from your entire Claude Code archives:
uvx claude-code-log@latest --open-browser
~/.claude/projects/ directory with linked index pageinit) in expandable details with structured parsing--detail full|high|low|minimal|user-only filters by verbosity and --compact merges repeated section headings — pairs well with --format md to feed past conversations back to an LLM for analysis or experience buildingThis tool helps you answer questions like:
The TUI provides an interactive interface for browsing and managing Claude Code sessions with real-time navigation, session summaries, and quick actions.
# Launch TUI for all projects (default behavior)
claude-code-log --tui
# Launch TUI for specific project directory
claude-code-log /path/to/project --tui
# Launch TUI for specific Claude project
claude-code-log my-project --tui # Automatically converts to ~/.claude/projects/-path-to-my-project
TUI Features:
h: Generate and open session HTML in browserm: Generate and open session Markdown in browserv: View session Markdown in embedded viewer (with table of contents)c: Resume session in Claude Code with claude -r <sessionId>r: Reload session data from filesp: Switch to project selector viewH/M/V: Force regenerate HTML/Markdown (hidden shortcuts for development)q to quit# Process all projects in ~/.claude/projects/ (default behavior)
claude-code-log
# Explicitly process all projects
claude-code-log --all-projects
# Process all projects and open in browser
claude-code-log --open-browser
# Process all projects with date filtering
claude-code-log --from-date "yesterday" --to-date "today"
claude-code-log --from-date "last week"
# Skip individual session files (only create combined transcripts)
claude-code-log --no-individual-sessions
This creates:
~/.claude/projects/index.html - Top level index with project cards and statistics~/.claude/projects/project-name/combined_transcripts.html - Individual project pages (these can be several megabytes)~/.claude/projects/project-name/session-{session-id}.html - Individual session pages~/.claude/projects/project-name/session-{session-id}.md - Markdown versions (generated on-demand via TUI)# Single file
claude-code-log transcript.jsonl
# Specific directory
claude-code-log /path/to/transcript/directory
# Custom output location
claude-code-log /path/to/directory -o combined_transcripts.html
# Open in browser after conversion
claude-code-log /path/to/directory --open-browser
# Filter by date range (supports natural language)
claude-code-log /path/to/directory --from-date "yesterday" --to-date "today"
claude-code-log /path/to/directory --from-date "3 days ago" --to-date "yesterday"
The combination --detail low --format md --compact produces condensed Markdown suitable as context for an LLM to review or distill patterns from past work:
# Session → compact Markdown for LLM review
claude-code-log transcript.jsonl --detail low --format md --compact -o session.md
# Whole project history
claude-code-log /path/to/project --detail low --format md --compact
--detail levels (smallest → largest output):
user-only — just user prompts and steering (useful as input to a downstream agent, e.g. building a requirements doc)minimal — user + assistant text onlylow — interaction-focused; keeps WebSearch, WebFetch, and Task (agent delegations) as key signalshigh — detailed but cleaned; drops system/hook noisefull — everything (default)--compact merges consecutive same-type sections in Markdown so runs of assistant responses share one heading instead of repeating ### 🤖 Assistant: for each.
Plain 7c2e6f6-shaped tokens in transcript prose get turned into clickable commit links when the SHA is reachable from a local remote-tracking branch. github.com, gitlab.com, and bitbucket.org work out of the box. For self-hosted forges (in-house GitLab, Gitea, Forgejo, …), supply a URL template via --git-link:
# Self-hosted GitLab
claude-code-log /path/to/transcript --git-link 'https://{host}/{path}/-/commit/{sha}'
# Same thing via env var (useful for TUI / repeated invocations)
export CLAUDE_CODE_LOG_GIT_LINK='https://{host}/{path}/-/commit/{sha}'
claude-code-log --tui
Placeholders: {host}, {path}, {sha}. The template fires only when the static map doesn't already know the host, so a mix of GitHub repos + self-hosted GitLab gets correct links from both. SHAs not reachable from any local remote-tracking ref render as plain text — local-only work-in-progress commits never produce broken links.
When processing all projects, the tool generates:
~/.claude/projects/
├── index.html # Master index with project cards
├── project1/
│ ├── combined_transcripts.html # Combined project page
│ ├── session-{session-id}.html # Individual session pages
│ ├── session-{session-id}.md # Markdown version (on-demand via TUI)
│ └── session-{session-id2}.html # More session pages...
├── project2/
│ ├── combined_transcripts.html
│ └── session-{session-id}.html
└── ...
init shown in expandable details with structured parsingMarkdown export provides a lightweight, portable alternative to HTML:
--compact Mode: Merge consecutive same-type section headings — most useful with --detail low or minimal where tool stripping creates runs of Assistant or User sectionsInstall using pip:
pip install claude-code-log
Or run directly with uvx (no separate installation step required):
uvx claude-code-log@latest
Or install from source:
git clone https://github.com/daaain/claude-code-log.git
cd claude-code-log
uv sync
uv run claude-code-log
See CONTRIBUTING.md for development setup, testing, and architecture documentation.
Projects built on top of claude-code-log:
Cross-platform (macOS and Windows/MSYS).
claude-trace request logs if present?ccusage like daily summary and maybe some textual summary too based on Claude generate session summaries?
– import logs from @claude Github Actions1000+ skills curated from Anthropic, Vercel, Stripe, and other engineering teams
Claude Code skill for YouTube creators — channel audits, video SEO, retention scripts, thumbnails, content strategy, Sho
Design enforcement with memory — keeps your UI consistent across a project
AI image generation skill for Claude Code -- Creative Director powered by Gemini