clickhousectl es la CLI de ClickHouse para entornos locales y en la nube.
Con clickhousectl puedes:
- Instalar y gestionar versiones locales de ClickHouse
- Iniciar y gestionar servidores locales de ClickHouse
- Ejecutar y gestionar instancias locales de Postgres
- Ejecutar consultas en servidores de ClickHouse
- Configurar ClickHouse Cloud y crear clústeres de ClickHouse gestionados en la nube
- Crear y gestionar servicios de Postgres de ClickHouse Cloud
- Gestionar recursos de ClickHouse Cloud
- Crear y gestionar ClickPipes para la ingestión de datos (S3, Kafka, Kinesis, Postgres, MySQL, MongoDB, BigQuery)
- Instalar las Skills oficiales para agentes de ClickHouse en agentes de codificación compatibles
- Llevar tu desarrollo local de ClickHouse a la nube
clickhousectl ayuda a personas y agentes de IA a desarrollar con ClickHouse.
Instalación
Instalación rápida
~/.local/bin/clickhousectl. También se crea automáticamente un alias chctl para mayor comodidad.
Requisitos
- macOS (aarch64, x86_64) o Linux (aarch64, x86_64)
- Los comandos de Cloud requieren una clave de API de ClickHouse Cloud
Local
Instalación y gestión de versiones de ClickHouse
clickhousectl descarga los binarios de ClickHouse desde builds.clickhouse.com y recurre a packages.clickhouse.com (Linux) o a GitHub releases (macOS) cuando no hay una compilación disponible en ese sitio.
local use también crea un enlace simbólico en ~/.local/bin/clickhouse que apunta al binario de la versión seleccionada, para que el comando clickhouse a secas (p. ej., clickhouse local, clickhouse client) esté en PATH. Pasa --no-global para omitirlo. Si ya existe un archivo normal en esa ruta, se deja intacto y se muestra una advertencia. local remove de la versión predeterminada activa también elimina el enlace simbólico.
Almacenamiento de los binarios de ClickHouse
Los binarios de ClickHouse se almacenan en un repositorio global, de modo que varios proyectos puedan usarlos sin duplicar el almacenamiento. Los binarios se almacenan en~/.clickhouse/:
Inicialización de un proyecto
init inicializa tu directorio de trabajo actual con una estructura de carpetas estándar para los archivos de tu proyecto de ClickHouse y Postgres. Es opcional; si lo prefieres, puedes usar tu propia estructura de carpetas.
Crea la siguiente estructura:
Ejecutar consultas
Crear y gestionar servidores de ClickHouse
Inicie y administre instancias de servidores de ClickHouse. Cada servidor tiene su propio directorio de datos aislado en.clickhouse/servers/<name>/data/.
--name, el primer servidor se llama “default”. Si “default” ya está en ejecución, se genera un nombre aleatorio (por ejemplo, “bold-crane”). Use --name para asignar identidades estables que pueda iniciar y detener repetidamente.
Puertos: Los puertos predeterminados son HTTP 8123 y TCP 9000. Si ya están en uso, se asignan automáticamente puertos libres y se muestran en la salida. Use --http-port y --tcp-port para establecer puertos específicos.
Gestión global de servidores: Use --global con list, stop y stop-all para operar en todos los proyectos del sistema. server list --global muestra todos los servidores de ClickHouse en ejecución, con una columna Project que indica a qué directorio pertenece cada uno.
Archivos de configuración personalizados para servidores locales
Los servidores locales se inician con valores predeterminados adecuados, pero a veces necesitas cambiar algún ajuste. Coloca un archivo de configuración en~/.clickhouse/configs/ y aplícalo por nombre al iniciar un servidor:
config.d), por lo que solo necesita contener los ajustes que quieras cambiar y no es necesario reproducir una configuración completa. Los archivos pueden ser .xml, .yaml o .yml, y puedes hacer referencia a ellos por nombre, con o sin la extensión.
Directorio local de datos del proyecto
Todos los datos del servidor se almacenan en.clickhouse/, dentro del directorio del proyecto:
clickhousectl local server remove <name> para eliminar permanentemente los datos de un servidor.
Ejecutar Postgres local
Además de ClickHouse,clickhousectl puede ejecutar y administrar instancias locales de Postgres. Postgres local se ejecuta sobre Docker, por lo que Docker debe estar instalado y en funcionamiento. Cada instancia se identifica por su nombre y su versión principal, por lo que varias versiones de Postgres pueden ejecutarse en paralelo con directorios de datos independientes.
Autenticación
Autentíquese en ClickHouse Cloud mediante API keys (recomendado) u OAuth (en el navegador). Si aún no tiene una cuenta de ClickHouse Cloud,clickhousectl cloud auth signup abre la página de registro en su navegador.
API key/secreto de la API (recomendado)
Las API keys son la forma recomendada de autenticarse, especialmente cuando se usa la CLI desde un agente de IA. Puedes crear API keys con permisos limitados que otorgan solo los permisos que elijas (solo lectura o lectura/escritura), y cada clave está vinculada a una sola organización. Esto la convierte en una forma segura de dar acceso a la CLI con el mínimo privilegio..clickhouse/credentials.json (en el directorio local del proyecto).
También puedes usar variables de entorno, ya sea exportadas en tu sesión:
.env en tu directorio de trabajo actual:
Inicio de sesión con OAuth
.clickhouse/tokens.json (local del proyecto).
Actualmente, el acceso con OAuth es de solo lectura y otorga acceso a todas las organizaciones a las que perteneces. Para obtener acceso de escritura o limitar el alcance de la CLI a una sola organización, crea una API key con alcance definido.
Estado de la autenticación y cierre de sesión
.clickhouse/credentials.json > variables de entorno exportadas > archivo .env > tokens de OAuth.
Depuración del origen de credenciales utilizado
Pasa--debug a cualquier comando cloud para que imprima en stderr el origen de credenciales resuelto (y la URL de la API) antes de ejecutar el comando.
Cloud
Administre los servicios de ClickHouse Cloud a través de la API.Organizaciones
Servicios
Opciones de creación del servicio
Modos de autenticación de Query API
cloud service query es la forma canónica de ejecutar SQL en un servicio de Cloud a través de HTTP, sin necesitar el binario clickhouse ni la contraseña del servicio. Funciona con ambos modos de credenciales:
- Autenticación con API key (SQL de lectura y escritura): la primera vez que
cloud service queryse ejecuta en un servicio sin una clave almacenada, aprovisiona un endpoint de Query API para ese servicio y crea una API key dedicada asociada a él. La clave (keyId,keySecretyendpointId) se almacena en.clickhouse/credentials.jsonenservice_query_keys.<service-id>. La clave queda limitada a un único servicio, por lo que puede leer y escribir (SELECT, INSERT, DDL) en ese servicio, pero no puede acceder a ningún otro servicio del org. Pase--no-auto-enablepara que falle en lugar de aprovisionarlo. - OAuth (
cloud auth login): la consulta se ejecuta con su propia identidad, igual que en la consola web de SQL. Sus permisos de SQL en el servicio son de solo lectura cuando usa OAuth. No se aprovisiona ni se almacena ninguna Query API key.--no-auto-enableno tiene efecto en este modo.
cloud service start. Establezca CLICKHOUSE_CLOUD_QUERY_HOST para sobrescribir el host derivado de Query API.
Gestión de endpoints de consulta
Administración de Private Endpoint
Configuración de copia de seguridad
Servicios de Postgres
clickhousectl también puede crear y gestionar servicios de Postgres de ClickHouse Cloud, siguiendo el mismo esquema que los comandos del servicio de ClickHouse anteriores. GCP está en vista previa privada; indica --provider gcp con una región y un tamaño de instancia de GCP.
Opciones de creación del servicio Postgres
Copias de seguridad
ClickPipes
Gestiona ClickPipes para ingestar datos en ClickHouse Cloud desde fuentes externas.Creación de ClickPipes
Cada tipo de fuente tiene su propio subcomando dentro declickpipe create:
clickhousectl cloud clickpipe create <source> --help para ver la lista completa de opciones para cada tipo de fuente.
Miembros
Invitaciones
Claves
Actividad
Salida en JSON
Usa la opción--json para imprimir respuestas en formato JSON.
clickhousectl detecta automáticamente contextos de agentes de codificación (Claude Code, Cursor, Codex, Gemini CLI, Goose, Devin y cualquier herramienta que establezca la variable de entorno estándar AGENT) y emite JSON en stdout automáticamente sin configurar --json.
Códigos de salida
Los códigos de salida siguen las convenciones de la CLIgh:
Skills
Instala el paquete oficial ClickHouse Agent Skills desde ClickHouse/agent-skills.Opciones no interactivas
Autoactualización
clickhousectl puede actualizarse a la versión más reciente:
Telemetría
clickhousectl recopila telemetría de uso anónima para ayudarnos a entender cómo se usa la CLI. Está habilitada de forma predeterminada, pero no se envía nada antes de que reciba una notificación: en la primera ejecución, la CLI muestra un aviso que explica qué se recopila y cómo desactivarla, y no envía nada. La recopilación solo comienza en ejecuciones posteriores, por lo que siempre puede excluirse antes de que se recopile nada.
Cada evento contiene únicamente:
- El comando ejecutado (por ejemplo,
local start) y los nombres de los indicadores utilizados — nunca los valores de los indicadores, argumentos posicionales ni ninguna otra entrada proporcionada por el usuario; por tanto, nunca se recopilan consultas, nombres de tablas, credenciales ni rutas de archivos - El código de salida (por ejemplo,
0,1,2,4) y el resultado (por ejemplo,ok,error,cancelled) - En el caso de comandos mal escritos, la sugerencia «quizás quiso decir» mostrada por la CLI — solo se registra cuando coincide exactamente con el nombre de un comando o indicador real, por lo que nunca puede contener lo que escribió
- La versión de
clickhousectl, el sistema operativo, la arquitectura y si la CLI fue invocada por un agente de IA (y cuál) o en CI
- Ejecute
clickhousectl telemetry disable(vuelva a habilitarla conenabley compruebe el estado constatus) - Establezca la variable de entorno
DO_NOT_TRACK=1
CHCTL_TELEMETRY_DEBUG=1 para imprimir la carga útil exacta en stderr sin enviar nada.