Skip to main content
DuckDB is an embedded analytical database built for OLAP workloads. TablePro opens local DuckDB files and connects to remote DuckDB servers over the Quack protocol. The driver plugin bundles DuckDB 1.5.3 and is a downloadable plugin: TablePro prompts to install it when you pick DuckDB in the connection form.

Connecting to a local DuckDB file

1

Create a new connection

Click Create Connection… or press Cmd+N, then choose DuckDB.
2

Keep Connection Type set to Local File

Click Browse… to select an existing .duckdb file, or enter a path to create a new database.
3

Connect

Click Save & Connect to open the database.
DuckDB connection form with Local File and Remote (Quack) connection types

DuckDB connection form

Connecting to a remote DuckDB server (Quack)

Quack is DuckDB’s client-server protocol. A DuckDB server exposes itself with quack_serve, and TablePro attaches to it as a remote database. Set Connection Type to Remote (Quack, experimental) and fill in: Click Save & Connect. TablePro opens an in-memory DuckDB, registers the token as a secret, and attaches the remote server.
Remote (Quack) is experimental and matches the Quack beta:
  • You can run SQL against the remote, for example SELECT * FROM alias.main.your_table.
  • The sidebar cannot list remote tables yet; the Quack beta cannot enumerate a remote catalog.
  • On macOS the quack extension downloads from the DuckDB extension registry on first use, so the first remote connection needs network access.

Connection URL

See Connection URL Reference for all parameters.

Opening DuckDB files from Finder

Double-click a .duckdb or .ddb file in Finder to open it directly in TablePro.

Schemas

DuckDB supports multiple schemas per database; the default is main. Browse them in the sidebar. DuckDB has no toolbar schema switcher.

Querying files directly

DuckDB can query CSV, Parquet, and JSON files with SQL:

DuckDB on iOS

The iOS app supports DuckDB too. In the connection form, pick DuckDB and either turn on In-Memory Database or open a .duckdb/.ddb file through the Files app. Opened files keep working across launches through a security-scoped bookmark, so edits write back to the original file. The iOS build statically links the core_functions, json, parquet, icu, autocomplete, httpfs, and quack extensions, so remote Quack connections work on iOS without a download. Runtime extension autoloading stays off, so other on-demand extensions are not available on iOS. Large in-memory databases are bounded by the app’s memory budget.

Troubleshooting

Connect fails on a local file: DuckDB allows one writer per file. Quit anything else holding it, a duckdb CLI session, a Python process, or another TablePro window, then reconnect. Remote connection fails while attaching: On macOS the quack extension downloads from the DuckDB extension registry the first time you connect. If that download is blocked, the attach step fails. Connect once from a network that can reach the registry. Host is required for a remote DuckDB connection: The Host field is empty. Fill it in before saving. Port must be a number between 1 and 65535: The Port field holds something else. The Quack default is 9494.

Limitations

  • A local DuckDB file allows only one writer at a time.
  • Remote (Quack) mode cannot list tables in the sidebar. Reference them by name in SQL.
  • TablePro cannot switch databases on a DuckDB connection. Each connection targets one file or one attached remote.