Skip to main content

claude-code-publish

PyPI Changelog Tests License

Convert Claude Code session.json files to clean, mobile-friendly HTML pages with pagination.

Example transcript produced using this tool.

Installation

Install this tool using uv:

uv tool install claude-code-publish

Or run it without installing:

uvx claude-code-publish --help

Usage

When using Claude Code for web you can export your session as a session.json file using the teleport command (and then hunting around on disk).

This tool converts that JSON into a browseable multi-page HTML transcript.

The quickest way to view a recent session is to import it directly and open in your browser:

claude-code-publish import --open

This shows an interactive picker to select a session, generates HTML, and opens it in your default browser.

For a local session file:

claude-code-publish session.json -o output-directory/

This will generate:

  • index.html - an index page with a timeline of prompts and commits
  • page-001.html, page-002.html, etc. - paginated transcript pages

Options

  • -o, --output DIRECTORY - output directory (default: current directory)
  • --repo OWNER/NAME - GitHub repo for commit links (auto-detected from git push output if not specified)
  • --open - open the generated index.html in your default browser
  • --gist - upload the generated HTML files to a GitHub Gist and output a preview URL
  • --json - include the original JSON session file in the output directory

Publishing to GitHub Gist

Use the --gist option to automatically upload your transcript to a GitHub Gist and get a shareable preview URL.

If you use that with the import command with no other options you can directly select a session to publish to a Gist:

claude-code-publish import --gist

The --gist option is available for other commands too:

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

Each of these will output something like:

Gist: https://gist.github.com/username/abc123def456
Preview: https://gistpreview.github.io/?abc123def456/index.html
Files: /var/folders/.../session-id

The preview URL uses gistpreview.github.io to render your HTML gist. The tool automatically injects JavaScript to fix relative links when served through gistpreview.

When using --gist without -o, files are written to a temporary directory (shown in the output). You can combine both options to keep a local copy:

claude-code-publish session.json -o ./my-transcript --gist

Requirements: The --gist option requires the GitHub CLI (gh) to be installed and authenticated (gh auth login).

Including the JSON source

Use the --json option to include the original session JSON file in the output directory:

claude-code-publish session.json -o ./my-transcript --json

This will output:

JSON: ./my-transcript/session_ABC.json (245.3 KB)

The JSON file preserves its original filename. This is useful for archiving the source data alongside the HTML output.

Importing from Claude API

You can import sessions directly from the Claude API without needing to export a session.json file:

# List available sessions
claude-code-publish list-web

# Import a specific session
claude-code-publish import SESSION_ID -o output-directory/

# Import with interactive session picker
claude-code-publish import

# Import and publish to gist
claude-code-publish import SESSION_ID --gist

# Import and save the JSON session data
claude-code-publish import SESSION_ID --json

On macOS, the API credentials are automatically retrieved from your keychain (requires being logged into Claude Code). On other platforms, provide --token and --org-uuid manually.

The --json option for the import command saves the session data fetched from the API as {session_id}.json in the output directory.

Development

To contribute to this tool, first checkout the code. You can run the tests using uv run:

cd claude-code-publish
uv run pytest

And run your local development copy of the tool like this:

uv run claude-code-publish --help

Release files for claude-code-publish 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for claude-code-publish 0.2
File Size Uploaded
claude_code_publish-0.2.tar.gz 15.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for claude-code-publish 0.2
File Interpreter ABI Platform
claude_code_publish-0.2-py3-none-any.whl Python 3 none any Details

Total release size: 32.6 kB

Release files / claude_code_publish-0.2.tar.gz

Download URL claude_code_publish-0.2.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
483ebaed2917973ca44366b756fe08cfab70822a37d6646e0d167a6903b68318
BLAKE2b-256 checksum
How to use checksums
283945d1d36d6890e2f2023ec3b87f0b445c12e5dc6e9b64e1e330a346fc89aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 25, 2025.

Transparency log

Release files / claude_code_publish-0.2-py3-none-any.whl

Download URL claude_code_publish-0.2-py3-none-any.whl
Size 16.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bc99863f3cb69843c7ef28bd475e261f1ac27657c9b6112ea6af17ea578b7ce5
BLAKE2b-256 checksum
How to use checksums
90ab104050cf3b5cb786bf4b5ba764d2afbe5492f6592b927cce1cab4d9d80fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 25, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.2 This release

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page