Install and quickstart
Duckle ships as a single-file desktop app of roughly 65 MB for Windows, macOS, and Linux. The engines it needs install on first launch, so there is nothing to set up by hand. It is free and open source under MIT OR Apache-2.0.
Download
Download the latest binary for your operating system from the GitHub Releases page. There is no installer: Duckle is a single executable that you run directly.
Each release publishes six assets, one per platform and architecture:
| Platform | Asset |
|---|---|
| Windows (x64) | Duckle-windows-x64.exe |
| Windows (ARM64) | Duckle-windows-arm64.exe |
| macOS (Apple silicon) | Duckle-macos-arm64 |
| macOS (Intel) | Duckle-macos-x64 |
| Linux (x64) | Duckle-linux-x64 |
| Linux (ARM64) | Duckle-linux-arm64 |
First launch: install the engine
On first run, a guided Setup step downloads the DuckDB CLI (tracking v1.5.3) and pre-fetches the extensions Duckle uses, with per-extension progress. The pre-fetched extensions are httpfs, azure, sqlite, postgres, mysql, excel, iceberg, delta, ducklake, vss, and fts.
The spatial extension (roughly 50 MB of GDAL) is larger, so it is lazy-loaded on first use of a geospatial node rather than downloaded up front. The optional Duckie AI model (roughly 1.1 GB) is a separate, opt-in download that you can enable later.
Build from source
Building from source is optional. The prerequisites are Rust (stable) and Node 20 or newer. Duckle is a Cargo workspace paired with a Tauri 2 and React 19 frontend.
npm --prefix frontend ci
npm --prefix frontend run build
cargo build --release --manifest-path apps/desktop/Cargo.toml --features custom-protocol
The headless runner lives at crates/duckle-runner and the MCP server at crates/duckle-mcp.
Your first pipeline
- Add a source. Drag a CSV source from the palette onto the canvas and set its path.
- Add a transform. For example a Filter or Map, then wire
source.mainto it. - Add a sink. For example a Parquet sink, and set the output path.
- Press Run (or F5). Duckle compiles the pipeline to SQL, runs it on DuckDB, and shows per-node row counts, timings, and a live preview.
- Iterate. Every node has Basic, Schema, Preview, Advanced, and Validation tabs, and the Plan tab shows the generated SQL.
Instead of wiring nodes by hand, you can ask Duckie in plain English and click Insert into canvas. See Duckie AI & AI transforms for details.
Where things live
A workspace is a folder you pick. Pipelines, connections, contexts, and routines are stored as plain JSON files under it, in pipelines/, connections/, contexts/, and routines/, so the whole workspace is git-friendly. Secrets are encrypted at rest.