Notes on the DuckDB UI

DuckDB recently shipped with a new local UI package[1]. It allows users to visualize DuckDB databases as well as run SQL queries through embedded notebooks.

You can start the UI by running duckdb -ui in the terminal which starts an http server on port 4213 by default.

$ duckdb -ui
┌──────────────────────────────────────┐
│                result                │
│               varchar                │
├──────────────────────────────────────┤
│ UI started at http://localhost:4213/ │
└──────────────────────────────────────┘
v1.2.1 8e52ec4395
Enter ".help" for usage hints.

Navigating to it opens the web interface which has a familiar code execution model to Python/Jupyter notebooks except focused on DuckDB SQL.

DuckDB UI

Unsurprisingly, DuckDB uses it's own database to save metadata for it's UI. On my machine it that gets saved to ~/.duckdb/extension_data/ui/ui.db which we can load to view the table structure.

The notebooks table appears to keep track of created notebooks, while the notebook_versions table appears to power undo/redo functionality.

DuckDB UI querying notebook_versions


  1. Raymakers, J. et al. (2025) The DuckDB local UI. duckdb.org. Available at: https://duckdb.org/2025/03/12/duckdb-ui.html (Accessed: 2025-3-14). ↩︎

Subscribe to Another Dev's Two Cents

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe