Skip to content
Agentmart
Submit a tool

conversation-to-html

Convert a Claude Code or Codex CLI session into a beautiful, shareable single HTML file for presentations and workshops.

Skill by ohnotnow

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/ohnotnow-conversation-to-html

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Convert a Claude Code or Codex CLI session into a beautiful, shareable single HTML file for presentations and workshops. Supports both Claude Code and OpenAI Codex CLI session logs. Use when the user wants to showcase, export, present, or share a coding agent conversation as HTML. Also triggers on: 'conversation to html', 'export session', 'share this conversation', 'make a transcript', 'session to html', 'presentation from session', 'showcase conversation', 'codex session', or any request to turn a Claude Code or Codex session into a shareable format. Should be used proactively when the user mentions workshops, demos, or sharing coding agent conversations.

Use cases: presentations, frontend, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/conversation-to-html

What's inside

Skill name
conversation-to-html
Description
Convert a Claude Code or Codex CLI session into a beautiful, shareable single HTML file for presentations and workshops. Supports both Claude Code and OpenAI Codex CLI session logs. Use when the user wants to showcase, export, present, or share a coding agent conversation as HTML. Also triggers on: 'conversation to html', 'export session', 'share this conversation', 'make a transcript', 'session to html', 'presentation from session', 'showcase conversation', 'codex session', or any request to turn a Claude Code or Codex session into a shareable format. Should be used proactively when the user mentions workshops, demos, or sharing coding agent conversations.
License
MIT
Instructions
133 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (2)

  • SKILL.md
  • extract_chat_markdown.py · scripts/

SKILL.md (first lines)

# Conversation to HTML

Convert Claude Code or Codex CLI sessions into polished, branded HTML transcripts for sharing and presentations.

## Workflow

### 1. Find the session

The user may provide:
- **Nothing** (default): find the latest *completed* session for the current project
- **A session ID**: use that specific session
- **A file path**: use that JSONL file directly

#### Default: discover the latest session

Claude Code stores sessions at `~/.claude/projects/{encoded-path}/`. The encoded path replaces `/` with `-` in the absolute CWD path.

To find sessions, run:

```bash
python3 ~/.claude/skills/conversation-to-html/scripts/extract_chat_markdown.py \
  --list-sessions
```

This lists all sessions for the current project, sorted by most recent first. The current in-progress session is included — it's fine to convert it.

If the user wants a specific session, use `--session-id UUID` with `--discover`.

### 2. Confirm with the user

Briefly tell the user:
- Which session was found (show the slug, date, and message count)
- Ask for a title (suggest one based on the project name or session content)

### 3. Generate the HTML

When `--title` is provided and no explicit `-o` is given, the script automatically generates a filename from the title as a filesystem-safe slug with today's date appended (e.g. `--title "Chat About Lovely Cats"` produces `chat-about-lovely-cats-2026-03-25.html`). You do not need to pass `-o` unless the user wants a specific path.

```bash
python3 ~/.claude/skills/conversation-to-html/scripts/extract_chat_markdown.py \
  --discover \
  --format html \
  --timestamps \
  --title "Your Title Here"
```

Or with a specific session:

```bash
python3 ~/.claude/skills/conversation-to-html/scripts/extract_chat_markdown.py \
  --discover \
  --session-id "SESSION_UUID" \
  --format html \
  --timestamps \
  --title "Your Title Here"
```

Or with a direct file path:

```bash
python3 ~/.claude/skills/conversation-to-html/scripts/extract_chat_markdown.py \
  /path/to/session.jsonl \
  --format html \
  --timestamps \
  --title "Your Title Here"
```

### 4. Verify the output

```bash
head -n 40 conversation.html
```

Check:
- Title is correct
- No system prompts, CLAUDE.md content, or tool calls leaked through
- Messages are in the right order
- User and assistant roles are correct

### 5. Tell the user

Report where the file was written and its message count. Suggest they open it in a browser to preview.

## Output features

The generated HTML includes:
- Hero section with session metadata (date, duration, model, message count)
- Chat-bubble layout (user messages right-aligned in blue, assistant left-aligned in white)
- Avatar icons (person for user, star for assistant)
- Syntax-highlighted code blocks via Prism.js (requires internet for CDN; degrades gracefully offline)
- Floating message navigation panel (bottom-right button)
- Smooth reveal animations (capped at message 20 to avoid long delays)
- Responsive layout for mobile and desktop
- Print-friendly styling with page-break protection
- Noto Sans typography from Google Fonts

## Codex CLI sessions

For Codex sessions, add `--source codex` to all commands. Codex stores sessions at `~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl` (not organised by project).

```bash
# List Codex sessions
python3 ~/.claude/skills/conversation-to-html/scripts/extract_chat_markdown.py \
  --source codex --list-sessions

# Generate HTML from latest Codex session
python3 ~/.claude/skills/conversation-to-html/scripts/extract_chat_markdown.py \
  --source codex \
  --discover \
  --format html \
  --timestamps \
  --title "Codex Session"
```

You can also pass a specific Codex JSONL file directly (with `--source codex` to use the correct parser):

```bash
python3 ~/.claude/skills/conversation-to-html/scripts/extract_chat_markdown.py \
  --source codex \

From ohnotnow/agentic-stuff, MIT.

More from ohnotnow/agentic-stuff

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Mar 25, 2026 (7 months ago)
Last release
Oct 19, 2026 (9 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from ohnotnow

Cite this page

conversation-to-html skill. Agent Mart. https://agentmart.dev/skills/ohnotnow-conversation-to-html (last updated 2026-10-24)