/session-replay
Convert a Claude Code or Codex session JSONL file into an animated replay of the conversation. Supports GIF, MP4, and WebM output formats. Auto-detects the session format (Claude Code or Codex) from file content.
$ npx -y skills add athola/claude-night-market --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/session-replay
Context preview
What this command does when you run it.
Convert a Claude Code or Codex session JSONL file into an animated replay of the conversation. Supports GIF, MP4, and WebM output formats. Auto-detects the session format (Claude Code or Codex) from file content.
Command definition
session-replay.mdSession Replay
Convert a Claude Code or Codex session JSONL file into an animated replay of the conversation. Supports GIF, MP4, and WebM output formats. Auto-detects the session format (Claude Code or Codex) from file content.
Usage
/session-replay [session-path] [options]
Arguments
| Argument | Description | |----------|-------------| | `session-path` | Path to session JSONL file (default: most recent) |
Options
| Option | Description | |--------|-------------| | `--session-format` | Input session format: `claude`, `codex`, or auto-detect (default: auto) | | `--show` | Layers to include: `user`, `assistant`, `tools`, `thinking` (default: `user,assistant,tools`) | | `--turns` | Turn range: `1-5` or `3` (default: all) | | `--output` | Output file path (default: `session-replay.gif`) | | `--format` | Output format: `gif`, `mp4`, `webm` (default: from `--output` extension) | | `--theme` | VHS terminal theme (default: `Dracula`) | | `--speed` | Timing multiplier (default: `1.0`) | | `--max-duration` | Max GIF duration in seconds (default: none) | | `--cols` | Text wrapping width in chars (default: `80`) | | `--rows` | Text truncation height in lines (default: `24`) |
Workflow
1. Invoke `Skill(scribe:session-replay)` to run the full pipeline: parse session, generate tape, render GIF 2. If no session path given, list recent sessions from `~/.claude/projects/` for the user to pick 3. Show session date and first user message for confirmation 4. Parse, generate tape, render via `Skill(scry:vhs-recording)`
Examples
# Replay most recent session
/session-replay
# Replay specific session file
/session-replay ~/.claude/projects/.../session.jsonl
# Show only user and assistant turns, first 5 turns
/session-replay --show user,assistant --turns 1-5
# Include Claude's thinking in the replay
/session-replay --show user,assistant,tools,thinking
# Custom theme and faster playback
/session-replay --theme "Solarized Dark" --speed 1.5
# Cap GIF duration at 30 seconds
/session-replay --output demo.gif --max-duration 30
# Output as MP4 video
/session-replay --output demo.mp4
# Output as WebM video
/session-replay --format webm
# Override extension with explicit format
/session-replay --output replay.gif --format mp4
# Replay a Codex session (auto-detected)
/session-replay ~/.codex/sessions/latest.jsonl
# Force Codex format parsing
/session-replay session.jsonl --session-format codex
Supported Formats
VHS supports three output formats, selected by the file extension in `--output` or explicitly via `--format`:
- **gif**: animated GIF (default), good for docs and READMEs
- **mp4**: H.264 video, smaller files for longer replays
- **webm**: VP8/VP9 video, open format for web embedding
SVG output is not supported by VHS and is not available.
Output
Parsed 42 turns from session (12 user, 15 assistant, 15 tools)
Generated tape: /tmp/session-replay-1711234567.tape
Rendering via scry...
Done: session-replay.mp4 (18s, 960x540)
See Also
- `Skill(scribe:session-replay)`: full skill reference
- `Skill(scry:vhs-recording)`: terminal recording
- `/session-to-post`: convert sessions to blog posts
Read more
Session Replay
Convert a Claude Code or Codex session JSONL file into an animated replay of the conversation. Supports GIF, MP4, and WebM output formats. Auto-detects the session format (Claude Code or Codex) from file content.
Usage
/session-replay [session-path] [options]
Arguments
| Argument | Description | |----------|-------------| | `session-path` | Path to session JSONL file (default: most recent) |
Options
| Option | Description | |--------|-------------| | `--session-format` | Input session format: `claude`, `codex`, or auto-detect (default: auto) | | `--show` | Layers to include: `user`, `assistant`, `tools`, `thinking` (default: `user,assistant,tools`) | | `--turns` | Turn range: `1-5` or `3` (default: all) | | `--output` | Output file path (default: `session-replay.gif`) | | `--format` | Output format: `gif`, `mp4`, `webm` (default: from `--output` extension) | | `--theme` | VHS terminal theme (default: `Dracula`) | | `--speed` | Timing multiplier (default: `1.0`) | | `--max-duration` | Max GIF duration in seconds (default: none) | | `--cols` | Text wrapping width in chars (default: `80`) | | `--rows` | Text truncation height in lines (default: `24`) |
Workflow
1. Invoke `Skill(scribe:session-replay)` to run the full pipeline: parse session, generate tape, render GIF 2. If no session path given, list recent sessions from `~/.claude/projects/` for the user to pick 3. Show session date and first user message for confirmation 4. Parse, generate tape, render via `Skill(scry:vhs-recording)`
Examples
# Replay most recent session /session-replay # Replay specific session file /session-replay ~/.claude/projects/.../session.jsonl # Show only user and assistant turns, first 5 turns /session-replay --show user,assistant --turns 1-5 # Include Claude's thinking in the replay /session-replay --show user,assistant,tools,thinking # Custom theme and faster playback /session-replay --theme "Solarized Dark" --speed 1.5 # Cap GIF duration at 30 seconds /session-replay --output demo.gif --max-duration 30 # Output as MP4 video /session-replay --output demo.mp4 # Output as WebM video /session-replay --format webm # Override extension with explicit format /session-replay --output replay.gif --format mp4 # Replay a Codex session (auto-detected) /session-replay ~/.codex/sessions/latest.jsonl # Force Codex format parsing /session-replay session.jsonl --session-format codex
Supported Formats
VHS supports three output formats, selected by the file extension in `--output` or explicitly via `--format`:
- **gif**: animated GIF (default), good for docs and READMEs
- **mp4**: H.264 video, smaller files for longer replays
- **webm**: VP8/VP9 video, open format for web embedding
SVG output is not supported by VHS and is not available.
Output
Parsed 42 turns from session (12 user, 15 assistant, 15 tools) Generated tape: /tmp/session-replay-1711234567.tape Rendering via scry... Done: session-replay.mp4 (18s, 960x540)
See Also
- `Skill(scribe:session-replay)`: full skill reference
- `Skill(scry:vhs-recording)`: terminal recording
- `/session-to-post`: convert sessions to blog posts
A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.
Other commands on claude-night-market.
- /aggregate-logs
Generate LEARNINGS.md from skill execution logs.
Open command - /analyze-skill
Analyze skill file complexity metrics and generate modularization recommendations for splitting or progressive loading.
Open command - /bulletproof-skill
Harden skills against rationalization and bypass behaviors
Open command - /context-report
Generate context optimization report for skill directories
Open command - /create-command
Create slash commands with brainstorming and best practices
Open command - /create-hook
Create hooks with brainstorming and security-first design
Open command

