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.
FlagDefaultPurpose
--hosteu-central-1.pipedata.ioRegion host to log in to.

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.
FlagDefaultPurpose
--start-idlast cursor for this machineRead starting from this record ID (one-off, doesn’t move the cursor backwards).
--followfalseTail the pipe and stream new records as they arrive.

pd ls

List pipes with their kind, source, status, and counts.
FlagDefaultPurpose
--rangeallWindow for stats: 15m, 1h, 24h, 7d, 30d, or all.

pd delete

Request deletion of a pipe and all its data. Data is purged within 72 hours.
FlagDefaultPurpose
--yesfalseSkip the interactive name-confirmation prompt.

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.
FlagDefaultPurpose
--sourceSource pipe to forward from.
--urlTarget URL.
--methodHTTP verb: GET, POST, PUT, DELETE, PATCH.
--rate10Max requests per second.
--header K=VRequest header. Repeatable. Content-Type: application/json added if not set.
--retryfalseRetry non-2xx responses with exponential backoff (max 15 min, ~100 attempts).
--start-id0First record ID to deliver.

pd uniq

Create or update a deduplication transform that emits each unique record from a source pipe once.
FlagDefaultPurpose
--fromSource pipe to dedupe. Required on create.
--duplicatesfalseInvert: emit only duplicates (one per group) instead of uniques.
--start-id0First record ID in the source to consider.

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:
FlagPurpose
-o json, --output jsonEmit machine-readable JSON instead of human text.
--no-colorDisable colored output.
-h, --helpPrint the command’s synopsis.

Environment variables

VariablePurpose
PD_CONFIG_PATHOverride the config file location. Default ~/.pd/config.json.
NO_COLORDisable colored output (same as --no-color).