TABLEPRO · v0.63.0 · 5 AUG 2026
Every database.
One native Mac app.
MySQL, PostgreSQL, MongoDB, Redis, Snowflake and 20 more. Written in Swift with SwiftUI and AppKit, so there is no Java runtime, no Chromium and no JavaScript engine to start first. Free and open source under AGPLv3.
Free and open source · AGPLv3 · macOS 14+ · Apple Silicon and Intel · No account

Databases
25
9 bundled · 16 on demand
Cold start
Under 1s
Nothing to bootstrap
Idle memory
~80 MB
No JVM, no Chromium
Download
~20 MB
No runtime to install
Latest
v0.63.0
5 Aug 2026
12 releases in the last thirty days. Development happens in the open on GitHub.
Sponsors
Paid for by these companies.
That is why the app is free.
TablePro takes no funding and sells no data. Sponsorships and licenses cover the whole cost of building it, so every database, the AI assistant and the MCP server can stay free for everyone.
Sponsoring puts your logo here, near the top of the page, and in the project README. Become a sponsor
Databases
25 databases.
One native driver each. No JDBC.
Nine drivers ship inside the app. The other sixteen download the moment you pick one, with no restart, and every download is checksum and code-signature verified before it loads.
● bundled ○ downloads on demand
Twenty six tiles, twenty five drivers. Cassandra and ScyllaDB share one driver, and so do libSQL and Turso.
Drivers are .tableplugin bundles built against TableProPluginKit. The registry manifest is public at github.com/TableProApp/plugins, every download must match a SHA-256 checksum, and the bundle's code signature must match TablePro's signing team before it loads.
The workbench
Write, run, edit, commit.
In one window.
Every result is a tab. Every edit queues in memory until you save. Nothing runs against your database that you have not read first.
SQL Editor
Tree-sitter highlighting, schema-aware autocomplete that resolves aliases through JOINs and CTEs from the first character, and multi-statement batches that run inside one transaction where the engine supports it. If statement three of five fails, the error names statement three and the whole batch rolls back.
- Run
- ⌘⏎ statement at cursor · ⌘⇧⏎ all · ⌘⌥⏎ uncapped · ⌘. cancel
- Format
- ⌘⇧L, two-space indent, comments, strings and your cursor preserved
- Row cap
- 10,000 by default, 100 to 500,000. The SQL is never rewritten, so your own LIMIT always wins.
- Vim
- Six modes, motions, text objects, registers, marks, macros. :w runs the query.
- Files
- Opens .sql, .psql, .pgsql and saves back to disk, with a side-by-side diff if the file changed underneath you

Data Grid
Edit cells inline with the right editor for the type: a calendar for timestamps, a searchable list of referenced values for foreign keys, a three-state checkbox for nullable booleans, multi-select for MySQL SET columns. Nothing reaches the database until you press Save.
- Filter
- 18 operators, or a raw WHERE clause with column autocomplete after AND and OR
- Navigate
- Foreign key cells open the referenced row. ⌘-click opens it in a new tab.
- Commit
- ⌘S saves. ⌘⇧P shows the exact parameterized SQL first, values inlined.
- Undo
- ⌘Z is focus aware. A multi-row delete is a single undo.
- Copy as
- CSV, JSON, Markdown, IN clause, INSERT, UPDATE

AI Assistant
Thirteen providers, all bring your own key or your own account. Claude, OpenAI, Gemini, xAI, OpenRouter, GitHub Copilot, Cursor, OpenCode Zen, or fully local with Ollama, llama.cpp and MLX. Keys live in the macOS Keychain and are deleted with the provider.
- Explain
- ⌘L. ⌘⌥L optimizes. A failed query grows a Fix with AI button.
- Diff
- Before and after, unified or split, with numbered steps tagged Critical, Change or Context
- Apply
- Nothing reaches your editor until you press Apply
- Modes
- Ask is read only. Edit adds writes. Agent adds destructive operations behind a typed phrase.

Architecture
Written in Swift.
Not in a browser.
SwiftUI and AppKit for the interface, native C client libraries for the wire protocols. There is nothing to bootstrap before the first window appears.
Native macOS database clients come in three shapes today. Single database and open source, like Sequel Ace and Postico. Multi database and closed source, like TablePlus. Multi database but not native, like DBeaver on the JVM or Beekeeper Studio and DBGate on Electron. TablePro is the fourth: native, multi database, and open source.
Cold start under one second. Around 80 MB of memory when idle. About 20 MB to download.
Bill of materials
UI
SwiftUI and AppKit. Every query tab is a real NSWindow tab in a system tab group, so you can drag one out to its own window, merge windows back together and cycle with ⌃⇥.
Drivers
libpq, libmariadb, hiredis, libmongoc, libcassandra, FreeTDS, OracleNIO. Teradata and Trino speak their wire protocols in pure Swift. No JDBC jar, no ODBC bridge, anywhere.
Bundle
About 20 MB, in separate Apple Silicon and Intel builds. No Java, no .NET, no Node. Plugins load over a Library Evolution stable ABI, so an app update never breaks a driver.
Speed you notice on day two
Results before metadata
Rows appear as soon as they come back. Column metadata loads behind them, so a slow remote database no longer costs you a multi-second wait before you see anything.
Hiding a column makes the table load faster
A hidden column is not fetched at all. Hide a large TEXT or BLOB column and the query gets smaller. Widths, order and hidden state are remembered per table, scoped to connection, database and schema.
No accidental COUNT(*)
Above the row-count threshold, which defaults to 100,000, the pager shows an estimated total instead of running a full count against a large table.
DBeaver runs on Linux and Windows and speaks far more engines over JDBC. DataGrip is part of a JetBrains subscription and understands your codebase. If that is what you need, use those.
Agents
Let Claude query your database.
Without giving it your password.
TablePro runs an MCP server over your saved connections. The client receives a scoped token, never a credential, and every call lands in an activity log kept for ninety days.
Configuration
{
"mcpServers": {
"tablepro": {
"command": "/Applications/TablePro.app/Contents/MacOS/tablepro-mcp"
}
}
}No token in the config. The bridge launches TablePro if it is not already running.
Permission levels
- Askread only
- list_connections · list_tables · describe_table · get_table_ddl
- Editadds writes
- execute_query for SELECT, INSERT, UPDATE, DELETE. Destructive DDL is still blocked.
- Agentadds the tool loop
- confirm_destructive_operation. You type "I understand this is irreversible" every single time. It can never be pre-approved.
Fresh installs start in Ask.
- 16 tools
- 4 connection · 5 schema · 5 query · 4 navigation · 1 history. Plus 3 resources for connections, schema and history.
- Clients
- Claude Code
- Claude Desktop
- Cursor
- Zed
- VS Code
- Windsurf
- Cline
- Continue
- Goose
- Antigravity
- Raycast
- Providers
Thirteen, bring your own key or account:
- GitHub Copilot
- ChatGPT
- Claude
- OpenAI
- Cursor
- Gemini
- xAI
- OpenRouter
- OpenCode Zen
- Ollama
- llama.cpp
- MLX
- any OpenAI-compatible endpoint
Remote access is off by default. Turning it on switches authentication and TLS on automatically, generates a self-signed certificate valid for one year, and writes its fingerprint to the handshake file so the bridge can pin it.
Mac and iPhone
Your connections, in your pocket.
Synced over iCloud.
Connections, groups and tags sync end to end through your own iCloud account. Passwords go through iCloud Keychain, and only if you ask for them.
- Syncs to your Macs
- Connections, groups, tags, SSH profiles, favourites, saved queries and settings. Each has its own toggle. All of it is off by default and requires a Starter or Team licence.
- Passwords
- Opt in, through iCloud Keychain, end to end encrypted. Mark any connection Local only and it never leaves the Mac.
- On iPhone
- iOS and iPadOS 18 or later. Seven engines on device: SQLite, DuckDB, MySQL, MariaDB, PostgreSQL, Redis and SQL Server. SSH tunnels, Face ID lock, Handoff with your Mac, and Shortcuts that insert up to 10,000 rows without opening the app.
- Not on iPhone
- The plugin registry, AI chat, the MCP server and ER diagrams. iPhone and iPad sync connections, groups and tags only, not settings.

A separate Linux app is in development, written in Rust with native GTK4 widgets and no HTML rendering. PostgreSQL, MySQL, SQLite and SQL Server work today. It is not ready for a beta and there is nothing to install yet.
Safe Mode
Six levels between you and production.
Set per connection.
Even at the loosest setting, DROP, TRUNCATE and a DELETE with no WHERE clause stop and ask.
| Level | Write | Read | Auth |
|---|---|---|---|
| Silent (default) | runs | runs | none |
| Alert | confirmation | runs | none |
| Alert (Full) | confirmation | confirmation | none |
| Safe Mode | confirmation and Touch ID | runs | Touch ID |
| Safe Mode (Full) | confirmation and Touch ID | confirmation and Touch ID | Touch ID |
| Read-Only | blocked | runs | none |
Read-Only disables the interface, not just the query: no inline editing, no add or delete rows, no truncate, no drop, no import. The toolbar badge shows the level and changes it in one click. Opening a project folder whose path, host or database name contains “prod”, “production” or “live” raises the level to Alert automatically.
Credentials
Connection passwords, SSH passphrases, TOTP secrets and AI keys go to the macOS Keychain. Or they never live in TablePro at all: a connection can resolve its password at connect time from a file, an environment variable, a shell command, 1Password, HashiCorp Vault or AWS Secrets Manager.
Network
There is no account, no login and no cloud service in the connection path. Anonymous usage data is a single switch in Settings and carries no personal data and no queries. AI runs against the provider you configured, or entirely on your machine with Ollama, llama.cpp or MLX.
Getting there
A built-in libssh2 client with five auth methods and jump hosts chained in process, no ssh binary. Or Cloudflare Tunnel, Cloud SQL Auth Proxy, or SOCKS5 with DNS always resolved at the proxy. Five TLS modes with per-driver defaults. AWS IAM tokens are valid fifteen minutes and never stored.
Depth
Twelve more things
you would expect to pay for.
ER diagram
Automatic two-dimensional layout that groups tables by foreign key instead of stacking one tall column.
crow's foot from PKs and unique indexes · junction tables collapse · export PNG or CREATE TABLE
EXPLAIN, visualized
Three views of the plan: a cost-coloured diagram, an expandable tree, and the raw text.
⌘⌥E · ClickHouse Plan/Pipeline/AST · Trino Logical/Distributed/IO · BigQuery dry-run cost
Server dashboard
Active sessions, per-engine metrics and slow queries, with Cancel Query and Terminate Session behind a confirmation.
pg_cancel_backend and KILL QUERY · slow = over 1s · refresh 1s to 30s, default 5s
Users and roles
Grant and revoke without hand-writing GRANT, from the server down to a single column.
MySQL, MariaDB, PostgreSQL, PGlite · staged as a diff · PostgreSQL applies in one transaction
Vim mode
Six modes with the full motion and operator set, so :w runs the query.
counts, text objects, registers "a to "z, marks, macros capped at 50 recursions
Query history
Every query you run is saved, successful or not, and searchable.
local SQLite with an FTS5 index · 10,000 entries, 90 days, both configurable · ⌘Y
Quick Switcher
Fuzzy search across tables, databases, saved queries and history, ranked by frecency.
⌘⇧O · four scopes on ⌘1 to ⌘4 · ⌘K switches database, and says Keyspace on Cassandra
CSV inspector
Open a .csv or .tsv as a document, with no scratch database and no import step.
detects delimiter, encoding and line ending · split by regex, merge columns · saves byte-faithfully
Import and export
Five export formats, streaming at constant memory with no row limit, written atomically.
CSV, JSON, SQL, MQL, XLSX · imports SQL, JSON, CSV with rollback, commit or skip
Connection import
Bring your connections from six other clients, passwords and tunnels included.
TablePlus, Sequel Ace, DBeaver, DataGrip, Beekeeper Studio, Navicat · source app need not be running
Backup and restore
PostgreSQL and Redshift dumps through the connection's existing SSH tunnel.
pg_dump -Fc · live byte counter · restore runs --no-owner --no-acl
Plugins and themes
Drivers install when you pick them and update without a restart.
SHA-256 and code signature checked before load · staged updates · four built-in themes, more from the registry
Migration
Bring your connections with you.
Passwords, tunnels and SSL included.
The source app does not even need to be running. Groups and folders carry over. Or point TablePro at a project folder and it reads the connection out of your .env, wp-config.php, schema.prisma, database.yml, docker-compose.yml, application.yml or appsettings.json without you copying anything by hand.
Import sources
TablePlus
Keychain
incl. Setapp edition
Sequel Ace
Keychain
DBeaver
config file
any edition
DataGrip
Keychain or c.kdbx
Beekeeper Studio
app.db
incl. SSH bastions
Navicat
exported .ncx
Open source
Nothing is behind a paywall.
Here is what a licence actually buys.
TablePro is AGPLv3. All 25 databases, the SQL editor, the data grid, the AI assistant, the MCP server, Safe Mode with Touch ID, SSH tunnels, ER diagrams, the server dashboard, Users and Roles and XLSX export are free. There is no trial countdown and no time limit, and the app does not care how many Macs you install it on. You can read the source, build it yourself, and use it at work.
A licence adds four things: iCloud Sync, a second Mac, encrypted connection export, and environment variables in connection fields. A Team seat adds a shared catalog and a shared query library. That is the entire paid surface.
Mostly it buys my time to keep shipping. If you use TablePro at work, please buy a licence. If you cannot afford one, use the free version. That is why it is free.
- Latest
- v0.63.0 · 5 Aug 2026
- Cadence
- 12 releases in the last thirty days
- License
- AGPLv3 · github.com/TableProApp/TablePro
Pricing
The app is free.
The license funds it.
Starter is per person. Team is per seat, from 5 seats. Yearly saves 33 percent. Lifetime pays for itself against yearly in about two and a half years.
- iCloud Sync
- Connections, groups, tags, SSH profiles, favorites, saved queries and settings on every Mac you own. Passwords go through iCloud Keychain as a separate opt in.
- A second Mac
- Starter activates two. Team activates 5, then one per purchased seat.
- Team catalog and library
- Publish connection definitions and saved queries to your team. Passwords are never sent, so everyone supplies their own.
$24 a year, or $59 once. Lifetime pays for itself in two and a half years.
Starter
For people who use it every day
Everything in Free, plus:
- iCloud Sync across your Macs
- 2 Mac activations
- Encrypted connection export
- Environment variables in connection fields
Team
For teams and organizations
Everything in Starter, plus:
- Priced per seat, from 5 seats
- Team Catalog: publish connections to a shared folder
- Team Library: share connections and saved queries
- Passwords are never sent
- Priority support
7-day money-back guarantee on all paid plans. Refund policy
If you use TablePro at work, buy a license. If you cannot afford one, the free version is not going anywhere.
Compare plans
FAQ
Questions people actually ask.
Short answers.
Is it really free, or free for now?
Free, permanently. TablePro is AGPLv3 and the whole app works without a license, with no trial countdown and no per-Mac limit. All 25 databases, the SQL editor, the data grid, the AI assistant, the MCP server, Safe Mode with Touch ID, SSH tunnels, ER diagrams and XLSX export cost nothing. A license adds four things: iCloud Sync, a second Mac activation, encrypted connection export, and environment variables in connection fields. Team adds a shared catalog and a shared query library.
Can I use TablePro at work under AGPLv3?
Yes. AGPL obligations attach to distributing a modified version of the software, not to using it. There is no company-size or revenue restriction. If you use it at work, buying a license is how the next release gets built.
Where are my passwords stored?
In the macOS Keychain. Connection details live in a plain JSON file with no secrets in it. A connection can also skip storage entirely and resolve its password at connect time from a file, an environment variable, a shell command, 1Password, HashiCorp Vault or AWS Secrets Manager.
Can the AI drop a table on production?
Not without you clicking. Chat has three modes with real tool gates, and fresh installs start in Ask, which is read only. Write tools ask for approval per call. Destructive operations always need a per-call confirmation plus typing the phrase "I understand this is irreversible", and can never be pre-approved. A connection set to Read-Only Safe Mode denies writes regardless of the mode.
Can I move my connections from another client?
Yes. TablePro imports from TablePlus, Sequel Ace, DBeaver, DataGrip, Beekeeper Studio and Navicat, including passwords, SSH tunnels and SSL settings. The source app does not need to be running, and groups and folders carry over.
Why do Cassandra and ScyllaDB appear separately when you say 25?
The grid shows 26 tiles because Cassandra and ScyllaDB are two entries in the connection chooser. They share one driver, and so do libSQL and Turso, which is why the driver count is 25.
Is this abandoned like Sequel Pro?
No. Development happens in the open on GitHub with a public changelog, a Discord, and roughly ten releases a month. The full release history is in the repository.
Windows or Linux?
macOS 14 or later and iOS 18 or later today. A native Linux app is being built in Rust with GTK4, with PostgreSQL, MySQL, SQLite and SQL Server working already, but it is not ready for a beta and there is nothing to install yet. There is no Windows version.


