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.Enter :memory: instead of a path for an in-memory database. It holds nothing on disk, so everything in it is gone when you disconnect.3
Connect
Click Save & Connect to open the database.

DuckDB connection form
Connecting to a remote DuckDB server (Quack)
Quack is DuckDB’s client-server protocol. A DuckDB server exposes itself withquack_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.
Connection URL
Opening DuckDB files from Finder
Double-click a.duckdb or .ddb file in Finder to open it directly in TablePro.
Databases and schemas
A DuckDB connection opens one database, named after the file (analytics.duckdb becomes analytics). Each database holds one or more schemas, and the default is main.
The sidebar shows both levels. Switch it to Tree layout from View > Sidebar Layout to get database > schema > object folders; in the default Flat layout it lists the current schema’s objects and the active schema sits at the foot of that list. The toolbar shows the active database and schema side by side; click either to switch it, or press ⌘K for the database list.
ATTACH a second file and it appears as a sibling database after a sidebar refresh:
system and temp catalogs are hidden, and with them information_schema and pg_catalog, which live inside system.
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, aduckdb 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.

