Skip to main content
Two ways to get records into a pipe: stream NDJSON from a shell with pd push, or expose an HTTP endpoint with pd source http.

TL;DR

From stdin: pd push

pd push <name> reads NDJSON from stdin and writes it to the named pipe. The pipe is created on first use.
Each line of stdin must be a single JSON value. Status output goes to stderr, so redirects stay clean.
pd push is streaming — the writer doesn’t wait for a reader. Push as fast as you like; readers catch up at their own pace.

Over HTTP: pd source http

pd source http <name> creates (or looks up) an HTTP ingestion pipe and prints its ingest URL.
Send one record per request, or batch many as NDJSON:
A 2xx response means the records were accepted and persisted.

Common patterns

Backfill a pipe from a file
Convert CSV on the fly
Mirror an HTTP webhook into a pipe

See also