Imported from t0mtaylor/peepshow (
skills/sink/SKILL.md). Install upstream withnpx skills add t0mtaylor/peepshow --skill sink. Copyright stays with the author.
Sink management
peepshow supports auto-sinks — persistent sink definitions in ~/.peepshow/sinks.json that run on every extract. This skill manages that list on the user's behalf.
Detect intent
| User says | Run |
|---|---|
| "list sinks" / "which sinks are active" / "show sinks" | peepshow sinks list |
| "enable folder sink at /Volumes/Shared" / "add folder sink" | peepshow sinks add folder:/Volumes/Shared |
| "enable mysql sink" | peepshow sinks add mysql (reminder: sink needs DATABASE_URL in env) |
| "add custom sink: " | peepshow sinks add-cmd '<command>' |
| "add X but only for .mp4/.mov files" | peepshow sinks add <spec> --when extension=mp4,mov |
| "add X for videos under /Videos/" | peepshow sinks add <spec> --when path=/Videos/ |
| "add X for films directed by Kubrick" | peepshow sinks add <spec> --when director=Kubrick |
| "add X when filename matches vacation" | peepshow sinks add <spec> --when filename='*vacation*' |
| "remove sink 2" / "disable the mysql one" | First peepshow sinks list, then peepshow sinks remove <n> |
| "clear all sinks" / "disable all sinks" | peepshow sinks clear |
| "turn off sinks for this video only" | Tell the user to pass --no-auto-sinks on the next invocation — do not touch the config |
Notes
- Always run
peepshow sinks listafter any mutation to confirm the new state. <name>maps to an executablepeepshow-sink-<name>on$PATH. Extra colon-separated tokens become positional args (folder:/tmp/shared→peepshow-sink-folder /tmp/shared).- The sink count is shown live in the Claude Code statusline badge, e.g.
[PEEPSHOW|3s]means three auto-sinks are active. - Sinks receive the full peepshow JSON payload on stdin (including container tags: title, director, producer, copyright, etc.) — mention this when the user is choosing what to persist.
- Conditional matching (
--when): extension/filename/path/container/codec + any video metadata tag (director, genre, show, producer, publisher, …). Multiple--whenflags AND together; values inside one clause (e.g.ext=mp4,mov) are ORed. Example:peepshow sinks add folder:/cinema --when director=Kubrick --when extension=mp4= "archive Kubrick mp4s only".
Troubleshooting
- "sink failed (exit N)" during a run → the sink's binary isn't on
$PATH(for--sink <name>) or the shell command is wrong (for--sink-cmd). Fix bypeepshow sinks remove <n>and re-adding with the correct spec, or by installing the missing binary. - "no auto-sinks configured" → file doesn't exist yet. Any
addcommand creates it.