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
Os binários do ClickHouse ficam armazenados em um repositório global, para que possam ser usados por vários projetos sem duplicar o armazenamento. Os binários são armazenados em~/.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
Inicie e gerencie instâncias do servidor ClickHouse. Cada servidor recebe seu próprio diretório de dados isolado em.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
Os servidores locais são iniciados com padrões adequados, mas às vezes é necessário ajustar uma configuração. Coloque um arquivo de configuração em~/.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
Todos os dados do servidor ficam em.clickhouse/, no diretório do seu projeto:
clickhousectl local server remove <name> para excluir permanentemente os dados de um servidor.
Executando o Postgres local
Além do ClickHouse, oclickhousectl 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
Faça a autenticação no ClickHouse Cloud usando API keys (recomendado) ou OAuth (no navegador). Se você ainda não tem uma conta no ClickHouse Cloud,clickhousectl cloud auth signup abre a página de cadastro no seu navegador.
API key/segredo da API (recomendado)
As API keys são a forma recomendada de autenticação, especialmente ao usar a CLI com um agente de IA. Você pode criar API keys com escopo que concedem apenas as permissões que você escolher (read-only ou leitura/gravação), e cada key está vinculada a uma única organização. Isso torna essa uma forma segura, com privilégio mínimo, de dar acesso à CLI..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
Passe--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
Gerencie os serviços do ClickHouse Cloud pela API.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. O GCP está em private preview; passe --provider gcp com uma região e um tamanho de instância do GCP.
Opções de criação do serviço Postgres
Backups
ClickPipes
Gerencie ClickPipes para ingestão de dados no ClickHouse Cloud a partir de fontes externas.Criando ClickPipes
Cada tipo de origem tem seu próprio subcomando noclickpipe 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
Use a flag--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
Os códigos de saída seguem as convenções da CLIgh:
Skills
Instale o pacote oficial ClickHouse Agent Skills em ClickHouse/agent-skills.Flags não interativas
Autoatualização
clickhousectl pode se autoatualizar para o lançamento mais recente:
Telemetria
clickhousectl coleta telemetria de uso anônima para nos ajudar a entender como a CLI é usada. Ela é ativada por padrão, mas nada é enviado antes de você ser informado: na primeira execução, a CLI exibe um aviso explicando o que é coletado e como desativar a telemetria, sem enviar nada. A coleta só começa nas execuções subsequentes, portanto você sempre tem a oportunidade de desativá-la antes que qualquer dado seja coletado.
Cada evento contém apenas:
- O comando executado (por exemplo,
local start) e os nomes das flags usadas — nunca os valores das flags, argumentos posicionais ou qualquer outra entrada fornecida pelo usuário. Portanto, consultas, nomes de tabelas, credenciais e caminhos de arquivos nunca são coletados. - O código de saída (por exemplo,
0,1,2,4) e o resultado (por exemplo,ok,error,cancelled) - Para comandos digitados incorretamente, a sugestão de “você quis dizer” exibida pela CLI — registrada somente quando corresponde exatamente ao nome de um comando ou flag existente, portanto nunca pode conter o que você digitou
- A versão do
clickhousectl, o SO, a arquitetura e se a CLI foi invocada por um agente de IA (e qual agente) ou em CI
- Execute
clickhousectl telemetry disable(para reativar, useenable; para verificar, usestatus) - Defina a variável de ambiente
DO_NOT_TRACK=1
CHCTL_TELEMETRY_DEBUG=1 para imprimir o payload exato em stderr sem enviar nada.