Interactive SQL notebooks powered by DuckDB — write, execute, and visualize SQL queries in Jupyter notebooks with a custom DuckDB kernel and language server support.
Features
📓 Jupyter notebook support — Standard .ipynb files with DuckDB SQL kernel
⚡ DuckDB execution — Run SQL cells against an in-memory DuckDB instance
🎨 Rich result tables — Query results rendered as styled HTML tables
💡 SQL IntelliSense — Autocomplete for SQL keywords, DuckDB functions, and types
🔍 Hover documentation — Hover over functions to see signatures and descriptions
⚠️ Diagnostics — Warnings for common SQL mistakes (unclosed strings, trailing commas)
Open the command palette (Ctrl+Shift+P) → DuckDB: New DuckDB Jupyter Notebook
Or create a new .ipynb file and select the DuckDB kernel (see below)
Write SQL in code cells, execute with Shift+Enter or the ▶ button
Add markdown cells for documentation
Selecting the DuckDB Kernel
When you open a Jupyter notebook, you need to select DuckDB SQL as the kernel:
Click Select Kernel in the top-right corner of the notebook editor
Choose Select Another Kernel…
Select DuckDB SQL from the kernel list
Tip: If you create notebooks using the DuckDB: New DuckDB Jupyter Notebook command, the kernel is pre-selected automatically.
Example
-- Create and query data
CREATE TABLE sales (product VARCHAR, amount DECIMAL, region VARCHAR);
INSERT INTO sales VALUES ('Widget', 99.99, 'East'), ('Gadget', 149.50, 'West');
SELECT region, SUM(amount) AS total FROM sales GROUP BY region;
Configuration
Setting
Default
Description
duckdb-notebook.maxRows
1000
Maximum rows to display
duckdb-notebook.databasePath
:memory:
Database path (:memory: for in-memory)
duckdb-notebook.binaryPath
""
Path to a custom DuckDB binary with extensions
Development
npm install
npm run compile # Build
# Press F5 in VS Code to launch Extension Development Host