Skip to content

Releases: simonw/claude-code-transcripts

0.5

31 Dec 07:29

Choose a tag to compare

  • The claude-code-transcripts json $URL command now takes a URL as an alternative to a file path. #27
  • The --gist option 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

27 Dec 07:16

Choose a tag to compare

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

25 Dec 22:59

Choose a tag to compare

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-transcripts

Restructured 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 API
  • claude-code-transcripts json session.json — convert a specific file

Running with no arguments shows an interactive picker for local sessions:

claude-code-transcripts

Support 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 20

Auto-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 -a

Jinja2 templates for HTML generation

HTML output is now generated using Jinja2 templates, making it easier to customize the output format.

0.2

25 Dec 03:30

Choose a tag to compare

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_ID

On 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 --open

Publish to GitHub Gist with --gist

Share your transcripts with a single command:

claude-code-publish import --gist
claude-code-publish session.json --gist

This 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

0.1

24 Dec 23:45

Choose a tag to compare

0.1
  • Initial release. Use the claude-code-publish command to convert a Claude Code for web session.json file to a folder of browseable HTML.