session-replay
Convert a Claude Code session JSONL file into an animated GIF replay showing the conversation as typed terminal output
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/athola/nm-scribe-session-replayNight Market Skill — ported from claude-night-market/scribe. For the full experience with agents, hooks, and commands, install the Claude Code plugin.
Session Replay
Turn a Claude Code session JSONL file into an animated GIF that plays back the conversation as typed terminal output.
The skill orchestrates three steps: parse the session file into turns, generate a VHS tape from those turns, and hand off to scry for GIF rendering.
When To Use
- Creating demos of development workflows
- Adding visual evidence to pull requests
- Sharing session highlights to Slack or GitHub
- Embedding session replays in tutorials
When NOT To Use
- Writing blog posts from sessions (use
scribe:session-to-post) - Generating API documentation (use
scribe:doc-generator) - Recording live terminal commands (use
scry:vhs-recordingdirectly)
Integration Points
| Need | Skill | What it adds |
|---|---|---|
| GIF rendering | scry:vhs-recording | Converts VHS tape to animated GIF |
| Tutorial embedding | scribe:tech-tutorial | Embed GIF in tutorial markdown |
| PR preparation | sanctum:prepare-pr | Attach replay as PR evidence |
Workflow
Step 0: Pick a Session (when no path is provided)
When the user invokes /session-replay without a path argument,
use scribe.session_parser.list_sessions() to discover recent
session files from ~/.claude/projects/.
The function returns a list of SessionInfo objects sorted by
modification time (most recent first), each containing:
path-- full path to the .jsonl filemodified-- mtime timestampfirst_user_message-- preview of the first human messageturn_count-- number of user turns in the sessionproject_name-- parent directory name
Present the list to the user as a numbered menu:
Recent sessions:
1. [my-project] "implement auth module" (8 turns, 2h ago)
2. [api-server] "fix rate limiting bug" (3 turns, 5h ago)
3. [docs-site] "update installation guide" (12 turns, 1d ago)
Ask the user to pick a number. Use the selected session's
path for the remaining steps.
If list_sessions returns an empty list, report that no
sessions were found and suggest providing a path directly.
Step 1: Parse the Session
Use scribe.session_parser.parse_session() to read the JSONL
file. The parser:
- Extracts user and assistant turns
- Skips sidechain (subagent) records
- Collapses tool calls into readable summaries
- Wraps text at the configured column width
- Truncates long responses at the configured row count
Apply filters based on user options:
--turnsselects specific turn ranges (e.g.1-5)--showcontrols which layers appear:user,assistant,tools,thinking(thinking is excluded by default)
Step 2: Generate VHS Tape
Use scribe.tape_generator.generate_tape() to convert the
parsed turns into a VHS tape file. The generator:
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-athola-nm-scribe-session-replay": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
extract
Analyze a codebase and build a knowledge base of business logic, architecture, data flow, and engineering patterns. The foundation for gauntlet challenges and agent integration
discourse
>- Scan community discussion channels (HN, Lobsters, Reddit, tech blogs) for experience reports and opinions on a topic
synthesize
>- Merge, deduplicate, rank, and format research findings from multiple channels into a coherent report. Use after research agents return their results
workflow-monitor
Detect workflow failures and inefficient patterns, then create GitHub issues for improvement via /fix-workflow
architecture-paradigm-hexagonal
Hexagonal (Ports and Adapters) architecture isolating domain logic from infrastructure