We're releasing clickhousectl v0.2.0. This release adds Postgres (local and ClickHouse Cloud managed), ClickPipes management for the full set of supported sources, SQL over HTTP against Cloud services, a few agent-friendly output tweaks, and a standalone Rust client library for the ClickHouse Cloud API.
If you already have clickhousectl installed, update with:
clickhousectl update
If you don't, install it with:
curl https://clickhouse.com/cli | sh
Postgres #
clickhousectl now manages Postgres, too. Just like ClickHouse, you can use it locally (Docker-backed) and in ClickHouse Cloud (managed Postgres). Develop locally, and go to Cloud when you're ready for prod. Postgres managed by ClickHouse gives you the fastest, enterprise-grade cloud Postgres, backed by NVMes, with HA, read replicas, and point-in-time restore.
Local Postgres runs as a Docker container, keyed on (name, major version). Data lives under .clickhouse/servers/<name>-pg<major>/data/, so a single name can host multiple Postgres majors with isolated state. Supported versions are 16, 17, and 18.
# Pre-pull an image (optional; start pulls on demand)
clickhousectl local install postgres@16
# Start a Postgres instance
clickhousectl local postgres start --name dev --version 16 --port 5433
# Connect with psql (host psql if installed, otherwise docker exec)
clickhousectl local postgres client --name dev --query "SELECT 1"
# Write connection vars to .env
clickhousectl local postgres dotenv --name dev
# Stop / remove
clickhousectl local postgres stop dev
clickhousectl local postgres remove dev
ClickHouse and Postgres servers share server list, so you can see both engines side by side in a single command.
Cloud-managed Postgres requires a ClickHouse Cloud account, and the CLI must be authenticated with API Keys.
# Create a managed Postgres service
clickhousectl cloud postgres create \
--name my-pg \
--region us-east-1 \
--size c6gd.large \
--storage-gb 100 \
--pg-version 17 \
--ha-type sync
ClickPipes #
clickhousectl now creates and manages ClickPipes, ClickHouse Cloud's managed connectors for streaming and batch ingest.
Supported sources:
| Source | Mode | Subcommand |
|---|---|---|
| S3 / GCP / Azure Blob | Batch | clickpipe create object-storage |
| Kafka / Redpanda / Confluent / MSK | Streaming | clickpipe create kafka |
| Amazon Kinesis | Streaming | clickpipe create kinesis |
| Postgres | CDC | clickpipe create postgres |
| MySQL | CDC | clickpipe create mysql |
| MongoDB | CDC | clickpipe create mongodb |
| BigQuery | Snapshot | clickpipe create bigquery |
Creating a Kafka pipe:
clickhousectl cloud clickpipe create kafka <service-id> \
--name my-kafka-pipe \
--brokers 'broker:9092' --topics events \
--format JSONEachRow \
--kafka-type redpanda \
--auth SCRAM-SHA-256 --username user --password pass \
--ca-certificate ./ca.crt \
--database default --table events \
--column "event_id:Int64" --column "name:String"
Creating a Postgres CDC pipe:
clickhousectl cloud clickpipe create postgres <service-id> \
--name my-pg-pipe \
--host db.example.com --pg-database mydb \
--username pguser --password pgpass \
--table-mapping "public.users:public_users" \
--table-mapping "public.orders:public_orders"
Once a pipe is running, you can list, start, stop, scale, resync (for CDC pipes), and delete it:
clickhousectl cloud clickpipe list <service-id>
clickhousectl cloud clickpipe scale <service-id> <clickpipe-id> \
--replicas 2 --cpu-millicores 250 --memory-gb 1
clickhousectl cloud clickpipe resync <service-id> <clickpipe-id>



