Three engines. One grid, one editor, one set of rules.

Taula speaks to PostgreSQL, SQLite and Cloudflare D1 through three drivers that share one model of a table, a value and a query. Where an engine has something the others do not, Taula shows it. Where it does not, Taula says so instead of pretending.

PostgreSQL

Over PostgresNIO, with typed decoding for numeric, uuid, jsonb, arrays and timestamps. SSH tunnels, an activity monitor, functions, sequences, enums and extensions in their own tab, database create and drop, VACUUM and ANALYZE, pg_dump and pg_restore.

SQLite

Over the system libsqlite3, isolated in an actor so the UI never blocks. Multi-statement scripts, attached databases, triggers, rowid editing for tables without a key, query plans as a tree, .dump backup and replay.

Cloudflare D1

Over the D1 HTTP API with an account id, a database id and an API token kept in the Keychain. The same grid, editor, staged edits and guardrails as a local SQLite file, against the database your Worker uses.

Support matrix

What works where.

Most of Taula is engine-neutral. This table lists the parts that are not, so you know before you buy.

FeaturePostgreSQLSQLiteCloudflare D1
Browse, filter, sort, infinite scrollYesYesYes
Staged edits with SQL review, change journalYesYesYes
Editing tables without a primary keyctidrowidRead-only
Query editor, autocomplete, ghost text, ⌘KYesYesYes
Multiple result sets per scriptYesYesYes
Cancel a running querypg_cancel_backendsqlite3_interruptNo
EXPLAIN visualizerPlan tree, ANALYZEQuery plan treeQuery plan
Structure editing with ALTER previewYes, ALTER … USINGYesYes
Objects tabFunctions, sequences, enums, extensionsAttached databases, triggersNo
Relations view, schema diff, data diffYesYesYes
Activity monitor, cancel and terminate sessionspg_stat_activityNot applicableNot applicable
Assistant top queriespg_stat_statementsNoNo
Backup and restorepg_dump, pg_restore.dump, replayUse Wrangler
SSH tunnelYesNot applicableNot applicable
Database-level operationsCreate, drop, VACUUM, ANALYZEVACUUM, ANALYZENo
Assistant and MCP serverYesYesYes
Connecting

Tunnels that use your ssh, not a copy of it.

A Postgres connection can carry an SSH hop. Taula opens the tunnel in-process with your key or your ssh agent, picks a free local port, and tears the tunnel down when the session closes. The hop is saved with the connection, so it comes back next time without a second dialog.

  • Test before save. Every connection form has a Test button that opens a real session and reports the server version.
  • Colors and a production flag. Tint the window, and get an extra warning on destructive statements. More on that.
  • Several sessions, tabs across the top. Postgres, a local SQLite file and a D1 database open side by side.
Not supported

MySQL and MariaDB, for now.

They are not in Taula. The driver exists as an idea, not as code tested against a real server, and shipping untested engines is how you end up with a grid that corrupts a column type. If you need MySQL today, Taula is the wrong purchase; if that changes, it will be in the changelog and on this page.

Also not planned: Windows, Linux, cloud sync, team features. Taula is a Mac app for one person and their databases.

Ready when you are.

One payment, every update, no subscription. Download the DMG, add a connection, and you are reading rows in under a minute.