Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
871966d
Add Codex CLI format support with automatic detection
claude Jan 2, 2026
9b8a62e
Add unified session picker for both Claude Code and Codex CLI
claude Jan 2, 2026
f7c8f69
Handle old Codex CLI session format
skinner84 Jan 2, 2026
e3d2b3e
Skip AGENTS preambles in session summaries
skinner84 Jan 2, 2026
fed5203
Remove local session artifacts and sanitize codex fixture
skinner84 Jan 2, 2026
e360f45
I couldn’t apply the `@cct_*` skills you referenced because they aren…
abgyja Jan 9, 2026
7cff255
Add Antigravity export parser
abgyja Jan 9, 2026
c6c7571
- Added Kiro export detection + parser routing in `src/claude_code_tr…
abgyja Jan 9, 2026
1c6e18f
Add left sidebar filters and outline
abgyja Jan 9, 2026
53d2edc
Render Codex reasoning as thinking in HTML
abgyja Jan 9, 2026
bd47e09
Add right-sidebar turn summaries
abgyja Jan 9, 2026
1a3e47e
- Updated PR #5 title to: `Add per-turn right sidebar summaries and n…
abgyja Jan 9, 2026
9c21392
Merge pull request #7 from abgyjaguo/vk/b095-ui-right-sidebar
abgyjaguo Jan 9, 2026
bba5a4e
Merge branch 'pr-39' into vk/fdca-ui-left-sidebar
abgyjaguo Jan 9, 2026
e4f29b3
Merge pull request #9 from abgyjaguo/vk/fdca-ui-left-sidebar
abgyjaguo Jan 9, 2026
a6545c5
Merge branch 'pr-39' into vk/a724-ui-show-ai-think
abgyjaguo Jan 9, 2026
ca652af
Merge pull request #10 from abgyjaguo/vk/a724-ui-show-ai-think
abgyjaguo Jan 10, 2026
3b41fd9
Merge branch 'pr-39' into vk/4da1-parser-add-suppo
abgyjaguo Jan 10, 2026
4432ccc
Merge pull request #12 from abgyjaguo/vk/4da1-parser-add-suppo
abgyjaguo Jan 10, 2026
a78840f
Merge branch 'pr-39' into vk/b119-gh-2-support-imp
abgyjaguo Jan 10, 2026
cb76cdd
Merge pull request #14 from abgyjaguo/vk/b119-gh-2-support-imp
abgyjaguo Jan 10, 2026
2fdb3b5
Merge branch 'pr-39' into vk/b276-parser-add-suppo
abgyjaguo Jan 10, 2026
4db37ad
Merge pull request #11 from abgyjaguo/vk/b276-parser-add-suppo
abgyjaguo Jan 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 21 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
[![Tests](https://github.com/simonw/claude-code-transcripts/workflows/Test/badge.svg)](https://github.com/simonw/claude-code-transcripts/actions?query=workflow%3ATest)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/claude-code-transcripts/blob/main/LICENSE)

Convert Claude Code session files (JSON or JSONL) to clean, mobile-friendly HTML pages with pagination.
Convert Claude Code and Codex CLI session files (JSON or JSONL) to clean, mobile-friendly HTML pages with pagination.

[Example transcript](https://static.simonwillison.net/static/2025/claude-code-microjs/index.html) produced using this tool.

Expand All @@ -24,11 +24,17 @@ uvx claude-code-transcripts --help

## Usage

This tool converts Claude Code session files into browseable multi-page HTML transcripts.
This tool converts Claude Code and Codex CLI session files into browseable multi-page HTML transcripts.

**Supported formats:**
- Claude Code session files (JSONL format from `~/.claude/projects`)
- Codex CLI session files (JSONL format from `~/.codex/sessions`) - automatically detected and converted
- Kiro CLI saved chat sessions (JSON export from `/save session.json`) - automatically detected and converted


There are four commands available:

- `local` (default) - select from local Claude Code sessions stored in `~/.claude/projects`
- `local` (default) - select from local sessions (Claude Code from `~/.claude/projects` and Codex CLI from `~/.codex/sessions`)
- `web` - select from web sessions via the Claude API
- `json` - convert a specific JSON or JSONL session file
- `all` - convert all local sessions to a browsable HTML archive
Expand All @@ -39,7 +45,7 @@ The quickest way to view a recent local session:
claude-code-transcripts
```

This shows an interactive picker to select a session, generates HTML, and opens it in your default browser.
This shows an interactive picker with sessions from both Claude Code and Codex CLI, clearly labeled by source. Select any session to generate HTML and open it in your browser.

### Output options

Expand All @@ -56,6 +62,8 @@ The generated output includes:
- `index.html` - an index page with a timeline of prompts and commits
- `page-001.html`, `page-002.html`, etc. - paginated transcript pages

Transcript pages include a left sidebar with filter toggles (user/assistant/tools/tool results/thinking) and an in-page outline of turns. Filter settings persist across pages using `localStorage`.

### Local sessions

Local Claude Code sessions are stored as JSONL files in `~/.claude/projects`. Run with no arguments to select from recent sessions:
Expand Down Expand Up @@ -151,10 +159,18 @@ Convert a specific session file directly:
claude-code-transcripts json session.json -o output-directory/
claude-code-transcripts json session.jsonl --open
```
This works with both JSONL files in the `~/.claude/projects/` folder and JSON session files extracted from Claude Code for web.
This works with JSONL files in the `~/.claude/projects/` folder, JSON session files extracted from Claude Code for web, and Kiro CLI saved sessions (created using `/save session.json`).

The `json` command can take a URL to a JSON or JSONL file as an alternative to a path on disk.

### Antigravity exports

This tool supports Antigravity conversation export JSON files. Export a conversation from Antigravity as JSON, then run:

```bash
claude-code-transcripts json path/to/export.json
```

### Converting all sessions

Convert all your local Claude Code sessions to a browsable HTML archive:
Expand Down
545 changes: 545 additions & 0 deletions out/index.html

Large diffs are not rendered by default.

363 changes: 363 additions & 0 deletions out/page-001.html

Large diffs are not rendered by default.

260 changes: 260 additions & 0 deletions out/page-002.html

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ build-backend = "uv_build"

[dependency-groups]
dev = [

"pytest>=9.0.2",
"pytest-httpx>=0.35.0",
"syrupy>=5.0.0",
Expand Down
Loading