
u/FickleAnt4399

Duckle v0.5.3 is live 🎉adds Data Governance and Teradata connectors.
Duckle 🎉 v0.5.3 is live.
Duckle by SlothFlowLabs is the local-first, open-source visual ETL/ELT studio built on DuckDB - drag-and-drop pipelines, run locally, your data never leaves your machine.
v0.5.3 is all about trust: knowing exactly what a pipeline did, proving it, and reviewing changes before they even hit run.
Signed run manifests (.ducklock) - every run can record a signed, reproducible manifest that pins source input hashes, per-node outcomes, and column lineage. Verify any run after the fact.
Schema-drift detection + a Trust score - Duckle flags when an upstream source's columns or types change since the last signed run, and scores how trustworthy a pipeline is, right in the editor.
duckle review + data branches - review a pipeline change from the CLI with a live data diff, and branch a DuckDB file to test changes in isolation. Git-style review, for data.
End-to-end column lineage - trace any output column back through every transform and sink to its source columns, with a downstream impact view before you touch a query.
Teradata source + sink - read and write Teradata over ODBC, alongside new MinIO / Cloudflare R2 / Backblaze B2 object-storage sinks.
Live preview - flip it on and selecting or editing a node runs the pipeline up to that node and shows the rows instantly. No full run needed.
Plus run-time parameters in the editor and web dashboard, a seeded sample workspace on first launch, dbt Fusion provisioning, and MCP review tools any LLM can call (diff, impact, contracts, trust report).
100% free, yours and open source.
Github - https://github.com/slothflowlabs/duckle
Duckle and DuckDB ecosystem just got stronger!
Duckle is the local-first, open-source visual ETL/ELT studio built on DuckDB. What's new:
GizmoData - GizmoSQL integration - read and write GizmoSQL over a clean-room Arrow Flight SQL client, right from the canvas.
Browser-based, dockerized editor - run the full drag-and-drop Duckle editor in your browser. One docker compose up, open localhost, and build + run
pipelines with live per-node progress. Self-hosted, no cloud, no account.
Qlik QVD read + write - native for Qlik Sense, no Qlik runtime required.
Bring-your-own AI - point the built-in assistant at any OpenAI-compatible endpoint.
Plus bulk SQL Server writes, run-to-here, and a stack of fixes.
100% free, yours and open source.
👉 https://github.com/slothflowlabs/duckle
Duckle is a free, open-source, local-first Data Studio that runs on your laptop!
Duckle is a free, open-source, local-first Data Studio that runs on your laptop: build pipelines on a visual canvas, run them on DuckDB, ship them as a
single binary. No cloud, no account, no telemetry. Your data never leaves your machine.
The latest build (v0.3.0) makes dbt a near-instant, cross-system part of the Duckle Canvas:
- dbt is now supported and dbt Fusion is now the default. A Rust dbt engine: warm project parse/build is ~45 ms, versus the multi-second Python import floor of dbt Core (which is on as an automatic fallback).
- Multi-source dbt. One dbt build reads several wired sources at once (Postgres + MySQL + CSV + Parquet), each materialized as a real table and modeled
through dbt sources. A Customer 360 demo runs 6 sources across 4 system types into 1 dbt build and out to 4 sinks in 4,382 ms.
- Free, self-provisioning. The dbt engine downloads and sets itself up on first launch. No Python setup, no separate install, $0.
- JSON Records-path. Unnest nested REST envelopes (like data or response.records) into real columns.
- Native brand icons + type-to-add. Every source, sink and SaaS connector wears its real logo on the canvas; start typing to fuzzy-search and drop any
connector.
- Production ops. Structured error taxonomy, OpenMetrics export(<workspace>/runs/*.json), backfill and watermark controls, and a Runs history tab.
- Right-click the pipeline, choose Build, and it compiles into a self-contained executable, including DuckDB and it's necessary extensions.
Just copy that file to a server.
Single binary. Engines download on first launch. No installer, no JVM, no control plane. Swap the binary in place and your workspace + engine cache are
untouched.
Repository: https://github.com/SouravRoy-ETL/duckle
Download + full changelog: https://github.com/SouravRoy-ETL/duckle/releases/tag/v0.3.0
Duckle just got a major upgrade!
Duckle just got a major upgrade.
Duckle is a free, open-source, local-first Data Studio that runs on your laptop: build pipelines on a visual canvas, run them on DuckDB, ship them as a
single binary. No cloud, no account, no telemetry. Your data never leaves your machine.
The latest build (v0.3.0) makes dbt a near-instant, cross-system part of the Duckle Canvas:
- dbt is now supported and dbt Fusion is now the default. A Rust dbt engine: warm project parse/build is ~45 ms, versus the multi-second Python import floor of dbt Core (which is on as an automatic fallback).
- Multi-source dbt. One dbt build reads several wired sources at once (Postgres + MySQL + CSV + Parquet), each materialized as a real table and modeled
through dbt sources. A Customer 360 demo runs 6 sources across 4 system types into 1 dbt build and out to 4 sinks in 4,382 ms.
- Free, self-provisioning. The dbt engine downloads and sets itself up on first launch. No Python setup, no separate install, $0.
- JSON Records-path. Unnest nested REST envelopes (like data or response.records) into real columns.
- Native brand icons + type-to-add. Every source, sink and SaaS connector wears its real logo on the canvas; start typing to fuzzy-search and drop any
connector.
- Production ops. Structured error taxonomy, OpenMetrics export(<workspace>/runs/*.json), backfill and watermark controls, and a Runs history tab.
- Right-click the pipeline, choose Build, and it compiles into a self-contained executable, including DuckDB and it's necessary extensions.
Just copy that file to a server.
Single binary. Engines download on first launch. No installer, no JVM, no control plane. Swap the binary in place and your workspace + engine cache are
untouched.
Repository: https://github.com/SouravRoy-ETL/duckle
Download + full changelog: https://github.com/SouravRoy-ETL/duckle/releases/tag/v0.3.0
Duckle just got a lot more powerful - CDC, incremental loads, parallel pipelines, a visual joiner - and it still finishes in a blink.
Duckle is a free, open-source, local-first Data Studio: build pipelines on a visual canvas, run them on DuckDB, ship them as a single binary. No cloud, no account, no telemetry. Your data never leaves your machine.
What's new in v0.2.0:
- Visual Map: join a main input to lookups across CSV, Parquet, DuckDB, SQLite and warehouses, with per-output expressions and no SQL.
- Parallelize: independent branches run concurrently, auto-scaled to your CPU cores.
- Universal upsert + CDC delete propagation across every relational family plus MongoDB.
- DuckLake CDC change-feed and watermark incremental loads.
Every number in the screenshots ran on a plain 16 GB laptop, nothing fancy:
- 16-node monolithic pipeline (5M-row 3-way Map join + parallel branches + 4 sinks): ~3.0s
- 100k-row DuckLake CDC mirror with upsert + deletes: ~1.7s
- 5,000,000-row watermark incremental load: ~1.8s
Heavy workloads finish before you can blink. And both dark and light themes are tuned to feel native to DuckDB.
Single binary. Engines download on first launch. 60 UI languages.
Repository: https://github.com/SouravRoy-ETL/duckle
Download + changelog: https://github.com/SouravRoy-ETL/duckle/releases/tag/v0.2.0
You can now connect Claude directly to Duckle : AI-built ETL pipelines that never leave your machine.
You can now connect Claude directly to Duckle.
Duckle ships its own MCP server, so Claude (or any MCP client - Claude Desktop, Claude Code, Cursor) can build your data pipelines for you, right inside your local workspace.
Ask in any language, and Claude can:
🦆 Generate a pipeline (simple or complex) into your working directory
🦆 Validate it against 328 connectors (307 available out of the box)
🦆 Run it on DuckDB at native speed
🦆 Package it into a single standalone executable you can schedule anywhere
One click in Duckle ("Connect to Claude") wires it up. No cloud, no servers, no data leaving your machine - the engine and the MCP server both run locally.
Open source, local-first.
You can now connect Claude directly to Duckle : AI-built pipelines that never leave your machine.
You can now connect Claude directly to Duckle.
Duckle ships its own MCP server, so Claude (or any MCP client - Claude Desktop, Claude Code, Cursor) can build your data pipelines for you, right inside your local workspace.
Ask in any language, and Claude can:
🦆 Generate a pipeline (simple or complex) into your working directory
🦆 Validate it against 328 connectors (307 available out of the box)
🦆 Run it on DuckDB at native speed
🦆 Package it into a single standalone executable you can schedule anywhere
One click in Duckle ("Connect to Claude") wires it up. No cloud, no servers, no data leaving your machine - the engine and the MCP server both run locally.
Open source, local-first.
You can now connect Claude directly to Duckle : AI-built pipelines that never leave your machine.
You can now connect Claude directly to Duckle.
Duckle ships its own MCP server, so Claude (or any MCP client - Claude Desktop, Claude Code, Cursor) can build your data pipelines for you, right inside your local workspace.
Ask in any language, and Claude can:
🦆 Generate a pipeline (simple or complex) into your working directory
🦆 Validate it against 328 connectors (307 available out of the box)
🦆 Run it on DuckDB at native speed
🦆 Package it into a single standalone executable you can schedule anywhere
One click in Duckle ("Connect to Claude") wires it up. No cloud, no servers, no data leaving your machine - the engine and the MCP server both run locally.
Open source, local-first.
You can now connect Claude directly to Duckle : AI-built pipelines that never leave your machine
You can now connect Claude directly to Duckle.
Duckle ships its own MCP server, so Claude (or any MCP client - Claude Desktop, Claude Code, Cursor) can build your data pipelines for you, right inside your local workspace.
Ask in any language, and Claude can:
🦆 Generate a pipeline (simple or complex) into your working directory
🦆 Validate it against 328 connectors (307 available out of the box)
🦆 Run it on DuckDB at native speed
🦆 Package it into a single standalone executable you can schedule anywhere
One click in Duckle ("Connect to Claude") wires it up. No cloud, no servers, no data leaving your machine - the engine and the MCP server both run locally.
Open source, local-first.
You can now connect Claude directly to Duckle : AI-built pipelines that never leave your machine
You can now connect Claude directly to Duckle.
Duckle ships its own MCP server, so Claude (or any MCP client - Claude Desktop, Claude Code, Cursor) can build your data pipelines for you, right inside your local workspace.
Ask in any language, and Claude can:
🦆 Generate a pipeline (simple or complex) into your working directory
🦆 Validate it against 328 connectors (307 available out of the box)
🦆 Run it on DuckDB at native speed
🦆 Package it into a single standalone executable you can schedule anywhere
One click in Duckle ("Connect to Claude") wires it up. No cloud, no servers, no data leaving your machine - the engine and the MCP server both run
locally.
Open source, local-first.
https://github.com/SouravRoy-ETL/duckle
Why pay Snowflake to scan a billion rows every 15 minutes? Duckle pushed the join + aggregate to DuckDB and sent it only the summary. Run it anywhere on a Server or a Laptop.
☕ Twenty-three seconds is all it takes to move a one-billion-row pipeline off the warehouse, along with the compute bill attached to it.
Consider a workload many teams schedule directly on Snowflake today: a 1,000,000,000-row orders fact in Parquet, joined against customers in SQL Server, products in SQLite, accounts over ADBC, and regions in a CSV. A visual Mapper performs a five-way join, FX and tax conversion to USD, margin and COGS derivation, value-band classification, and monthly bucketing. From one billion rows in, a 2,160-row revenue summary comes out. Running this inside Snowflake incurs costs for the entire billion-row scan, join, and aggregation on every execution.
In contrast, Duckle executed the identical workload in just twenty-three seconds on a 16GB laptop, without needing a cluster or warehouse. DuckDB handles the heavy computation locally, sending only the 2,160-row summary to Snowflake.
Financially, a billion-row join and aggregate requires a Large warehouse (8 credits/hour) to complete in roughly two minutes, costing about 0.27 credits per run. For a revenue summary refreshed every 15 minutes, this translates to approximately 26 credits a day, equating to about $75 daily or nearly $27,000 annually from a single pipeline.
By shifting the compute to DuckDB, that cost can drop to zero, with the warehouse only needing to store the answer. This saving compounds across every heavy pipeline.
Duckle simplifies deployment: right-click the pipeline, choose Build, and it compiles into a self-contained executable, including DuckDB and it's necessary extensions.
Just copy that file to a server, set it to run on schedule, and the same 23-second execution occurs in production without needing to install anything on the host.
Duckle is free, open source, and local-first. Point it at your own data and measure the difference yourself: https://github.com/SouravRoy-ETL/duckle
Why pay Snowflake to scan a billion rows every 15 minutes? Duckle pushed the join + aggregate to DuckDB and sent it only the summary. Run it anywhere on a Server or a Laptop.
☕ Twenty-three seconds is all it takes to move a one-billion-row pipeline off the warehouse, along with the compute bill attached to it.
Consider a workload many teams schedule directly on Snowflake today: a 1,000,000,000-row orders fact in Parquet, joined against customers in SQL Server, products in SQLite, accounts over ADBC, and regions in a CSV. A visual Mapper performs a five-way join, FX and tax conversion to USD, margin and COGS derivation, value-band classification, and monthly bucketing. From one billion rows in, a 2,160-row revenue summary comes out. Running this inside Snowflake incurs costs for the entire billion-row scan, join, and aggregation on every execution.
In contrast, Duckle executed the identical workload in just twenty-three seconds on a 16GB laptop, without needing a cluster or warehouse. DuckDB handles the heavy computation locally, sending only the 2,160-row summary to Snowflake.
Financially, a billion-row join and aggregate requires a Large warehouse (8 credits/hour) to complete in roughly two minutes, costing about 0.27 credits per run. For a revenue summary refreshed every 15 minutes, this translates to approximately 26 credits a day, equating to about $75 daily or nearly $27,000 annually from a single pipeline.
By shifting the compute to DuckDB, that cost can drop to zero, with the warehouse only needing to store the answer. This saving compounds across every heavy pipeline.
Duckle simplifies deployment: right-click the pipeline, choose Build, and it compiles into a self-contained executable, including DuckDB and it's necessary extensions.
Just copy that file to a server, set it to run on schedule, and the same 23-second execution occurs in production without needing to install anything on the host.
Duckle is free, open source, and local-first. Point it at your own data and measure the difference yourself: https://github.com/SouravRoy-ETL/duckle
Duckle took a billion-row join off Snowflake. 23 seconds, one laptop, roughly $75 a day back.
☕ Twenty-three seconds, the length of a single sip of coffee. That is how long it now takes to move a one-billion-row pipeline off the warehouse, along with the compute bill attached to it.
Here is a workload many teams schedule directly on Snowflake today:
A 1,000,000,000-row (1B) orders fact in Parquet, joined against customers in SQL Server, products in SQLite, accounts over ADBC, and regions in a CSV. On top of that, a visual Mapper performs the real work: a five-way join, FX and tax conversion to USD, margin and COGS derivation, value-band classification, and monthly bucketing.
One billion rows in, a 2,160-row revenue summary out.
Run that inside Snowflake and the warehouse meter runs for the entire billion-row scan, join, and aggregation, on every execution, on every schedule.
Duckle ran the identical workload in Twenty-three seconds end to end, on a 16GB laptop, with no cluster and no warehouse to spin up.
DuckDB does the heavy computation locally. Snowflake receives only the 2,160-row summary it actually needs to store and serve. Every screenshot below is from that same laptop.
What that means in dollars, with the assumptions stated plainly:
- A billion-row join and aggregate realistically needs a Large warehouse (8 credits/hour) to finish in roughly two minutes, or about 0.27 credits per run.
- For a revenue summary refreshed every 15 minutes, that is 96 runs a day, roughly 26 credits a day.
- At an on-demand rate near $3 per credit, that is approximately $75 a day, or close to $27,000 a year, from a single pipeline.
Move the compute to Duckle and that line item goes to zero. The warehouse only pays to hold the answer. Multiply across every heavy pipeline you run, and the daily saving compounds quickly.
Duckle is free, open source, and local-first. Point it at your own data and measure the difference yourself: https://github.com/SouravRoy-ETL/duckle
Duckle took a billion-row join off Snowflake. 23 seconds, one laptop, roughly $75 a day back.
☕ Twenty-three seconds, the length of a single sip of coffee. That is how long it now takes to move a one-billion-row pipeline off the warehouse, along with the compute bill attached to it.
Here is a workload many teams schedule directly on Snowflake today:
A 1,000,000,000-row (1B) orders fact in Parquet, joined against customers in SQL Server, products in SQLite, accounts over ADBC, and regions in a CSV. On top of that, a visual Mapper performs the real work: a five-way join, FX and tax conversion to USD, margin and COGS derivation, value-band classification, and monthly bucketing.
One billion rows in, a 2,160-row revenue summary out.
Run that inside Snowflake and the warehouse meter runs for the entire billion-row scan, join, and aggregation, on every execution, on every schedule.
Duckle ran the identical workload in Twenty-three seconds end to end, on a 16GB laptop, with no cluster and no warehouse to spin up.
DuckDB does the heavy computation locally. Snowflake receives only the 2,160-row summary it actually needs to store and serve. Every screenshot below is from that same laptop.
What that means in dollars, with the assumptions stated plainly:
- A billion-row join and aggregate realistically needs a Large warehouse (8 credits/hour) to finish in roughly two minutes, or about 0.27 credits per run.
- For a revenue summary refreshed every 15 minutes, that is 96 runs a day, roughly 26 credits a day.
- At an on-demand rate near $3 per credit, that is approximately $75 a day, or close to $27,000 a year, from a single pipeline.
Move the compute to Duckle and that line item goes to zero. The warehouse only pays to hold the answer. Multiply across every heavy pipeline you run, and the daily saving compounds quickly.
Duckle is free, open source, and local-first. Point it at your own data and measure the difference yourself: https://github.com/SouravRoy-ETL/duckle
Duckle just got a lot more powerful - CDC, incremental loads, parallel pipelines, a visual joiner - and it still finishes in a blink.
Duckle is a free, open-source, local-first Data Studio: build pipelines on a visual canvas, run them on DuckDB, ship them as a single binary. No cloud, no account, no telemetry. Your data never leaves your machine.
What's new in v0.2.0:
- Visual Map: join a main input to lookups across CSV, Parquet, DuckDB, SQLite and warehouses, with per-output expressions and no SQL.
- Parallelize: independent branches run concurrently, auto-scaled to your CPU cores.
- Universal upsert + CDC delete propagation across every relational family plus MongoDB.
- DuckLake CDC change-feed and watermark incremental loads.
Every number in the screenshots ran on a plain 16 GB laptop, nothing fancy:
- 16-node monolithic pipeline (5M-row 3-way Map join + parallel branches + 4 sinks): ~3.0s
- 100k-row DuckLake CDC mirror with upsert + deletes: ~1.7s
- 5,000,000-row watermark incremental load: ~1.8s
Heavy workloads finish before you can blink. And both dark and light themes are tuned to feel native to DuckDB.
Single binary. Engines download on first launch. 60 UI languages.
Repository: https://github.com/SouravRoy-ETL/duckle
Download + changelog: https://github.com/SouravRoy-ETL/duckle/releases/tag/v0.2.0
Duckle just got a lot more powerful - CDC, incremental loads, parallel pipelines, a visual joiner - and it still finishes in a blink.
Duckle is a free, open-source, local-first Data Studio: build pipelines on a visual canvas, run them on DuckDB, ship them as a single binary. No cloud, no account, no telemetry. Your data never leaves your machine.
What's new in v0.2.0:
- Visual Map: join a main input to lookups across CSV, Parquet, DuckDB, SQLite and warehouses, with per-output expressions and no SQL.
- Parallelize: independent branches run concurrently, auto-scaled to your CPU cores.
- Universal upsert + CDC delete propagation across every relational family plus MongoDB.
- DuckLake CDC change-feed and watermark incremental loads.
Every number in the screenshots ran on a plain 16 GB laptop, nothing fancy:
- 16-node monolithic pipeline (5M-row 3-way Map join + parallel branches + 4 sinks): ~3.0s
- 100k-row DuckLake CDC mirror with upsert + deletes: ~1.7s
- 5,000,000-row watermark incremental load: ~1.8s
Heavy workloads finish before you can blink. And both dark and light themes are tuned to feel native to DuckDB.
Single binary. Engines download on first launch. 60 UI languages.
Repository: https://github.com/SouravRoy-ETL/duckle
Download + changelog: https://github.com/SouravRoy-ETL/duckle/releases/tag/v0.2.0
Break boundaries with Duckle - a OSS local-first data ETL/ELT Tool that runs on DuckDB
8 million rows in. 600,000 out. 5.7 seconds. On a 16GB RAM laptop.
Duckle joined 4 sources at 2M rows each - an ADBC (Arrow) source, a CSV file, a MySQL table, and a second ADBC source - through one visual mapper: a 3-way join, 9 expressions, and a filter, straight to Parquet.
No cloud. No servers. Just Duckle on your laptop/desktop.
This is what local-first data engineering looks like now. 🦆
Repository: https://github.com/SouravRoy-ETL/duckle
Breaking boundaries with Duckle - a local-first data ETL/ELT Tool that runs on DuckDB
8 million rows in. 600,000 out. 5.7 seconds. On a 16GB RAM laptop. Runs on DuckDB.
Duckle joined 4 sources at 2M rows each - an ADBC (Arrow) source, a CSV file, a MySQL table, and a second ADBC source - through one visual mapper: a 3-way join, 9 expressions, and a filter, straight to Parquet.
This is what local-first data engineering looks like now. 🦆
Break boundaries with Duckle - a local-first data ETL/ELT Tool that runs on DuckDB
8 million rows in. 600,000 out. 5.7 seconds. On a 16GB RAM laptop.
Duckle joined 4 sources at 2M rows each - an ADBC (Arrow) source, a CSV file, a MySQL table, and a second ADBC source - through one visual mapper: a 3-way join, 9 expressions, and a filter, straight to Parquet.
No cloud. No servers. Just Duckle on your laptop/desktop.
This is what local-first data engineering looks like now. 🦆
Repository: https://github.com/SouravRoy-ETL/duckle