DuckBake

Drop in a CSV. Ask it anything.

DuckBake is a Mac app for pulling a spreadsheet apart. DuckDB does the querying, a model on your own machine does the explaining, and the file never leaves the laptop it landed on.

Download for Mac

Free · MIT · macOS 13+ · universal binary

benefits-2026.pdf
field-manual.md
candy
idcompetitornamechocolatefruitycaramelpeanutyalmondynougatcrispedricewaferhardbarpluribuswinpercent
0100 Grandtruefalsetruefalsefalsetruefalsetruefalse66.97
13 Musketeerstruefalsefalsefalsetruefalsefalsetruefalse67.6
2Air Headsfalsetruefalsefalsefalsefalsefalsefalsefalse52.34
3Almond Joytruefalsefalsetruefalsefalsefalsetruefalse50.35
4Baby Ruthtruefalsetruetruetruefalsefalsetruefalse56.91
5Boston Baked Beansfalsefalsefalsetruefalsefalsefalsefalsetrue23.42
6Candy Cornfalsefalsefalsefalsefalsefalsefalsefalsetrue38.01
7Caramel Apple Popsfalsetruetruefalsefalsefalsefalsefalsefalse34.52
8Charleston Chewtruefalsefalsefalsetruefalsefalsetruefalse38.98
9Chewey Lemonhead Fruit Mixfalsetruefalsefalsefalsefalsefalsefalsetrue36.02
10Chicletsfalsetruefalsefalsefalsefalsefalsefalsetrue24.52
11Dotsfalsetruefalsefalsefalsefalsefalsefalsetrue42.27
12Dum Dumsfalsetruefalsefalsefalsefalsetruefalsefalse39.46
13Fruit Chewsfalsetruefalsefalsefalsefalsefalsefalsetrue43.09
14Fun Dipfalsetruefalsefalsefalsefalsetruefalsefalse39.19
15Gobstopperfalsetruefalsefalsefalsefalsetruefalsetrue46.78
16Haribo Gold Bearsfalsetruefalsefalsefalsefalsefalsefalsetrue57.12
17Haribo Happy Colafalsefalsefalsefalsefalsefalsefalsefalsetrue34.16
100Page 1 · Showing 18 of 83 rows (1ms)

That window is drawn, not screenshotted — click through Browser, Schema, Query and Chat. The tables are public sample datasets; the layout, the columns and the timings are the app's.

Nothing is uploaded.

No account, no sign-in, no telemetry, no bucket somewhere. The file becomes a table in a project on your disk, and that is the entire journey it makes.

The AI runs here too.

Chat talks to Ollama on localhost. The model is on your SSD, the inference is on your GPU, and your rows are never anyone's training data.

It is DuckDB underneath.

Not a wrapper around a spreadsheet. Millions of rows, real SQL, columnar speed — sub-second on the kind of file that makes Excel think about its life.

Getting data in

Drag the file onto the window.

No connection string, no schema to declare, no wizard. DuckBake reads the file, infers the column types, and shows you what it found before anything is created — so a misread date column is something you catch at the door.

CSV
auto-detected delimiter, types and header
TSV
same, tab-delimited
JSON
arrays of objects, schema inferred
JSONL
one object per line
Parquet
read straight through, types intact
Excel
.xlsx and .xls, first sheet

Importing again lets you create a new table, replace one, or append to it — which is how a weekly export becomes one growing table.

Drop a file to import

CSV, TSV, JSON, JSONL, Parquet or Excel

sales-2026-q1.csv · 48.2 MB · 812,449 rows

SQL

The good half of a database, without the database.

There is no server to start, no port to remember and no CREATE DATABASE. A project is a file; the tables inside it are queryable the moment the import finishes, with the whole DuckDB dialect available — window functions, CTEs, joins across every table you have dropped in.

01

An editor that knows your columns

CodeMirror with SQL highlighting and autocomplete built from the project's own schema, so table and column names complete themselves.

02

Timings, every run

Milliseconds, row count and column count under the editor. Fast enough that the number is usually a single digit.

03

Queries worth keeping

Name a query and it lands in the sidebar for next time — the weekly one you always half-remember, saved properly.

04

Browse and Schema

A paginated grid for reading the rows, and a Schema tab listing every column with its type, nullability and key.

Chat

For when you don't feel like writing the SQL.

Ask in English. DuckBake hands your schema to a model running under Ollama, gets SQL back, runs it against DuckDB, and answers with the actual rows — plus a chart when the shape of the result suggests one. Open in Editor puts the generated query in front of you, which is the part that matters: you can read what it did before you believe it.

You pick the model

Whatever you have pulled — the picker lists them. A bigger model writes better SQL and makes you wait longer for it.

Auto · Data · Docs

The context switch decides what the model gets to see. Auto reads the question and guesses; the other two settle it for you.

No key, no bill

There is nothing to sign up for and no per-token cost, because there is no API on the other end. Just a process on your Mac.

The round trip

A question, five steps, none of them remote.

The interesting part is not that it answers — it is where each piece of the answering happens. Step through it: the whole journey is your disk, a socket on localhost, and back.

DuckBake

A question in the composer. No SQL, no column names, no idea which table it lives in.

chat
which chocolate and caramel candies win most often?

No table named, no column named, no SQL.

Charts

The model asks for a chart. It doesn't draw one.

That distinction is the reason the charts are trustworthy. A language model is good at picking which columns belong on which axis and bad at arithmetic, so it never touches the numbers — it names them. DuckDB produces the values and Recharts plots them, which means a chart on this page is as correct as the SQL above it, and you can read that SQL.

"viz": "bar"

Bar

Comparing categories — the default, and usually right.

"viz": "line"

Line

Anything with a date on the x-axis.

"viz": "pie"

Pie

A handful of parts of one whole.

Ollama

One dependency, and you own it.

DuckBake does not ship a model or quietly fetch one. Install Ollama, pull the model you fancy, and DuckBake finds it on http://localhost:11434 — it checks /api/version, lists what you have with /api/tags, and streams from /api/chat. That is the whole integration.

  • Pull models from inside DuckBake, with progress
  • Switch model per conversation from the picker
  • nomic-embed-text handles document search
  • Nothing works differently when it is missing — Chat just goes quiet
Connected to Ollama 0.5.4http://localhost:11434
llama3.2:3b2.0 GBFast and capableInstalled
nomic-embed-text274 MBFast embeddingsInstalled
mistral:7b4.1 GBpulling · 62%Downloading
qwen2.5:7b4.7 GBStrong multilingualPull
codellama:7b3.8 GBCode-focusedPull

Documents

The PDF that explains the spreadsheet.

Data rarely arrives on its own. Drop the policy document, the field manual or the quarterly write-up into the same project and DuckBake chunks it, embeds it with nomic-embed-text and stores the vectors alongside your tables — so a question can be answered from the prose, the rows, or both at once.

PDFDOCXMarkdownPlain text

Embedding is local too

The embedding model runs under the same Ollama install. Vectorising a long document takes a while the first time and never again.

Vectors live in the project

They are a DuckDB table like everything else, so a project stays one portable thing you can export and move.

It tells you which it used

An answer drawn from a document is not dressed up as an answer drawn from your rows.

Tables can be vectorised too

Semantic search over a text-heavy column — free-form survey answers, support notes — not just over documents.

Underneath

A Rust binary and about forty megabytes.

Tauri means the interface is React but the shell is the system's own web view, so there is no Chromium in the download and no second copy of it in your memory. The import, the parsing and the embeddings all happen in Rust; DuckDB is linked in rather than talked to over a socket.

Fine print

What it will not do.

Better to read this now than after the download.

Ollama is a separate install

DuckBake does not bundle a model or download one behind your back. Without Ollama running, everything except Chat works exactly as it does with it — the AI is the optional half.

Local models are big and honest about it

A useful chat model is several gigabytes on disk and wants the RAM to match. Answers come at the speed your Mac can manage, not at the speed of a data centre.

There is no cloud fallback

If a local model gets the SQL wrong, nothing quietly reaches for a hosted one instead. That is the trade the whole app is built around, and it cuts both ways.

macOS only, for now

A universal build for macOS 13 and up. Tauri would happily produce Windows and Linux binaries; nobody has needed them enough yet.

Import copies your data in

A file becomes a DuckDB table inside the project, so the project has its own copy. Editing the CSV afterwards does not change the table — re-import to refresh it.

Still a 0.0.x

It is in daily use and it is not finished. Expect the version number to keep moving and the odd rough edge to move with it.

Go find a CSV.

DuckBake is free and open source. Drag it to Applications, drop a file on it, and you are querying before the kettle boils. Ollama whenever you want the chat.

Download for Mac
macOS 13+ · universal binarySource on GitHubAll releases