Saltar al contenido principal
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

El script de instalación descarga la versión adecuada para tu sistema operativo y la instala en ~/.local/bin/clickhousectl. También se crea automáticamente un alias chctl para mayor comodidad.

Requisitos

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/.
Nombres de los servidores: Sin --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:
El archivo especificado se superpone a la configuración predeterminada integrada de ClickHouse (mediante 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:
Cada servidor con nombre tiene su propio directorio de datos, por lo que los servidores están completamente aislados entre sí. Los datos persisten entre reinicios. Detén e inicia un servidor por nombre para retomar donde lo dejaste. Usa 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.
Las credenciales se guardan en .clickhouse/credentials.json (en el directorio local del proyecto). También puedes usar variables de entorno, ya sea exportadas en tu sesión:
O bien, en un archivo .env en tu directorio de trabajo actual:
O bien, pasa las credenciales directamente mediante flags en cualquier comando:

Inicio de sesión con OAuth

Esto abre el navegador para autenticarse mediante el flujo de dispositivos de OAuth. Los tokens se guardan en .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

Orden de resolución de credenciales: opciones de la CLI > .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

OpciónDescripción
--nameNombre del servicio (obligatorio)
--providerProveedor de nube: aws, gcp, azure (predeterminado: aws)
--regionRegión (predeterminada: us-east-1)
--min-replica-memory-gbMemoria mínima por réplica en GB (8-356, múltiplo de 4)
--max-replica-memory-gbMemoria máxima por réplica en GB (8-356, múltiplo de 4)
--num-replicasNúmero de réplicas (1-20)
--idle-scalingPermitir escalar a cero (predeterminado: true)
--idle-timeout-minutesTiempo mínimo de inactividad en minutos (>= 5)
--ip-allowCIDR de IP permitido (repetible, predeterminado: 0.0.0.0/0)
--backup-idID de la copia de seguridad desde la que restaurar
--release-channelCanal de lanzamiento: slow, default, fast
--data-warehouse-idID del almacén de datos (para réplicas de lectura)
--readonlyHacer que el servicio sea de solo lectura
--encryption-keyClave de cifrado de disco del cliente
--encryption-roleARN del rol para el cifrado de disco
--enable-tdeHabilitar Cifrado transparente de datos
--compliance-typeCumplimiento normativo: hipaa, pci
--profilePerfil de instancia (enterprise)
--tagAdjuntar una etiqueta de servicio GA (key o key=value)
--enable-endpoint / --disable-endpointActivar o desactivar endpoints de servicio GA (actualmente mysql)
--private-preview-terms-checkedAceptar los términos de la vista previa privada cuando sea necesario
--enable-core-dumpsHabilitar o deshabilitar la recopilación de volcados de memoria 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 query se 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, keySecret y endpointId) se almacena en .clickhouse/credentials.json en service_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-enable para 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-enable no tiene efecto en este modo.
Si consulta un servicio en estado idled, se reactivará automáticamente en ambos modos de autenticación (la primera consulta puede tardar un minuto). Un servicio stopped nunca se reactiva: la consulta falla con una sugerencia para ejecutar 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 ClickHouse Cloud Postgres, siguiendo el mismo esquema que los comandos del servicio de ClickHouse anteriores.

Opciones de creación del servicio Postgres

OpciónDescripción
--nameNombre del servicio (obligatorio)
--regionRegión, p. ej. us-east-1 (obligatorio)
--sizeTamaño de la instancia, p. ej. m7i.2xlarge (obligatorio)
--providerProveedor de nube (predeterminado: aws)
--pg-versionVersión principal: 18, 17
--ha-typeAlta disponibilidad: none, async, sync
--tagEtiqueta de recurso key o key=value (repetible)
--pg-config-fileRuta a un archivo JSON con un objeto PgConfig
--pg-bouncer-config-fileRuta a un archivo JSON con un objeto PgBouncerConfig

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 de clickpipe create:
Usa 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 CLI gh:
CódigoSignificado
0Éxito
1Error (cualquier caso no clasificado a continuación)
2Cancelado (el usuario lo abortó)
4Se requiere autenticación (sin credenciales, 401/403, escrituras solo con OAuth)

Skills

Instala el paquete oficial ClickHouse Agent Skills desde ClickHouse/agent-skills.

Opciones no interactivas

OpciónDescripción
--agent <name>Instala Skills para un agente específico (se puede repetir)
--globalUsa el alcance global; si se omite, se usa el alcance del proyecto
--allInstala Skills para todos los agentes compatibles
--detected-onlyInstala Skills para los agentes compatibles detectados en el sistema

Autoactualización

clickhousectl puede actualizarse a la versión más reciente:
La CLI también busca actualizaciones en segundo plano (como máximo una vez cada 24 horas) y muestra un aviso cuando hay una versión más reciente disponible.
Última modificación el 2 de julio de 2026