Duckle v0.4.1 is out - DuckDB 1.5.4, in-app updates, Custom SQL for duck sources, and proxy support for REST. Read the release notes
Getting started

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:

PlatformAsset
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

  1. Add a source. Drag a CSV source from the palette onto the canvas and set its path.
  2. Add a transform. For example a Filter or Map, then wire source.main to it.
  3. Add a sink. For example a Parquet sink, and set the output path.
  4. 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.
  5. 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.

Next: explore the full component reference or wire up a schedule.