What it does
For teams: archive every peepshow run into shared Postgres. Auto-creates the tables on first write, uses transactions for atomicity, supports standard `DATABASE_URL` or split credentials.
When to reach for it
- Centralise every video an agent has processed across your team
- Join peepshow metadata with app tables — link a run to a user, a ticket, a release
- Pair with the pgvector sink on the same database for a single-source video+vectors store
Install
npm i -g peepshow
npm i -g pgUse it
DATABASE_URL=postgres://user:pass@host:5432/db \
peepshow ./demo.mp4 --sink postgresMake it automatic
Register the sink once — every run fires it afterward. Scope by--whenso it only runs for matching videos.
peepshow sinks add postgres
peepshow sinks add postgres --when extension=mp4,mov
peepshow sinks add postgres --when path=/Volumes/Work/Configuration
DATABASE_URLFull connection string. Preferred.requiredPGHOST / PGUSER / PGPASSWORD / PGDATABASE / PGPORTSplit credentials if no DATABASE_URL.PEEPSHOW_POSTGRES_SCHEMASchema name. Default `peepshow`.
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'.