Power Duck — VS Code Extension
Lightweight, Power BI–inspired data visualizer powered by DuckDB-WASM and Apache ECharts.
Power Duck turns any local data file into an interactive analytics canvas —
without leaving your editor and without uploading anything to a server.
Drag fields onto chart wells, switch between visual types, fine-tune the
auto-generated SQL, and explore millions of rows in seconds.
Features
- Open any tabular file in place —
.parquet, .csv, .tsv,
.json, .jsonl, .ndjson. Right-click in the Explorer →
Open in Data Visualizer (Power Duck).
- Power BI–style layout — three-pane workspace with a report canvas,
visualization editor, and data schema tree.
- Drag-and-drop field bindings — drop fields into
Axis / Legend / Values / Columns / Filters wells. Aggregations
(Sum, Avg, Min, Max, Count, Count Distinct) are inferred and editable
per field.
- 11 visual types — bar, stacked bar, column, stacked column, line,
area, scatter, pie, doughnut, table, KPI card.
- Inspectable SQL — every chart is backed by a generated SQL query
you can read, edit, re-run with
Ctrl+Enter, or reset.
- Strict isolation — all SQL runs in-browser via DuckDB-WASM. Local
files are streamed in from the extension host and never leave your
machine.
- Theme-aware — uses native VS Code theme tokens, so it blends into
both light and dark themes.
Getting started
- Install the extension.
- In the Explorer, right-click a supported file and choose
Open in Data Visualizer (Power Duck).
- Once DuckDB-WASM finishes initializing (one-time per session), the
schema appears in the Data panel on the right.
- Click New visual, pick a chart type, then drag fields from the
schema tree into the wells in the Visualizations panel.
- Optionally edit the SQL underneath each visual and press
Ctrl+Enter to apply.
| Extension |
DuckDB reader |
.parquet |
read_parquet |
.csv, .tsv |
read_csv_auto |
.json, .jsonl, .ndjson |
read_json_auto |
Tech stack & inspiration
| Role |
Choice |
| Embedded analytics engine |
DuckDB-WASM — runs SQL on Parquet / CSV / JSON entirely inside the webview |
| Charting |
Apache ECharts — a mature, theme-able library covering every visual type in this extension |
| Icons & visual language |
Fluent UI System Icons — Microsoft's open-source icon set, used across Office and VS Code |
| Product inspiration |
Microsoft Power BI — the three-pane Data / Visualizations / Canvas workflow is modeled directly after Power BI Desktop |
Power Duck stays intentionally small: no telemetry, no accounts, no
cloud — it's a single VS Code extension that ships a strict CSP webview
and a WebAssembly database. Think of it as a lightweight Power BI you
can launch on any file in your workspace.
Privacy & security
- All query execution happens client-side inside the webview's
WebAssembly sandbox.
- Local files are streamed from the extension host to the webview as
Uint8Array chunks — they never touch the network.
- The webview runs under a strict Content Security Policy: only the
bundled scripts (plus DuckDB's WebAssembly module and worker shim)
are allowed to execute.
- On first use of a non-CSV format (e.g. parquet), DuckDB-WASM lazy-loads
its signed format extension from the official CDN
(
https://extensions.duckdb.org). No user data is sent — only an
anonymous fetch of the extension's WebAssembly module.
License
MIT. See LICENSE.
Power Duck is an independent open-source project. Power BI is a
trademark of Microsoft Corporation; this extension is not affiliated
with or endorsed by Microsoft.
Contributing? See DEVELOPMENT.md for build scripts,
project layout, and the extension ↔ webview data flow.
| |