用途:chcli 是轻量级 ClickHouse 命令行客户端,用于运行 SQL 查询、探索数据库结构(库、表、字段)以及从 ClickHouse 提取数据,适合命令行使用或作为智能体工作流的数据访问工具。
主要能力:支持行内 SQL(-q)、SQL 文件(-f)和标准输入管道三种查询方式;输出格式包括 json、jsonl、csv、tsv、pretty、vertical、markdown、sql 等,也可使用 ClickHouse 原生格式名;支持 SHOW DATABASES/TABLES、DESCRIBE TABLE、SHOW CREATE TABLE 等结构查询,以及按条件导出 CSV/JSON。
使用方式:可用 bunx @obsessiondb/chcli -q "SELECT 1" 或 npx @obsessiondb/chcli -q "SELECT 1" 运行;也可全局安装(bun install -g chcli)。连接可经命名环境(存储在 ~/.config/chcli/config.json,配合 chcli env add/list/use 管理)、环境变量(如 CLICKHOUSE_HOST、CLICKHOUSE_PORT、CLICKHOUSE_USER、CLICKHOUSE_PASSWORD、CLICKHOUSE_DATABASE、CLICKHOUSE_SECURE、CLICKHOUSE_URL)或命令行参数配置;解析优先级为命令行参数 > 命名环境 > 单个环境变量 > CLICKHOUSE_URL > 默认值。查询时建议用 -F json 或 -F csv 便于程序解析,-t 打印执行时间,-v 输出查询元数据。
适用场景:结构发现、数据探索、按条件导出数据,以及智能体/自动化脚本中连接 ClickHouse 执行查询。
限制:默认输出格式随 TTY 环境变化,不宜用于解析,应显式指定格式;对 SELECT 建议加 LIMIT,因为 ClickHouse 表可能包含数十亿行;建议先用 count() 确认行数;不熟悉的库应先做结构发现。资料未提供错误处理、超时、认证方式之外的安全细节、并发限制或具体版本兼容性信息。