
Description
Sets up and manages Postgres using the clickhousectl CLI — runs a local Docker-backed Postgres for development, and creates and operates managed ClickHouse Cloud Postgres services (connections, TLS, runtime config, read replicas, failover, point-in-time restore). Use when the user wants a Postgres or PostgreSQL database for their application, a local Postgres dev environment, psql access, or a managed/production Postgres in ClickHouse Cloud, or mentions moving a local Postgres to production.
SKILL.md
Postgres with clickhousectl
clickhousectl manages Postgres in two environments:
- Local — named, Docker-backed Postgres instances on the user's machine, for development.
- Cloud — managed Postgres services in ClickHouse Cloud (beta), for production: HA, read replicas, point-in-time restore.
This file routes to the right reference. The step-by-step workflows live in ref/local.md and ref/cloud.md — read the one that matches the user's situation before running commands.
Which reference to use
| The user wants to... | Read |
|---|---|
| Develop or prototype locally, run tests/CI against Postgres, no cloud account needed | ref/local.md |
| Go to production, host a managed Postgres, or use ClickHouse Cloud explicitly | ref/cloud.md |
| Operate an existing cloud service (passwords, TLS, config, replicas, failover, restore) | ref/cloud.md |
| Develop locally now, ship to production later | Start with ref/local.md; it points to ref/cloud.md when it's time to go to prod |
If it's genuinely ambiguous (e.g. "set up Postgres for my app"), default to local for development tasks and ask before creating anything in the cloud — cloud services cost money.
Prerequisites (both workflows)
Check that clickhousectl is installed:
which clickhousectl
If not found, install it:
curl -fsSL https://clickhouse.com/cli | sh
This installs to ~/.local/bin/clickhousectl (with a chctl alias). If the command is still not found, suggest export PATH="$HOME/.local/bin:$PATH" or a new terminal.
All commands accept --json for machine-readable output. Exit codes follow gh conventions: 0 success, 1 error, 2 cancelled, 4 auth required.
Related
- To replicate Postgres data into ClickHouse for analytics, see ClickPipes (
clickhousectl cloud clickpipe --help). - For ClickHouse itself (local development or ClickHouse Cloud services), use the
infra-clickhouseskill.
More skills from the agent-skills repository
View all 8 skillschdb-datastore
accelerate pandas with chDB datastore
Apr 15ClickHouseData AnalysisData EngineeringPerformance +1chdb-sql
run ClickHouse SQL queries in Python
Apr 15ClickHouseData AnalysisData EngineeringPython +1clickhouse-architecture-advisor
advise on ClickHouse architectures
Apr 15ArchitectureClickHouseData EngineeringDatabase +1clickhouse-best-practices
review ClickHouse schemas and queries
Apr 6ClickHouseCode ReviewDatabasePerformance +1clickhouse-js-node-rowbinary
encode and decode ClickHouse RowBinary streams
Jul 1API DevelopmentClickHouseDatabaseJavaScript +1clickhouse-managed-postgres-rca
diagnose performance issues on ClickHouse-managed Postgres
Jun 8ClickHouseDebuggingMonitoringObservability +3
More from ClickHouse
View publisherinfra-clickhouse
manage ClickHouse server instances
agent-skills
Jul 28CLIClickHouseDatabaseDeployment +1clickhouse-js-node-coding
build Node.js applications with ClickHouse
clickhouse-js
May 6BackendClickHouseDatabaseNode.jsclickhouse-js-node-troubleshooting
troubleshoot ClickHouse Node.js client
clickhouse-js
Apr 14ClickHouseDebuggingNode.jsTypeScriptclickstack-otel-collector
set up OpenTelemetry collector for ClickHouse
clickhouse-docs
Jun 11ClickHouseLogsMetricsObservability +1setup
set up ClickHouse MCP server connections
clickhouse-claude-code-plugin
Apr 19ClickHouseDatabaseLocal DevelopmentMCP