Skip to main content
clickhousectl — это CLI для ClickHouse: локального и Cloud. С помощью clickhousectl вы можете:
  • Устанавливать локальные версии ClickHouse и управлять ими
  • Запускать локальные серверы ClickHouse и управлять ими
  • Запускать локальные экземпляры Postgres и управлять ими
  • Выполнять запросы к серверам ClickHouse
  • Настраивать ClickHouse Cloud и создавать кластеры ClickHouse под управлением Cloud
  • Создавать сервисы Postgres в ClickHouse Cloud и управлять ими
  • Управлять ресурсами ClickHouse Cloud
  • Создавать ClickPipes для ингестии данных (S3, Kafka, Kinesis, Postgres, MySQL, MongoDB, BigQuery) и управлять ими
  • Устанавливать официальные навыки агентов ClickHouse в поддерживаемые агенты для программирования
  • Переносить локальную разработку на ClickHouse в облако
clickhousectl помогает людям и AI-агентам разрабатывать решения на ClickHouse.

Установка

Быстрая установка

Скрипт установки загружает подходящую версию для вашей ОС и устанавливает её в ~/.local/bin/clickhousectl. Для удобства также автоматически создаётся алиас chctl.

Требования

  • macOS (aarch64, x86_64) или Linux (aarch64, x86_64)
  • Для выполнения команд Cloud требуется API-ключ ClickHouse Cloud

Локально

Установка и управление версиями ClickHouse

clickhousectl загружает бинарные файлы ClickHouse с builds.clickhouse.com, а если нужная сборка там недоступна — с packages.clickhouse.com (Linux) или из GitHub releases (macOS).
local use также создаёт символическую ссылку ~/.local/bin/clickhouse, указывающую на бинарный файл выбранной версии, чтобы обычная команда clickhouse (например, clickhouse local, clickhouse client) была доступна в PATH. Чтобы пропустить это, передайте --no-global. Если по этому пути уже существует обычный файл, он будет оставлен без изменений, а вы получите предупреждение. local remove для активной версии по умолчанию также удаляет символическую ссылку.

Хранение бинарных файлов ClickHouse

Бинарные файлы ClickHouse хранятся в глобальном репозитории, поэтому их можно использовать в нескольких проектах без повторного хранения. Бинарные файлы хранятся в ~/.clickhouse/:

Инициализация проекта

init создает в текущем рабочем каталоге стандартную структуру папок для файлов вашего проекта ClickHouse и Postgres. Это необязательно: при желании вы можете использовать собственную структуру папок. Будет создана следующая структура:

Выполнение запросов

Создание и управление серверами ClickHouse

Запускайте серверы ClickHouse и управляйте ими. Для каждого сервера создаётся собственный изолированный каталог данных: .clickhouse/servers/<name>/data/.
Имена серверов: Без --name первый сервер получает имя “default”. Если “default” уже запущен, автоматически генерируется случайное имя (например, “bold-crane”). Используйте --name, чтобы задать постоянные идентификаторы, с которыми серверы можно многократно запускать и останавливать. Порты: По умолчанию используются порты HTTP 8123 и TCP 9000. Если они уже заняты, свободные порты назначаются автоматически и отображаются в выводе. Используйте --http-port и --tcp-port, чтобы явно задать порты. Глобальное управление серверами: Используйте --global с list, stop и stop-all, чтобы выполнять операции во всех проектах в масштабе всей системы. server list --global показывает все запущенные серверы ClickHouse со столбцом Project, который указывает, к какому каталогу относится каждый сервер.

Пользовательские файлы конфигурации для локальных серверов

Локальные серверы запускаются с подходящими настройками по умолчанию, но иногда требуется изменить тот или иной параметр. Поместите файл конфигурации в ~/.clickhouse/configs/ и укажите его имя при запуске сервера:
Указанный файл накладывается поверх встроенной конфигурации ClickHouse по умолчанию (через config.d), поэтому он должен содержать только те настройки, которые вы хотите изменить, и нет необходимости дублировать весь config. Файлы могут иметь расширение .xml, .yaml или .yml, и на них можно ссылаться по имени как с расширением, так и без него.

Локальный каталог данных проекта

Все данные сервера хранятся в .clickhouse/ в каталоге проекта:
У каждого именованного сервера есть собственный каталог данных, поэтому серверы полностью изолированы друг от друга. Данные сохраняются между перезапусками. Остановите и снова запустите сервер по имени, чтобы продолжить работу с того места, на котором остановились. Используйте clickhousectl local server remove <name>, чтобы навсегда удалить данные сервера.

Запуск локального Postgres

Помимо ClickHouse, clickhousectl может запускать локальные экземпляры Postgres и управлять ими. Локальный Postgres работает на базе Docker, поэтому Docker должен быть установлен и запущен. Каждый экземпляр определяется по имени и основной версии, поэтому несколько версий Postgres могут работать параллельно, используя отдельные каталоги данных.

Аутентификация

Войдите в ClickHouse Cloud с помощью ключей API (рекомендуется) или OAuth (через браузер). Если у вас еще нет аккаунта ClickHouse Cloud, clickhousectl cloud auth signup откроет страницу регистрации в вашем браузере.

API-ключ/секрет (рекомендуется)

Ключи API — рекомендуемый способ аутентификации, особенно если CLI использует ИИ-агент. Вы можете создать ключи API с ограниченной областью действия, которые дают только выбранные вами разрешения (только для чтения или чтение/запись), при этом каждый ключ привязан к одной организации. Это безопасный способ предоставить CLI доступ с минимально необходимыми привилегиями.
Учетные данные сохраняются в .clickhouse/credentials.json (в каталоге проекта). Вы также можете использовать переменные окружения, экспортированные в текущем сеансе:
Или поместите их в файл .env в текущем рабочем каталоге:
Или передайте учетные данные напрямую через флаги любой команды:

Вход через OAuth

Это откроет браузер для аутентификации через OAuth Device Flow. Токены сохраняются в .clickhouse/tokens.json (локально для проекта).
В настоящее время доступ через OAuth доступен только для чтения и предоставляет доступ ко всем организациям, в которые вы входите. Чтобы получить доступ на запись или ограничить CLI одной организацией, вместо этого создайте API-ключ с ограниченной областью действия.

Статус авторизации и выход

Порядок приоритета учетных данных: флаги CLI > .clickhouse/credentials.json > экспортированные переменные окружения > файл .env > токены OAuth.

Отладка: какой источник учётных данных использовался

Передайте --debug любой команде cloud, чтобы перед её выполнением вывести в stderr, какой источник учётных данных был определён (а также URL API).

Cloud

Управляйте сервисами ClickHouse Cloud через API.

Организации

Сервисы

Параметры создания сервиса

Режимы аутентификации Query API

cloud service query — основной способ выполнять SQL-запросы к облачному сервису по HTTP без использования бинарного файла clickhouse и без пароля сервиса. Он поддерживает оба режима учетных данных:
  • Аутентификация по ключу API (чтение и запись SQL): при первом запуске cloud service query для сервиса, у которого нет сохраненного ключа, команда подготавливает для этого сервиса конечную точку Query API и создает отдельный ключ API, привязанный к ней. Ключ (keyId, keySecret и endpointId) сохраняется в .clickhouse/credentials.json в разделе service_query_keys.<service-id>. Область действия ключа ограничена одним сервисом, поэтому он может читать и записывать данные (SELECT, INSERT, DDL) в этом сервисе, но не может обращаться к другим сервисам в организации. Передайте --no-auto-enable, чтобы команда завершалась ошибкой вместо автоматической подготовки.
  • OAuth (cloud auth login): запрос выполняется от имени вашей учетной записи, как и в веб-консоли SQL. При использовании OAuth у вас есть только только для чтения SQL-разрешения для сервиса. Ключ Query API не создается и не сохраняется. В этом режиме --no-auto-enable не действует.
При выполнении запроса к сервису в состоянии idled он автоматически выводится из этого состояния в обоих режимах аутентификации (первый запрос может занять до минуты). Сервис в состоянии stopped никогда не запускается автоматически: запрос завершается ошибкой с подсказкой выполнить cloud service start. Задайте CLICKHOUSE_CLOUD_QUERY_HOST, чтобы переопределить вычисленный хост Query API.

Управление эндпоинтами запросов

Управление частной конечной точкой

Настройка резервного копирования

Сервисы Postgres

clickhousectl также позволяет создавать сервисы ClickHouse Cloud Postgres и управлять ими по аналогии с командами для сервиса ClickHouse, приведёнными выше.

Параметры создания сервиса Postgres

Резервные копии

ClickPipes

Управляйте ClickPipes для ингестии данных из внешних источников в ClickHouse Cloud.

Создание ClickPipes

Для каждого типа источника предусмотрена своя подкоманда в clickpipe create:
Используйте clickhousectl cloud clickpipe create <source> --help, чтобы увидеть полный список параметров для каждого типа источника.

Участники

Приглашения

Ключи

Активность

Вывод в формате JSON

Используйте флаг --json, чтобы выводить ответы в формате JSON.
clickhousectl автоматически определяет контексты ИИ-ассистентов для программирования (Claude Code, Cursor, Codex, Gemini CLI, Goose, Devin и любые инструменты, которые задают стандартную переменную окружения AGENT) и автоматически выводит JSON в stdout без указания --json.

Коды выхода

Коды выхода соответствуют соглашениям CLI gh:

Навыки

Установите официальный набор навыков ClickHouse Agent Skills из ClickHouse/agent-skills.

Флаги неинтерактивного режима

Самообновление

clickhousectl может самостоятельно обновиться до последнего релиза:
CLI также проверяет наличие обновлений в фоновом режиме (не чаще одного раза в 24 часа) и показывает уведомление, когда доступна новая версия.

Телеметрия

clickhousectl собирает анонимную телеметрию об использовании, чтобы помочь нам понять, как используется CLI. Она включена по умолчанию, но до показа уведомления никакие данные не отправляются: при первом запуске CLI выводит уведомление с пояснением, какие данные собираются и как отключить сбор, но ничего не отправляет. Сбор начинается только при последующих запусках, поэтому у вас всегда есть возможность отказаться от него до сбора каких-либо данных. Каждое событие содержит только:
  • Выполненную команду (например, local start) и названия использованных флагов — никогда не значения флагов, позиционные аргументы или другие введенные пользователем данные, поэтому запросы, имена таблиц, учетные данные и пути к файлам никогда не собираются
  • Код завершения (например, 0, 1, 2, 4) и результат (например, ok, error, cancelled)
  • Для команд с опечатками — подсказку «возможно, вы имели в виду», показанную CLI; она записывается, только если в точности совпадает с именем существующей команды или флага, поэтому не может содержать введенный вами текст
  • Версию clickhousectl, ОС, архитектуру, а также информацию о том, был ли CLI вызван ИИ-агентом (и каким именно) или в CI
Телеметрия полностью анонимна: персональные данные не собираются, идентификаторы устройства или установки не используются. Чтобы отключить телеметрию, выполните одно из следующих действий:
  • Запустите clickhousectl telemetry disable (для повторного включения — enable, для проверки состояния — status)
  • Установите переменную окружения DO_NOT_TRACK=1
Установите CHCTL_TELEMETRY_DEBUG=1, чтобы вывести точную полезную нагрузку в stderr, ничего не отправляя.
Последнее изменение 14 августа 2026 г.