Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/t0mtaylor/peepshow/slidesnpx skills add t0mtaylor/peepshow --skill slidesgit clone --depth 1 https://github.com/t0mtaylor/peepshowWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/t0mtaylor/peepshow/slides)<a href="https://agentmods.dev/skills/t0mtaylor/peepshow/slides"><img src="https://agentmods.dev/badge/skills/t0mtaylor/peepshow/slides.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00057 | $0.01711 |
| Opus 5 | $0.00028 | $0.00856 |
| Sonnet 5 | $0.00011 | $0.00342 |
| Haiku 4.5 | $0.00006 | $0.00171 |
Grade A, and why
slides scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Slides
Static images (JPG/PNG/static WebP) can be read natively. This skill is only for video and animated images — anything that has multiple frames across time. It uses peepshow (ffmpeg under the hood) to extract a sequence of relevant still frames so they can be viewed as a timeline.
Input
The user may provide the video (or animated image — GIF, APNG, animated WebP) in any of these forms:
- A local file path (absolute, relative, or a network mount like
/Volumes/share/...) - An
http://orhttps://URL - A
data:video/...;base64,...ordata:image/(gif|apng|webp|png);base64,...URI pasted into the prompt - The literal
-to read bytes from stdin (you would pipe viaBash)
If $ARGUMENTS contains the video reference, use it directly. Otherwise ask the user to share one of the above.
Steps
-
Run the CLI with the
Bashtool. JSON is the most reliable output for parsing:PEEPSHOW_CLIENT=claude-code PEEPSHOW_SESSION="${CLAUDE_SESSION_ID:-}" peepshow "$ARGUMENTS" --emit jsonThe
PEEPSHOW_CLIENT+PEEPSHOW_SESSIONenv vars tag the run in the manifest and the access log so a sharedpeepshow serveinstance can attribute every run + HTTP call back to the right Claude Code session. Both are optional — peepshow runs fine without them — but setting them costs nothing.(If the path contains spaces, quote it. Use
--emit pathsif you prefer reading the human-readable list.) -
Parse the output. In JSON mode,
frames[].pathis the ordered list of absolute paths. Thevideoobject gives you container, codec, resolution, fps, duration, and file size — useful context for the user's question without extra prompting. Thevideo.tagsobject carries container-level metadata embedded in the file (title, artist, album_artist, director, producer, publisher, copyright, genre, description, creation_time, show, episode_id, season_number, etc.) — use it to ground your answer in what the video says it is before describing what you see. Theextractionobject tells you which strategy (scenevsfps) was used, how many frames were pruned, how many were dropped by the perceptual-hash dedup pass (framesDeduped+dedupDistance), and a coarse motion signal across the kept frames (motionSignalAvgnumeric +motionSignalLevellow/medium/high). Use the motion signal to colour your narration (e.g. "rapid action segment" vs "near-static timelapse"); combine withframesDeduped == 0+motionSignalLevel == "high"to recognise a high-information clip where the LLM should pay close attention to every frame.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 78 lines · 57 tokens per session scan A 4f7672c892fe
slides is a skill published in the GitHub repository t0mtaylor/peepshow (67 stars, last pushed 3mo ago), licensed MIT. It adds 57 tokens to every session and 1,711 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
chronicle
Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…
imagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…