$git clone https://github.com/slothflowlabs/duckle<p><b>Duckle</b> is an open-source desktop ETL / ELT studio. Drag a pipeline onto the canvas, describe what you need in plain English to <b>Duckie</b> (the on-device AI assistant), and execute at native speed through DuckDB. 370+ components, a built-in scheduler, and a chat assis
| 1 | <div align="center"> |
| 2 | |
| 3 | <img src="docs/assets/duckle-readme.png" alt="Duckle" width="460"/> |
| 4 | |
| 5 | <h3>The local-first data studio with a built-in AI assistant.</h3> |
| 6 | |
| 7 | <p><b>Duckle</b> is an open-source desktop ETL / ELT studio. Drag a pipeline onto the canvas, describe what you need in plain English to <b>Duckie</b> (the on-device AI assistant), and execute at native speed through DuckDB. 370+ components, a built-in scheduler, and a chat assistant that runs entirely on your CPU. Ships as a ~100 MB single-file desktop app. No cloud, no servers, no lock-in.</p> |
| 8 | |
| 9 | <a href="https://duckle.org/"><img src="website/assets/img/website-hero.gif" alt="Duckle connecting 160+ sources and destinations - databases, warehouses, SaaS apps and the DuckDB ecosystem - all running locally on DuckDB" width="600"/></a> |
| 10 | |
| 11 | <a href="https://duckle.org/"><img src="docs/assets/ingest-seconds-benchmark.png" alt="Benchmark: loading a 20M-row CSV into DuckDB at each tool's best config. Duckle 15.69s, dlt 40.68s, Talend bulk 90s, Informatica bulk 100s, ingestr 411s, Airbyte about 1150s." width="820"/></a> |
| 12 | |
| 13 | <p><sub><i>Duckle is an independent open-source project by SlothFlowLabs. It builds on the DuckDB engine but is not part of, affiliated with, or endorsed by DuckDB Labs or MotherDuck.</i></sub></p> |
| 14 | |
| 15 | <p> |
| 16 | <img alt="status" src="https://img.shields.io/badge/status-beta-3b82f6"/> |
| 17 | <img alt="license" src="https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue"/> |
| 18 | <img alt="platforms" src="https://img.shields.io/badge/platforms-Windows%20%C2%B7%20macOS%20%C2%B7%20Linux-2b6cb0"/> |
| 19 | <img alt="rust" src="https://img.shields.io/badge/Rust-000000?logo=rust&logoColor=white"/> |
| 20 | <img alt="tauri" src="https://img.shields.io/badge/Tauri%202-24C8DB?logo=tauri&logoColor=white"/> |
| 21 | <img alt="react" src="https://img.shields.io/badge/React%2019-20232A?logo=react&logoColor=61DAFB"/> |
| 22 | <img alt="typescript" src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white"/> |
| 23 | <img alt="duckdb" src="https://img.shields.io/badge/DuckDB-FFF000?logo=duckdb&logoColor=black"/> |
| 24 | <img alt="stars" src="https://img.shields.io/github/stars/slothflowlabs/duckle?style=social"/> |
| 25 | </p> |
| 26 | |
| 27 | </div> |
| 28 | |
| 29 | <div align="center"> |
| 30 | |
| 31 | <a href="https://trendshift.io/repositories/54176?utm_source=trendshift-badge&utm_medium=badge&utm_campaign=badge-trendshift-54176" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/trendshift/repositories/54176/daily?language=Rust" alt="slothflowlabs%2Fduckle | Trendshift" width="250" height="55"/></a> |
| 32 | |
| 33 | <a href="https://discord.com/invite/rUeAStJbWb"><img src="docs/assets/discord-cta-v2.svg" alt="Join the Duckle community on Discord" width="340"/></a> |
| 34 | |
| 35 | <p><sub><a href="https://github.com/slothflowlabs/duckle/stargazers"><b>Star Duckle</b></a> if it looks useful. It genuinely helps other data engineers find the project.</sub></p> |
| 36 | |
| 37 | </div> |
| 38 | |
| 39 | --- |
| 40 | |
| 41 | ## Quick links |
| 42 | |
| 43 | <table> |
| 44 | <tr> |
| 45 | <td valign="top" width="25%"> |
| 46 | |
| 47 | **Get started** |
| 48 | |
| 49 | - [What is Duckle?](#what-is-duckle) |
| 50 | - [What's new in v0.5.6](#whats-new-in-v056) |
| 51 | - [Quickstart (60 s)](#quickstart-60-seconds) |
| 52 | - [Download / Install](#download--install) |
| 53 | - [Build from source](#build-from-source) |
| 54 | - [Run your first pipeline](#run-your-first-pipeline) |
| 55 | |
| 56 | </td> |
| 57 | <td valign="top" width="25%"> |
| 58 | |
| 59 | **Use the product** |
| 60 | |
| 61 | - [Meet Duckie (AI)](#meet-duckie---the-local-ai-pipeline-assistant) |
| 62 | - [How to use Duckle](#how-to-use-duckle) |
| 63 | - [Recipes / examples](#recipes-and-examples) |
| 64 | - [In-app Git (GitHub/GitLab)](#git-integration-github--gitlab) |
| 65 | - [Workspace + Git flow](#workspace-and-git-flow) |
| 66 | - [Schedules](#schedules-and-triggers) |
| 67 | - [Server deployment](#server-deployment-build-pipeline) |
| 68 | - [MCP server: connect Claude, Cursor or any agent](#mcp-server-connect-claude-or-any-llm-to-duckle) |
| 69 | - [Connection management](#connection-management) |
| 70 | - [Context variables](#context-variables) |
| 71 | |
| 72 | </td> |
| 73 | <td valign="top" width="25%"> |
| 74 | |
| 75 | **Reference** |
| 76 | |
| 77 | - [Capabilities matrix](#capabilities) |
| 78 | - [Sources](#sources-101-available) |
| 79 | - [Transforms](#tran |