
TablePro
A fast, lightweight, native macOS database client for MySQL, PostgreSQL, MariaDB, and SQLite. Built with SwiftUI. Free and open-source.
About
TablePro — The database client Mac deserves
If you've ever used DBeaver, you know the pain: slow Java startup, 500MB+ memory usage, and a UI that feels alien on macOS. TablePlus is better, but it costs $89 and the free tier limits you to 2 tabs and 2 filters.
TablePro is built to solve this. It's a 100% free, open-source, native macOS database client — no limits, no accounts, no catch.
Built native, not ported
TablePro is written in Swift using SwiftUI and AppKit — Apple's own frameworks. This isn't an Electron wrapper or a Java app running in a virtual machine. It's a real Mac app that:
Launches in under 1 second
Uses only ~50 MB of memory
Supports both Apple Silicon (M1–M4) and Intel natively
Follows macOS design conventions and keyboard shortcuts
A serious SQL editor
The SQL editor is powered by tree-sitter for accurate, incremental syntax highlighting that handles files with millions of lines without breaking a sweat. It includes:
Schema-aware autocomplete — suggests tables, columns, and functions from your live database
Multi-statement execution — run all queries or just the selected one
Multi-tab editor with persistent tabs across sessions
Full find & replace
Powerful data grid
Edit your data directly in the grid. TablePro tracks every change with full undo/redo support, then generates the correct INSERT, UPDATE, or DELETE statements when you save. You can sort by multiple columns, filter with a visual builder, and export to CSV, JSON, SQL, or XLSX.
Secure connections
Connect to remote databases through SSH tunnels with key-based or password authentication. TablePro can parse your ~/.ssh/config automatically. Auto-reconnect with exponential backoff keeps your session alive.
Supported databases
MySQL
MariaDB
PostgreSQL
SQLite
Uses native C connectors (MariaDB Connector/C and libpq) for maximum performance and compatibility — not JDBC or ODBC.
Free and open-source
TablePro is licensed under GPL v3. The entire source code is on GitHub. No paid tiers, no feature locks, no telemetry. Every feature is available to everyone.
Requirements: macOS 14 Sonoma or later.
Homepage: tablepro.app
Documentation: docs.tablepro.app
GitHub: github.com/datlechin/TablePro
What's New in v0.17.0
New Features - DuckDB Support: Connect to .duckdb files, query CSV/Parquet/JSON files via SQL, schema navigation, and extension management - MongoDB Auth Database: Configure authSource to authenticate against any database instead of the default admin - Safe Mode Levels: 6 per-connection levels (Silent, Alert, Alert Full, Safe Mode, Safe Mode Full, Read-Only) replacing the boolean read-only toggle, with confirmation dialogs and Touch ID/password authentication - Preview Tabs: Single-click opens a temporary preview tab, double-click or editing promotes it to a permanent tab - Import Plugin System: SQL import extracted into a .tableplugin bundle with support for .sql and .gz compressed files - Open SQLite from Finder: Double-click .sqlite, .sqlite3, .db3, .s3db, .sl3, and .sqlitedb files to open them directly - Plugin Install Prompt: Automatic prompt to install missing driver plugins when connecting to an unsupported database type Improvements - Oracle and ClickHouse shipped as downloadable plugins, reducing app bundle size - SQLite driver extracted from built-in bundle to downloadable plugin - Export plugin options (CSV, XLSX, JSON, SQL, MQL) now persist across app restarts - Plugins can declare settings views rendered in Settings > Plugins - True prepared statements for MSSQL and ClickHouse, eliminating string interpolation - Batch query operations for MSSQL, Oracle, ClickHouse, and SQLite, eliminating N+1 patterns - Unified error formatting and localized error messages across all database drivers - Standardized parameter binding with type-aware numeric handling and NULL literal support Bug Fixes - Fixed MongoDB Read Preference, Write Concern, and Redis Database not persisting across app restarts - Fixed DELETE and UPDATE queries using all columns in WHERE clause instead of primary key for PostgreSQL, Redshift, MSSQL, and ClickHouse - Fixed SSL/TLS always being enabled for MongoDB, Redis, and ClickHouse connections - Fixed Redis sidebar click showing data briefly then going empty - Fixed MongoDB showing “Invalid database name” when connecting without a database name - Fixed result truncation at 100K rows being silently discarded instead of reported to UI