Releases

User-facing changes to peepshow LLM. New sinks, new features, opt-in behaviour changes — anything that changes what you can do with the tool. Internal tooling, site tweaks, build-pipeline churn, and documentation refactors don't land here — read the git history for those. This page is the rendered copy of CHANGELOG.md shipped with the npm package.

v0.4.0 — 2026-04-24

The big expansion. Thirty-two new built-in sinks (19 → 51), audio-track extraction, and a use-case finder on the website. Nothing removed, nothing renamed — drop-in upgrade.

npm i -g peepshow@0.4.0

32 new sinks

Chat & messaging

Issue trackers

Observability & analytics

Vector + AI memory

Whiteboards

Wiki & notes

Object + file storage

Audio extraction & transcription

When a video input has an audio stream (MP4 / MOV / WebM / MKV), peepshow now runs a second ffmpeg pass that emits a compact mono 16 kHz AAC audio.m4a next to the frames and probes loudness peak (via astats) and silence ratio (via silencedetect). The extracted file path + analysis fields land on the JSON payload as an audio object alongside video + frames, so every downstream sink sees the full picture.

On top of that, peepshow auto-enables transcription when whisper.cpp is on PATH — no flag, no API key, nothing leaves the machine. Five other providers are available via --transcribe openai|groq|deepgram|assemblyai|custom, each gated on its own *_API_KEY environment variable. The transcript rides on the JSON payload at audio.transcript, so every sink gets it for free. Full setup + provider matrix: peepshow.dev/transcription/.

Animated GIF, APNG, and animated WebP inputs skip cleanly — those formats can't carry audio at the spec level. Opt out entirely with --no-audio / --no-transcribe or PEEPSHOW_AUDIO_ENCODER=off / PEEPSHOW_TRANSCRIBE=off.

Use-case finder

Fifty-one destinations is too many to scan manually. The new sink finder lets you pick what you want to do with the frames (search · alert · archive · memory · whiteboard · analytics · compliance · LLM pipeline · review · workflow) and where your stack lives (cloud · self-hosted · LLM · local), then ranks matching sinks and hands you the CLI command to wire each one up. The homepage #sinks section gets a mini version; the /sinks/ index gets live text + chip filters. All three share a hash-bang URL (#!use=memory,search&deploy=self-hosted) so a selection is one-click-copyable between them.

Changed

Earlier — v0.3.x

Baseline that v0.4.0 builds on: 19 built-in sinks (SQLite · Postgres · pgvector · S3-compatible · Webhook · Slack · Discord · GraphQL · Notion · Obsidian · IDE attachments · MemPalace · Linear · GitHub Issues · Sentry · Chroma · Qdrant · Pinecone · MongoDB) plus the core frame-extraction CLI, auto-sink persistence (~/.peepshow/sinks.json), conditional sinks via --when, and agent manifests for Claude Code · Cursor · Windsurf · Cline · Codex CLI · Gemini CLI, plus the generic AGENTS.md convention.

See the git log for fine-grained history; this page only tracks user-facing releases from v0.4.0 onward.