Duck-UI 2.0, open source

SQL on anything.Right in your browser.

A DuckDB workbench that lives in a tab. Open a file, write a query, chart the answer. Nothing to install, no account, and your data never leaves the machine.

stations.sql7 rows · 714 ms
SELECT country, count(*) AS stations,
       round(avg(geo_lat), 2) AS avg_lat
FROM 'https://blobs.duckdb.org/stations.parquet'
GROUP BY country
ORDER BY stations DESC
countrystationsavg_lat
NL39752.16
D10551.11
B4851.05
F1446.18
A1047.94
CH347.47
GB151.53
Duck-UI with a query over the DuckDB stations dataset, its result grid and the database explorer

The workspace. DuckDB compiled to WebAssembly does the work; the interface starts at about 350 kB.

What's inside

A complete workbench, in one tab.

Editor
Completion from your own catalog, DuckDB-aware formatting, and ⌘Enter for the statement under the cursor. Errors are underlined where DuckDB points.
Results
A virtualized grid with sort, filter, column statistics, and exports to CSV, JSON, XLSX or Parquet.
Notebooks
SQL, Python and Markdown cells side by side. Python runs in Pyodide, and sql() hands you a pandas DataFrame.
Dashboards
Reports written as Markdown with live SQL inside. Inputs re-run only the queries that read them.
Duck Brain
Ask in plain language, get SQL. A model in the browser, or your own OpenAI, Anthropic or Ollama. Only the schema leaves the tab.
Live sessions
Bring someone into your workspace, browser to browser. Shared editors, visible cursors, no server in between.
Your files
CSV, JSON, Parquet, Arrow, Excel and DuckDB files, from disk, a URL, S3, R2 or a folder you mount once.
Share
An analysis travels as a link, or as a live chart in any page through one iframe. The data never goes with it.

Run it

Where you want it.

In the browser

Nothing to set up. Everything stays in the tab.

duckui.com →

With Docker

One container, configured by environment variables.

docker run -p 5522:5522 ghcr.io/caioricciuti/duck-ui:latest

From a link

Add ?load= and &sql= to the address and any public Parquet, CSV or JSON file opens as a runnable analysis.

Try the stations dataset →

Open a file. Ask it anything.

Free and MIT licensed, supported by QXIP and its sponsors.