peepshow/ sinks/ github-issues

Reel #12 Issue tracker

peepshow sink / github-issues

GitHub IssuesFile an issue with the frames uploaded inline.

REST v3. Repo / labels / assignees configurable. Frames attached via image URLs.

drop · process · github-issues

What it does

File a peepshow run as a GitHub issue against any repo you have push access to. Frames are uploaded as attachments and linked inline, labels and assignees are configurable, and the description is filled from video metadata.

When to reach for it

  • OSS bug reports: video drops in, issue auto-filed with reproducible frames
  • Docs pipeline: every processed tutorial creates a tracking issue until published
  • Run as part of a release workflow to open post-mortem issues with video evidence

Install

npm i -g peepshow

Use it

peepshow ./repro.mov --sink github-issues \
  --sink-arg repo=myorg/myrepo \
  --sink-arg label=bug

Make it automatic

Register the sink once — every run fires it afterward. Scope by --when so it only runs for matching videos.

peepshow sinks add github-issues
peepshow sinks add github-issues --when extension=mp4,mov
peepshow sinks add github-issues --when path=/Volumes/Work/

Configuration

  • PEEPSHOW_GITHUB_TOKEN PAT or fine-grained token with `issues: write`. required
  • PEEPSHOW_GITHUB_REPO Default `owner/name`. Overridable per call.

Use with an LLM agent

Every peepshow sink reads its config from env vars and receives a single JSON payload on stdin. An LLM agent (Claude Code, Cursor, Windsurf, Gemini, Codex) can drive the GitHub Issues sink automatically when three things are true:

  • the env vars below are exported in the agent's shell (or a project .env it can load),
  • the peepshow CLI is on PATH — install with npm i -g peepshow,
  • a peepshow auto-sink is registered for the run (optional but recommended — makes invocation zero-argument).

1. Set the environment

# Add to ~/.zshrc, ~/.bashrc, or a project .env the agent can load
export PEEPSHOW_GITHUB_TOKEN="..."

2. Register as an auto-sink

peepshow sinks add github-issues
peepshow sinks add github-issues --when extension=mp4,mov

3. Example LLM session

You → drop a .mov into Claude Code.

Claude → auto-invokes /peepshow:slides ./clip.mov. peepshow extracts frames + audio, the GitHub Issues sink forwards the run to a new issue with the frames attached. Claude replies with a summary and a link to the created record.

Transcript appears in the issue body, giving triage a copy-paste-able record of what was said.

Write your own

A sink is any executable that reads the --emit json payload on stdin. Shell, Node, Python, Go — the spec's in docs/PLUGINS.md. Register persistent ones with peepshow sinks add-cmd 'your-command'.