Commands
Streambed provides four commands via the CLI.
streambed sync
Main daemon. Streams WAL changes from Postgres, writes Iceberg tables to S3, and optionally serves queries.
./streambed sync \
--source-url="postgres://user:pass@host:5432/db" \
--s3-bucket="my-bucket" \
--s3-prefix="iceberg" \
--query-addr=:5433This is the primary command you’ll use. It runs continuously, consuming WAL events and flushing them as Parquet files with Iceberg metadata.
streambed resync
One-shot backfill of a table via COPY under a consistent snapshot.
./streambed resync --table=public.usersUse this when you need to re-ingest a table from scratch — for example, after schema changes or data corrections.
streambed query
Standalone query server (no sync). Points at existing Iceberg tables on S3.
./streambed query \
--s3-bucket="my-bucket" \
--s3-prefix="iceberg" \
--query-addr=:5433Useful when you want to query Iceberg data without running a sync process.
streambed cleanup
Deletes S3 objects and local state for a table.
./streambed cleanup --table=public.usersRun this before resync to start fresh, or when decommissioning a table from Streambed.