peepshow/sinks/pgvector

Reel #17Vector-in-SQL

peepshow sink / pgvector

pgvectorVector search on top of the postgres sink.

Keep runs + frames + embeddings in one Postgres. One database, full SQL over vectors.

What it does

Write both the structured archive (from the postgres sink) and frame embeddings into the same Postgres instance using the `pgvector` extension. One database for both metadata and RAG.

When to reach for it

  • Single source of truth: SQL + vector search in the same `SELECT`
  • Backup, replicate, and restore everything with one pg_dump
  • Avoid running three services (sql + object store + vector DB) — one Postgres covers it

Install

npm i -g peepshow
npm i -g pg

Use it

DATABASE_URL=postgres://... \
peepshow ./clip.mp4 --sink pgvector

Make it automatic

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

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

Configuration

  • DATABASE_URLPostgres connection string. The `vector` extension must be installed.required
  • PEEPSHOW_PGVECTOR_DIMEmbedding dimension. Default 1536 (OpenAI).

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'.