From a file to an answer
No connection to set up and no schema to write first.
-
Drop in a file
Drag a file or a whole folder onto the window, pick it from the file dialog, or name it on the command line.
-
It shows up as a table
The table is named after the file —
sales.csvbecomessales— and its columns appear in the sidebar. The file stays where it is. -
Query it with SQL
Write SQL, press ⌘↵, then chart the answer or export it as CSV or Parquet.
Opens what you already have
Open a folder and every data file inside it opens too, subfolders included. Patterns like *.csv work. Files you open are still there next time.
- CSV
- TSV
- Parquet
- JSON and NDJSON
- Excel xlsx, xls, ods
- DuckDB databases
- S3 and compatible storage
Ready for AI agents
From a terminal, ducklocal answers one SQL statement as JSON, without opening a window. Scripts can rely on the format, and agents can reason over it. The official agent skill teaches them to read the schema before they query.
$ ducklocal query --format md --sql " SELECT channel, round(sum(revenue), 2) AS revenue FROM 'sales.csv' GROUP BY channel ORDER BY revenue DESC" | channel | revenue | | --- | --- | | Mobile app | 290549.76 | | Web | 289544.8 | | Store | 240067.6 | | Phone | 82511.2 |
Dashboards as plain files
Write queries and plots in a .dash file and it opens as a dashboard tab. Because it is plain text, it diffs, reviews and validates: ducklocal check catches a missing column before anyone opens it.
query "by_channel" { sql = <<SQL SELECT channel, sum(revenue) AS revenue FROM sales GROUP BY channel SQL } plot "revenue" { type = "bar" query = query.by_channel x = channel y = revenue }
Your data stays yours
DuckLocal runs DuckDB inside the app, on your Mac. There is nothing to sign up for and nowhere for your files to go.
- Files are read where they are — never copied, never uploaded.
- No account, no telemetry, no cloud service.
- Dashboards can only read, so opening one someone sent you cannot change your data.
- Open source under Apache-2.0: every line is there to read.
Try it on your own files
Download DuckLocal, drop in a file and press ⌘↵. The 10-minute tutorial walks through it with a sample file.