Skip to main content
The full surface of pd, one section per command. Run pd <command> --help for the same synopsis at the terminal.

pd login

Authenticate this device with Pipedata via a device-code flow. Saves credentials to ~/.pd/config.json.

pd push

Read NDJSON from stdin and write it to a named pipe. Creates the pipe if it doesn’t exist.
pd push reads stdin only — there’s no flag for inline data. Use echo … | pd push <name> or redirect a file.

pd pull

Read NDJSON from a named pipe to stdout.

pd ls

List pipes with their kind, source, status, and counts.

pd delete

Request deletion of a pipe and all its data. Data is purged within 72 hours.

pd source http

Create (or look up) an HTTP ingestion pipe and print its ingest URL.
POST records to the printed URL with Authorization: Bearer <api-key>. One JSON record per request, or NDJSON for batches.

pd dest http

Create or update an HTTP destination. On create, --url and --method are required. Destinations start paused — verify DNS, then pd resume.

pd uniq

Create or update a deduplication transform that emits each unique record from a source pipe once.

pd verify

Verify DNS ownership of an HTTP destination. Interactive: prints a TXT record, waits for you to add it, then polls DNS.

pd pause

Pause a pipe so it stops reading and accepting new data. Works for any pipe kind. Downstream pipes pause too.

pd resume

Resume a paused pipe.

pd self-update

Check for and install a newer pd binary in place. The previous binary is saved alongside as pd.old.

pd examples

Print a few copy-pasteable recipes for common tasks.

Global flags

These work on every command:

Environment variables