Postgres, MySQL,
SQLite — at the speed
of your editor.
DevTables is a native Mac database client built for developers who live on the keyboard. A command palette runs any action by name, ⌘P jumps to any table the way you'd open a file, and autocomplete already knows your schema. No tree-clicking. No page-one resets. No telemetry.
| id | customer | status |
|---|---|---|
| 10422 | Acme Corp | shipped |
| 10423 | Northwind Ltd | pending |
| 10424 | Initech | paid |
| 10425 | Globex | paid |
| 10426 | Stark Industries | refunded |
| 10427 | Wayne Enterprises | pending |
| 10428 | Tyrell Corp | shipped |
| 10429 | Hooli | paid |
This window is drawn in HTML — but the palette works. Press ⇧⌘P and type.
Hands on the keys,
never on the tree.
Command palette ⇧⌘P
Every action in the app, run by name. Connect, query, export, truncate — type a few letters instead of hunting through menus.
Go to Table ⌘P
Jump to any table by typing its name — exactly the way you open a file in your editor. The sidebar becomes optional.
Schema-aware autocomplete
Live table, view, and column suggestions driven by the tables in your current statement — with column types shown inline.
State-preserving switching
Each open table keeps a live grid. Flip between tables and land exactly where you left off — scroll, page, sort, and selected row intact.
Your columns, remembered
The columns you show or hide — and the WHERE filters you set — are saved per table and per connection. Reopen a table, get your view back.
Every key, rebindable
The defaults below are just defaults. Settings → Keymap rebinds every common navigation, grid, and SQL action.
Three engines, done properly.
Plus one for your logs.
| Engine | Browse | Edit data | Structure | Users | TLS · SSH | Notes |
|---|---|---|---|---|---|---|
| PostgreSQLvia libpq | Yes | Yes | Yes | Yes | Both | Full structure editing including foreign keys; create databases. |
| MySQLvia libmysqlclient | Yes | Yes | Yes | Yes | Both | Native and mysql_native_password auth, both supported out of the box. |
| SQLitelocal files | Yes | Yes | Partial¹ | — | — | WAL-aware, sandbox-friendly; files reopen reliably after relaunch. |
| OpenObservevia _search api | Read-only | — | — | — | HTTPS | Streams appear as tables; time-window queries on _timestamp run fast. |
¹ SQLite supports add / rename / drop column and create / drop index. In-place type, nullability,
default, and foreign-key changes are deliberately blocked — SQLite can't do them without silently
rebuilding your table, and DevTables won't do that behind your back.
On the radar — later, not today: SQL Server, MongoDB, and Redis. The current
priority is depth and polish on the three core engines, not breadth.
A SQL editor that knows
your schema by heart.
-- top customers by revenue, last 30 daysSELECT c.name, c.country, sum(o.total) AS revenueFROM orders oJOIN customers c ON c.id = o.customer_idWHERE o.created_at > now() - interval '30 days'GROUP BY c.name, c.countryORDER BY revenue DESC LIMIT 25;SELECT id, status, total FROM orders WHERE c
Autocomplete that reads your statement
Columns are preloaded from the tables referenced in the query you're writing, shown with their types, and ranked ahead of keywords.
History that files itself
Every statement is kept per connection, grouped Today / Yesterday / older. Yesterday's one-off query is one click away.
A query library ⇧⌘S
Save queries with names, organize them into folders, favorite the ones you reach for weekly.
Run exactly what you mean
⌘↩ runs the current statement or selection; ⇧⌘↩ runs everything, one result tab per statement. Beautify keeps your -- comments.
See the SQL before it runs.
Staged edits, one transaction, zero surprises.
Staged, not fired
Edited cells, new rows, and deletions are held as a visible set of pending changes — nothing touches the database until you commit.
The exact SQL, shown first
Review Changes lists every statement a commit will run — for data edits and for schema edits alike. What you read is what executes.
One transaction ⌘S
The whole change set commits atomically. If one statement fails, none of them stick.
Guard rails everywhere
Destructive queries ask first. Truncate sits behind a deliberate dialog. And a real NULL never blurs with the string "NULL".
Review Changes
3 statements · ordersBEGIN;UPDATE "orders" SET "status" = 'shipped' WHERE "id" = 10423;UPDATE "orders" SET "total" = 129.00 WHERE "id" = 10427;DELETE FROM "orders" WHERE "id" = 10426;COMMIT;
Everything else,
listed plainly.
Released, in the open.
Recent versions, in the order they shipped.
-
1.0.1
Connectivity, hardened
SSH tunnels accept RSA private keys (AWS-style .pem included) via rsa-sha2 signatures. MySQL connects to servers still on mysql_native_password. New MySQL tables default to the current database, and OpenObserve queries always fetch fresh results.
June 2026 -
1.0
The first release
Connections, instant table browsing, a schema-aware SQL editor, transactional data and structure editing with Review Changes, user management, CSV/JSON import and export, TLS and SSH tunnels — and the command palette holding it all together.
Initial release
Get it
now.
DevTables 1.0 is live on the Mac App Store — a free download, fully sandboxed, no telemetry. Help shape what 1.x becomes by filing issues and feature requests on GitHub.