Skip to content

Stdin ​

Reads JSON or another format from stdin. Use it to pipe a command into Skipprd. This is not a long-running server — the process ends when stdin closes.

Before you begin ​

  • A producer that writes records to stdout (one JSON object per line for json).

Configure ​

python
from skippr import Config, DataSourceStdin, Pipeline

cfg = Config.discover()
src = cfg.data_source("pipe", DataSourceStdin(mode="line", format="json"))
cfg.pipeline("pipe", Pipeline(data_source=src))
cfg.save()
bash
skipprd connect data-source stdin \
  --pipeline pipe \
  --name pipe \
  --mode line \
  --format json
yaml
data_sources:
  pipe:
    Stdin:
      mode: line
      format: json
bash
cat events.jsonl | skipprd sync --pipeline pipe --once

Options ​

KeyTypeRequired/DefaultDescription
modestringNot setHow stdin is framed (for example line)
formatstringNot setPayload format (json, …)
batch_size_bytesintegerNot setMax bytes per batch
batch_size_secondsintegerNot setMax seconds per batch

What gets synced ​

Each framed payload becomes a record. There is no resume position beyond what the WAL already committed. If you re-run the same pipe, rows can duplicate in append-only destinations.

Troubleshooting ​

SymptomFix
No rowsConfirm the producer writes to stdout and the pipe is attached
Parse errorsMatch format to the payload; JSON must be one object per line in line mode

Next steps ​