Skip to content

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

TablePro on macOS: a SQL query and its result grid, with the connection sidebar on the left.

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

License

AGPLv3

Read the source →

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
The SQL editor with a multi-statement query and its result tabs below.

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
The data grid with edited cells highlighted and a pending-changes count in the toolbar.

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.
The AI assistant showing a before and after diff of a rewritten query with numbered explanation steps.

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

claude_desktop_config.json
{
  "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.
TablePro on iPhone showing rows from a PostgreSQL table.

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.

Safe Mode levels and their behaviour
LevelWriteReadAuth
Silent (default)runsrunsnone
Alertconfirmationrunsnone
Alert (Full)confirmationconfirmationnone
Safe Modeconfirmation and Touch IDrunsTouch ID
Safe Mode (Full)confirmation and Touch IDconfirmation and Touch IDTouch ID
Read-Onlyblockedrunsnone

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

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.

Free

Everything to get started

$0

The full app. All 25 databases. Every Mac you own.

Starter

For people who use it every day

$24/year

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

$50/year
$10/seat
5

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

Feature
Free
Starter
Team
All 25 databases
SQL editor, data grid, AI assistant, MCP server
Safe Mode, Touch ID, SSH tunnels
Import and export, including XLSX
License activations
No license needed
2 Macs
5 minimum, then per seat
iCloud Sync
Encrypted connection export and environment variables
Team Catalog and Team Library
Priority support

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.