A standalone ClickHouse interactive CLI client for Go applications.
- 🚀 Full ClickHouse SQL support
- 📊 Vertical/Horizontal display modes
- ⏱️ Query timing
- 💾 Connection pooling
- 🎯 System tables support
- 📈 Optimized for analytical queries
go get github.com/binrchq/clickhouse-clipackage main
import (
"log"
"os"
clickhousecli "github.com/binrchq/clickhouse-cli"
)
func main() {
cli := clickhousecli.NewCLI(
os.Stdin,
"localhost",
9000,
"default",
"password",
"default",
)
if err := cli.Connect(); err != nil {
log.Fatal(err)
}
defer cli.Close()
if err := cli.Start(); err != nil {
log.Fatal(err)
}
}SELECT- Query (with complex analytics support)INSERT- Insert dataCREATE TABLE- Create tableDROP TABLE- Delete tableOPTIMIZE TABLE- Optimize table
SELECT * FROM system.databases
SELECT * FROM system.tables
SELECT * FROM system.processes
SELECT * FROM system.query_logUSE <database>- Switch databaseSHOW DATABASES- List databasesSHOW TABLES- List tablesDESCRIBE TABLE- Describe tablehelp- Show helptiming- Toggle timingvertical- Toggle vertical output
- Go 1.21 or higher
- ClickHouse 20.3 or higher
- github.com/ClickHouse/clickhouse-go/v2 - ClickHouse driver
- github.com/chzyer/readline - Readline library
MIT License - see LICENSE file for details.
Maintained by binrc.
- mysql-cli - MySQL CLI
- postgres-cli - PostgreSQL CLI