clickhousectl é a CLI do ClickHouse: local e na nuvem.
Com o clickhousectl, você pode:
- Instalar e gerenciar versões locais do ClickHouse
- Iniciar e gerenciar servidores locais do ClickHouse
- Executar e gerenciar instâncias locais do Postgres
- Executar consultas em servidores do ClickHouse
- Configurar o ClickHouse Cloud e criar clusters do ClickHouse gerenciados na nuvem
- Criar e gerenciar serviços Postgres no ClickHouse Cloud
- Gerenciar recursos do ClickHouse Cloud
- Criar e gerenciar ClickPipes para ingestão de dados (S3, Kafka, Kinesis, Postgres, MySQL, MongoDB, BigQuery)
- Instalar as ClickHouse Agent Skills oficiais de agent do ClickHouse em agentes de codificação compatíveis
- Enviar seu ambiente local de desenvolvimento com ClickHouse para a nuvem
clickhousectl ajuda pessoas e agentes de IA a desenvolver com ClickHouse.
Instalação
Instalação rápida
~/.local/bin/clickhousectl. Um alias chctl também é criado automaticamente para facilitar.
Requisitos
- macOS (aarch64, x86_64) ou Linux (aarch64, x86_64)
- Os comandos do Cloud exigem uma API key do ClickHouse Cloud
Local
Instalando e gerenciando versões do ClickHouse
clickhousectl baixa os binários do ClickHouse de builds.clickhouse.com e usa packages.clickhouse.com (Linux) ou os lançamentos do GitHub (macOS) como alternativa quando uma compilação não está disponível lá.
local use também cria um link simbólico em ~/.local/bin/clickhouse apontando para o binário da versão selecionada, para que o comando clickhouse simples (por exemplo, clickhouse local, clickhouse client) fique no PATH. Passe --no-global para ignorar isso. Se já existir um arquivo comum nesse caminho, ele será mantido como está, com um aviso. O local remove da versão padrão ativa também remove o link simbólico.
Armazenamento dos binários do ClickHouse
~/.clickhouse/:
Iniciando um projeto
init prepara seu diretório de trabalho atual com uma estrutura de pastas padrão para os arquivos do seu projeto ClickHouse e Postgres. É opcional; se preferir, você pode usar sua própria estrutura de pastas.
Ele cria a seguinte estrutura:
Executar consultas
Como criar e gerenciar servidores ClickHouse
.clickhouse/servers/<name>/data/.
--name, o primeiro servidor recebe o nome “default”. Se “default” já estiver em execução, um nome aleatório será gerado (por exemplo, “bold-crane”). Use --name para ter identidades estáveis que possam ser iniciadas e interrompidas repetidamente.
Portas: As portas padrão são HTTP 8123 e TCP 9000. Se essas portas já estiverem em uso, portas livres serão atribuídas automaticamente e exibidas na saída. Use --http-port e --tcp-port para definir portas específicas.
Gerenciamento global de servidores: Use --global com list, stop e stop-all para operar em todos os projetos do sistema. server list --global mostra todos os servidores ClickHouse em execução, com uma coluna Project indicando a qual diretório cada um pertence.
Arquivos de configuração personalizados para servidores locais
~/.clickhouse/configs/ e aplique-o pelo nome ao iniciar um servidor:
config.d), portanto ele só precisa conter as configurações que você deseja alterar, e não há necessidade de reproduzir uma configuração completa. Os arquivos podem ser .xml, .yaml ou .yml, e você pode referenciá-los pelo nome com ou sem a extensão.
Diretório local de dados do projeto
.clickhouse/, no diretório do seu projeto:
clickhousectl local server remove <name> para excluir permanentemente os dados de um servidor.
Executando o Postgres local
clickhousectl pode executar e gerenciar instâncias locais do Postgres. O Postgres local usa o Docker como base, portanto o Docker deve estar instalado e em execução. Cada instância é identificada pelo nome e pela versão principal, então várias versões do Postgres podem ser executadas lado a lado, com diretórios de dados separados.
Autenticação
clickhousectl cloud auth signup abre a página de cadastro no seu navegador.
API key/segredo da API (recomendado)
.clickhouse/credentials.json (local do projeto).
Você também pode usar variáveis de ambiente, exportadas na sua sessão:
.env no diretório de trabalho atual:
Login com OAuth
.clickhouse/tokens.json (local ao projeto).
No momento, o acesso OAuth é somente leitura e concede acesso a todas as organizações às quais você pertence. Para acesso de gravação ou para limitar a CLI a uma única organização, crie uma API key com escopo.
Status da autenticação e logout
.clickhouse/credentials.json > variáveis de ambiente exportadas > arquivo .env > tokens OAuth.
Como depurar qual fonte de credenciais foi usada
--debug em qualquer comando cloud para exibir em stderr a fonte de credenciais determinada (e a URL da API) antes da execução do comando.
Cloud
Organizações
Serviços
Opções de criação do serviço
Modos de autenticação da Query API
cloud service query é a maneira padrão de executar SQL em um serviço na nuvem via HTTP, sem exigir o binário clickhouse nem a senha do serviço. Ele funciona com ambos os modos de credenciais:
- Autenticação por API key (leitura + escrita de SQL): na primeira vez que
cloud service queryé executado em um serviço sem uma chave armazenada, ele provisiona um endpoint da Query API para esse serviço e cria uma API key dedicada vinculada a ele. A chave (keyId,keySecreteendpointId) é armazenada em.clickhouse/credentials.json, emservice_query_keys.<service-id>. A chave fica restrita a um único serviço, portanto pode ler e escrever (SELECT, INSERT, DDL) nesse serviço, mas não pode acessar nenhum outro serviço na org. Passe--no-auto-enablepara falhar em vez de provisionar. - OAuth (
cloud auth login): a consulta é executada com a sua própria identidade, assim como no console SQL da web. Suas permissões de SQL no serviço são somente leitura ao usar OAuth. Nenhuma API key da Query API é provisionada nem armazenada.--no-auto-enablenão tem efeito nesse modo.
cloud service start. Defina CLICKHOUSE_CLOUD_QUERY_HOST para substituir o host derivado da Query API.
Gerenciamento de endpoints de consulta
Gerenciamento de Private Endpoint
Configuração do Backup
Serviços Postgres
clickhousectl também pode criar e gerenciar serviços ClickHouse Cloud Postgres, seguindo o mesmo padrão dos comandos de serviço do ClickHouse acima.
Opções de criação do serviço Postgres
Backups
ClickPipes
Criando ClickPipes
clickpipe create:
clickhousectl cloud clickpipe create <source> --help para ver a lista completa de opções para cada tipo de origem.
Membros
Convites
Chaves
Atividade
Saída em JSON
--json para imprimir respostas no formato JSON.
clickhousectl detecta automaticamente contextos de agentes de codificação (Claude Code, Cursor, Codex, Gemini CLI, Goose, Devin e qualquer ferramenta que defina a variável de ambiente padrão AGENT) e envia JSON para stdout automaticamente, sem definir --json.
Códigos de saída
gh:
Skills
Flags não interativas
Autoatualização
clickhousectl pode se autoatualizar para o lançamento mais recente: