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 peepshowUse it
peepshow ./repro.mov --sink github-issues \
--sink-arg repo=myorg/myrepo \
--sink-arg label=bugMake it automatic
Register the sink once — every run fires it afterward. Scope by--whenso 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_TOKENPAT or fine-grained token with `issues: write`.requiredPEEPSHOW_GITHUB_REPODefault `owner/name`. Overridable per call.
Write your own
A sink is any executable that reads the--emit jsonpayload on stdin. Shell, Node, Python, Go — the spec's indocs/PLUGINS.md. Register persistent ones withpeepshow sinks add-cmd 'your-command'.