ClickHouse GUI That Handles Big Analytical Results
A desktop client for people whose SELECT count() is the small query.
A ClickHouse GUI that isn't a browser tab
SQLly is a native ClickHouse client for macOS, Windows and Linux, built in Rust. It talks to ClickHouse over the HTTP interface, keeps your connections and saved queries in one place, and treats a ten-million-row result as a Tuesday, not a crisis.
Most ClickHouse users I meet live in two places: clickhouse-client on the server, the Play UI off it. Both are fine tools. Neither is where you want an afternoon with more rows than your browser tab has patience, and neither keeps ClickHouse work next to the Postgres and MySQL databases you also run. That gap is why SQLly exists.
Connecting takes about a minute
SQLly connects over ClickHouse's HTTP interface. The port defaults to 8123, or 8443 with TLS. Enter host, user and password, or paste a clickhouse://user:password@host:8123/database URL. The password goes to your OS keychain, not a config file.
Private servers work like every other engine: SSH tunnels, proxies, Kubernetes port-forwards. Once you're in, schema-aware IntelliSense completes against your live tables and writes JOIN ... ON clauses from real foreign keys (how that works). Activity Monitor lists what's running and can kill it. And the safety guardrails still apply: read-only connections, production locks, and a warning before an UPDATE or DELETE without a WHERE clause runs. ClickHouse people don't write those often, which is exactly why the one time you do, you want a second opinion (details).
Big results without the freeze
ClickHouse's whole job is returning more rows than a reasonable client expects. A GROUP BY over a billion events can still hand millions of rows back, and this is where most clients fall over: the browser tab grows to 4 GB and dies, or the Java tool stops repainting and you watch a spinner instead of your data.
SQLly streams results with backpressure and spills to disk past a threshold. The grid pages from a file, so a 50-million-row result opens and scrolls like a small one while the app stays responsive. The mechanics are in streaming huge result sets.
It also respects ClickHouse's types instead of rounding everything into doubles and hoping. Wide integers and decimals keep every digit, and arrays, tuples and maps show up as JSON text you can actually read. An UInt64 that silently loses precision is a bug with extra steps.
Charts and pivots without leaving the query
The Play UI answers a question. SQLly is for the follow-ups. Comment directives inside your .sql files turn results into charts and pivots, and the setup travels with the query.
Say you have an events table and want signups per day:
-- sqlly view: chart
-- sqlly chart: kind:line; label:day; values:signups
SELECT toDate(created_at) AS day, count() AS signups
FROM events
WHERE event_name = 'signup'
GROUP BY day
ORDER BY day;
The chart tab opens drawn, every run, and clicking a mark selects the source rows in the grid. Pivoting is the same idea:
-- sqlly view: pivot
-- sqlly pivot: row:country; column:month; value:revenue:sum
SELECT country, toMonth(created_at) AS month, sum(amount) AS revenue
FROM events
WHERE event_name = 'signup'
GROUP BY country, month;
Full syntax lives in the docs: chart directive, pivot directive. Because directives are comments, the same files still run fine in clickhouse-client. Your SQL gets annotated, not locked in.
When clickhouse-client or the Play UI is the better choice
Honesty section, since you'd figure it out anyway.
Stay with clickhouse-client if you're on the server over SSH, scripting, or piping output into something else. It's already installed, it's purpose-built, and a GUI is not an improvement over a shell loop. Stay with the Play UI if you need zero install on a machine that isn't yours, or you genuinely run two queries a week.
And some honesty about SQLly: the free tier saves two servers (unlimited databases on each), and if your org has more than 100 employees, the free tier isn't for you. Paid is $100 once, or $200 for lifetime, no subscription, on the pricing page. The full rundown of what SQLly does with ClickHouse specifically is on the ClickHouse database page.
FAQ
Is there a free ClickHouse GUI? Yes. SQLly's free tier covers two saved servers with unlimited databases on each, and there's no trial clock. It's aimed at hobbyists; companies over 100 employees need a paid license, which is a one-time $100 rather than yearly rent.
Does SQLly run on Mac and Windows? Yes. macOS, Windows and Linux, all native, with the same 30 engines in every tier. ClickHouse included.
How do I connect to ClickHouse? Create a connection, pick ClickHouse, and enter host, user and password, or paste a clickhouse:// URL. SQLly uses the HTTP interface: port 8123 by default, 8443 with TLS. SSH tunnels, proxies and Kubernetes port-forwards are there for private servers.
Can a GUI handle ClickHouse-scale results? Most can't, which is why the question exists. SQLly streams results and spills them to disk, so a 50-million-row result set stays scrollable and the app stays responsive instead of becoming a very expensive spinner.
What can SQLly do that the Play UI can't? Save and organize queries as files, chart and pivot results with directives, keep ClickHouse next to 29 other engines, and keep working when the result set outgrows a browser tab.
Try it on your own queries
Open the live preview in your browser: the real workbench compiled to WebAssembly, running on sample data, no install and no account. If it feels right, download SQLly, point it at your ClickHouse server and run the query you normally use to test other clients' patience.
If it doesn't beat your current setup, close it and you've lost five minutes. If it does, welcome. ClickHouse from a desktop client has the longer version, and I read the changelogs of every ClickHouse client so you don't have to.