跳到正文
cccskills
免费在 GitHub 公开

session-replay

Converts a Claude Code session JSONL file into an animated GIF terminal replay. Use when creating demos or visual evidence from past sessions.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market星标 343(GitHub 343 + cccskills 0)

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md5.6 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

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-recording directly)

Integration Points

NeedSkillWhat it adds
GIF renderingscry:vhs-recordingConverts VHS tape to animated GIF
Tutorial embeddingscribe:tech-tutorialEmbed GIF in tutorial markdown
PR preparationsanctum:prepare-prAttach 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 file
  • modified: mtime timestamp
  • first_user_message: preview of the first human message
  • turn_count: number of user turns in the session
  • project_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:

  • --turns selects specific turn ranges (e.g. 1-5)
  • --show controls 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:

  • Creates the Output directive and Set commands
  • Types user messages at 30ms/char with $ prefix
  • Types assistant responses at 15ms/char
  • Types tool summaries at 100ms with two-space indent
  • Adds 1.5s pauses between turns
  • Holds the final frame for 3s
  • Scales all timing by the --speed multiplier
  • Truncates when --max-duration is exceeded

Write the tape to a temp file: {tempdir}/session-replay-{timestamp}.tape

Step 3: Render GIF

Invoke Skill(scry:vhs-recording) with the tape file path. Scry validates the tape, runs VHS, and produces the GIF at the path specified in the Output directive.

After successful rendering, delete the temp tape file.

Error Handling

ErrorAction
VHS not installedReport: install via go install github.com/charmbracelet/vhs@latest
Tape syntax errorReport VHS error output. Likely a string escaping bug.
GIF generation failsReport VHS error. Suggest --turns 1-5 to reduce scope.
Scry skill not foundReport: scry plugin required for GIF rendering.

Example

# Pick from recent sessions interactively
/session-replay

# Replay a specific file directly
/session-replay ~/.claude/projects/my-project/abc123.jsonl

# First 5 turns only, faster playback
/session-replay --turns 1-5 --speed 1.5

# Show only the conversation, no tool calls
/session-replay --show user,assistant --output demo.gif

Output (interactive picker):

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)

Pick a session [1-3]: 1

Parsed 42 turns from session (12 user, 15 assistant, 15 tools)
Generated tape: /tmp/session-replay-1711234567.tape
Rendering GIF via scry...
Done: session-replay.gif (18s, 960x540)

Exit Criteria

  • VHS tape file written to {tempdir}/session-replay-{timestamp}.tape before rendering is attempted
  • GIF produced at the path specified in the tape's Output directive and its size reported (duration, dimensions)
  • Temp tape file deleted after the GIF renders successfully
  • If VHS is not installed, error reported with the install command go install github.com/charmbracelet/vhs@latest rather than silently failing
  • If no JSONL path is given and list_sessions() returns empty, user is told no sessions were found and directed to provide a path directly

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Shapes turns action-first: action leads, steps numbered, state restated. Use for ADHD-friendly output. Do not use to trim tokens; use response-compression.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

Inverts burden of proof for code additions. Use when reviewing PRs, planning refactors, or running unbloat to challenge every addition's necessity.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

Tracks per-agent token usage and flags waste in parallel dispatch. Use when evaluating parallel agent efficiency or after a multi-agent run.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

Coordinates Claude agent teams via filesystem protocol. Use when orchestrating parallel agents with task dependencies. Do not use for single-agent tasks.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

Evaluates API surface design, consistency, and exemplar alignment. Use when reviewing public API changes or before releasing a new API surface.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

Selects architecture paradigm via research before scaffolding. Use when architecture is undecided and the choice needs justification and documentation.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

查看 athola 的全部技能

报告此技能的问题