A data analyst’s workbench, in a browser tab.
Cupola is a fast, modern SQL workbench powered by DuckDB — running entirely in your browser. Write SQL, pivot and chart the results, and hand the hard parts to a built-in AI analyst. Open a live data source with a single link: no install, no account, no sign-in.
No install. No account to create. Free and open source.
A modern shell for working with data
Think of Cupola as a data analyst’s command center that opens in any browser. Under the hood it runs Haybarn — Query.Farm’s distribution of DuckDB — compiled to WebAssembly. That means a real, fast analytical database runs inside the tab: your queries don’t wait on a server, and your data doesn’t have to leave your machine.
It began as a way to test VGI in the browser, and grew into the thing people actually work in — a tabbed SQL editor, a terminal, pivot tables, charts and maps, a self-documenting catalog browser, and a built-in AI analyst.
VGI is Query.Farm’s way of turning APIs, services, and databases into live SQL tables. Cupola speaks it natively, so a single URL connects you to a ready-to-query source — but you don’t have to learn VGI to start. Open a source, and it’s just tables and SQL.
Everything an analyst needs, in one tab
A real database, in your browser
Cupola runs Haybarn — Query.Farm’s build of DuckDB — compiled to WebAssembly. Genuine analytical SQL runs locally in the tab, with no install and nothing to provision.
An editor built for real work
Tabbed queries with highlighting and completion, one-key formatting, export to CSV or Excel, a downloadable .sql file, and a Share button that puts the whole query in the URL.
A catalog that documents itself
A searchable tree of schemas, tables, views, functions and macros — with per-column types and descriptions, argument docs, example queries, and on-demand column profiling.
Pivot, chart, and map
Send any result to a Perspective pivot — group, split, aggregate, then switch to bars, lines, treemaps or heatmaps. Geometry columns draw as maps instead of hex strings.
An AI analyst on tap
A built-in assistant that writes and runs SQL, inspects your schema, charts what it finds, and explains it in plain language. Bring your own Anthropic API key.
A terminal when you want one
A full DuckDB shell with tab completion, history, dot commands, and a session that survives a reload — for when you would rather type than click.
Connects to anything that speaks VGI
Point it at a URL and it attaches. OAuth and PKCE are there for sources that need identity, per catalog — and your sign-in survives the redirect back to the query you were writing.
Yours to brand and to host
Load a colour theme from a URL or build one in the theme editor. Use the hosted build, deploy it to your own Cloudflare account, or run the Docker image behind your gateway.
Drag a result into a shape you can read
Any result — a query you wrote, or a whole table — can be sent straight to a Perspective pivot. Group, filter and aggregate by dragging columns, then switch between a data grid, bars, lines, treemaps and heatmaps — or, when the rows carry coordinates, drop them onto a map — without going back to SQL.
It is backed by the same in-browser engine, so it plots the real rows rather than a sample. Every earthquake on Earth in the last 30 days is on the map above — 10,912 of them, drawn in the tab, with the Ring of Fire falling out of the data on its own.
Ask in plain English. Get answers in SQL.
Cupola’s built-in analyst is more than autocomplete. It reads your catalog, writes and runs real SQL against the in-browser engine, charts the result, checks its own work, and explains what it found — so you can go from a vague question to a defensible answer without writing the first query yourself.
- Reads your schemas, tables, and column types
- Writes, runs, and refines SQL against the live data
- Charts what it finds, and explains the result
- Bring your own Anthropic API key — your data stays in your browser
Analyst
Querying main.recent…
SELECT place, round(mag, 1) AS mag
FROM main.recent
WHERE mag >= 6.5
ORDER BY mag DESC LIMIT 3;
Three events above M6.5 — near Ende and Pematangsiantar in Indonesia, and San José del Palmar in Colombia. Want that as a map?
Illustration — the analyst runs on your own Anthropic API key, so there is no shared demo to photograph.
Open real data in about ten seconds
These are the same live sources the VGI tour runs against — all public, and not one of them asks you to sign in. Pick one and it opens straight into the catalog.
Open an example
Pick one of the live sources below. One link does it — no download, no account, nothing to configure.
It attaches itself
Cupola boots DuckDB in the tab, attaches the source, and reads its catalog. You are looking at real tables within seconds.
Query, pivot, or ask
Browse the schema, run SQL in the editor or the shell, build a pivot, or hand the question to the AI analyst.
Earthquakes
USGSEvery earthquake on Earth in the last 30 days, plus the full historical catalog going back over a century — the same live feed seismologists watch, as two ordinary tables.
Weather
Open-MeteoForecasts, air quality, marine and climate data, plus geocoding and elevation — a whole weather API exposed as SQL table functions you can join against.
Dutch railways
NS (Nederlandse Spoorwegen)Live departure boards from every Dutch station — the same real-time data shown on the platform displays at Amsterdam Centraal, as a table you can query.
https://cupola.query-farm.services/?service=https://vgi-earthquakes.rusty-bb6.workers.dev
No account, and nothing to install. Your queries and your data stay in the browser — Cupola only fetches what the source hands back.
Free, and yours to run
Cupola is Apache 2.0 licensed. Use the hosted version, deploy it to your own Cloudflare account, or run the Docker image behind your own gateway — it is a static site backed by DuckDB-WASM, with nothing to license and no database to operate.
Make it your team’s workbench
Cupola supports OAuth / PKCE sign-in with per-source identity, loadable colour themes, and full white-labelling. We help teams self-host it, brand it, and wire it to their own internal data sources.
Cupola and the rest of the data farm
Cupola is the place you actually work with data. Haybarn is the engine inside it; VGI and the Orchard are how you connect live sources to query.
Haybarn
The DuckDB engine that runs inside Cupola — and on the desktop or server when you outgrow the browser.
VGI
The protocol that turns APIs, services, and databases into the live SQL sources Cupola connects to.
Orchard
The marketplace of ready-made connectors you can open and explore directly inside Cupola.
See your data in a new light
Cupola is free, open source, and ready now. Open a live example, or point it at your own source.