How it plugs in
peepshow ships as a first-class Claude Code plugin. Drop a video into the prompt — a `UserPromptSubmit` hook detects the path, injects a reminder, and Claude auto-invokes `/peepshow:slides`. The statusline shows live run status.
Install
claude plugin marketplace add t0mtaylor/peepshow
claude plugin install peepshow@peepshow-marketplaceFiles involved
.claude-plugin/plugin.jsonManifest registers the skill, hook, and statusline.skills/slides/SKILL.md`/peepshow:slides` — invokable directly or by the hook.hooks/peepshow-user-prompt.cjs`UserPromptSubmit` — detects dragged video paths.hooks/peepshow-statusline.shRenders `[PEEPSHOW:...]` in the statusline.
In practice
# Drag a video in — nothing else to type:
/Users/you/Desktop/demo.mp4
# → hook detects it, auto-invokes /peepshow:slides, Claude reads frames.
# Or explicitly:
/peepshow:slides ./recording.movAll 95 sinks still work
The CLI is the same across agents — which means every sink documented under /sinks is available here. Auto-sinks fire regardless of which agent invoked peepshow.
Report + LLM analysis loop
Every run also writes a self-contained report.html + manifest.json next to the frames (see the Report page). When Claude Code consumes the frames, the analysis flows back into the report so whoever opens it next sees the model's understanding without re-running the prompt.
echo '{"summary":"<your summary>","provider":"claude-code"}' \
| peepshow report annotate "<outputDir>"The annotate instruction is wired into the Claude Code integration — the agent runs it after reading the frames + transcript. Report walkthrough →