Releases: simonw/claude-code-transcripts
0.5
- The
claude-code-transcripts json $URLcommand now takes a URL as an alternative to a file path. #27 - The
--gistoption now publishes to gisthost.github.io, created for this project. This fixes a bug that affected links shared on Substack and allows longer files to be served without being truncated. #30 - Fixed a bug with pagination links on transcripts published to Gists. #26
0.4
Convert every local conversation with "all"
Convert every existing Claude project directory in ~/.claude into a browsable HTML archive with a list of projects and sessions:
claude-code-transcripts all -o archive/Thanks, Brendan Becker. #11
Search within a transcript
Generated HTML transcripts now include full-text search. Click the search icon to search across all pages of content. #15
This currently only works for transcripts served via a web server or through gistpreview.github.io.
Image support
Transcripts now render image content blocks instead of displaying base64 in JSON. #14
Windows compatibility
UTF-8 encoding fixes for Windows file operations. GitHub CI now runs against Linux, Windows and macOS. #6
0.3
Renamed to claude-code-transcripts
The package has been renamed from claude-code-publish to claude-code-transcripts to better reflect its purpose.
uv tool install claude-code-transcriptsRestructured CLI
The CLI now uses clear subcommands for different workflows:
claude-code-transcripts local— select from local sessions in~/.claude/projects(default)claude-code-transcripts web— import from Claude APIclaude-code-transcripts json session.json— convert a specific file
Running with no arguments shows an interactive picker for local sessions:
claude-code-transcriptsSupport for local JSONL sessions
Convert sessions directly from your local Claude Code installation at ~/.claude/projects:
# Interactive picker for recent sessions
claude-code-transcripts local
# Show more sessions
claude-code-transcripts local --limit 20Auto-naming output directories with -a
Use -a/--output-auto to automatically create subdirectories named after the session:
# Creates ./session_ABC123/ subdirectory
claude-code-transcripts web SESSION_ABC123 -a
# Creates ./transcripts/session_ABC123/ subdirectory
claude-code-transcripts web SESSION_ABC123 -o ./transcripts -aJinja2 templates for HTML generation
HTML output is now generated using Jinja2 templates, making it easier to customize the output format.
0.2
Import Sessions Directly from Claude API
You can now import sessions directly from the Claude API:
# List available sessions
claude-code-publish list-web
# Import with interactive picker
claude-code-publish import
# Import a specific session
claude-code-publish import SESSION_IDOn macOS, API credentials are automatically retrieved from your keychain. On other platforms, provide --token and --org-uuid manually.
Quick View with --open
Instantly view a session in your browser:
# Pick a session and open it immediately
claude-code-publish import --open
# Convert and open a local JSON file
claude-code-publish session.json --openPublish to GitHub Gist with --gist
Share your transcripts with a single command:
claude-code-publish import --gist
claude-code-publish session.json --gistThis uploads the generated HTML files to a GitHub Gist and outputs a shareable preview URL via gistpreview.github.io.
Requires: GitHub CLI (gh) installed and authenticated.
Include Original JSON with --json
Archive the source data alongside your HTML output:
claude-code-publish session.json -o ./my-transcript --json
claude-code-publish import SESSION_ID --json