A small SQL client for six databases.
MySQL, MariaDB, PostgreSQL, Oracle, SQL Server and SQLite in one 35 MB app. It draws its window with the web view your OS already has, so there’s no JVM to start and no Oracle Instant Client to install.
macOS (Apple Silicon) and Windows builds. They aren’t code-signed yet: on Windows choose “More info → Run anyway”; on macOS run xattr -dr com.apple.quarantine Tablume.app once.
Console Writing and running SQL
Every tab has its own connection and session, so a transaction in one tab doesn’t leak into another. Tabs and their SQL are still there after a restart, and .sql files open and save like files.
Run the statement under the cursor with ⌘/Ctrl + Enter, or the whole script, which stops at the first error. Scripts are split the way each database expects:
-- Oracle: a PL/SQL block runs up to the slash CREATE OR REPLACE PROCEDURE touch_order(p_id NUMBER) AS BEGIN UPDATE orders SET updated_at = SYSDATE WHERE id = p_id; END; / -- SQL Server: batches end at GO -- MySQL: DELIMITER and BEGIN … END bodies -- PostgreSQL: $$-quoted function bodies stay whole
Completion knows the tables and columns of the schema you’re in. A query that hangs can be cancelled; if the server ignores the cancel, the tab’s connection is reopened.
Results Reading what came back
Rows arrive 500 at a time. Plain SELECTs are paged with LIMIT/OFFSET (or OFFSET … FETCH), so no cursor sits open holding locks while you read. Scroll and the next page loads.
- Select cells or ranges and copy them as TSV, with headers, or as an
IN (…)list. - Resize, reorder and hide columns. JSON values open in a viewer that folds and formats.
⌘-click a foreign key to open the row it points to.- Export CSV, TSV, JSON or INSERT statements.
Tables Filtering and editing
A table opens in its own tab with WHERE and ORDER BY fields above the grid. Type a condition, press Enter, and the database does the filtering and sorting.
Edits, new rows and deletions wait on screen, highlighted, until you apply them. Then they run in one transaction. If any UPDATE or DELETE touches anything other than exactly one row, the whole lot is rolled back. Results without a full primary key say “Read-only” and why.
The Structure view changes column types, defaults, comments and indexes in place. You see the ALTER statements before anything runs, and a warning when the database can’t roll DDL back (MySQL, Oracle).
Schema tree Finding things
Connection, schema, tables, columns. Keys are marked, comments sit next to names, and row counts and sizes come from the database’s statistics — fetched only if you turn them on.
On a server with two hundred schemas, pick the few you work in. Choices are kept per connection and patterns like HR_* work.
Procedures and functions open as source you can run again as is, DELIMITER, GO and / included.
Connections
SSH tunnels with a password or a key. The server’s host key is saved on the first connection and a changed one is refused. Passwords live in the macOS Keychain or the Windows Credential Manager, not in a config file.
Web version Same app, on a server
Build it with -tags server or use the Dockerfile, put it behind your reverse proxy, and open it from any browser. The server makes the database connections, so it reaches whatever that machine can reach — handy for databases that only exist inside a private network.
Sign-in is a passkey: Touch ID, Face ID or Windows Hello. There is no password to guess or leak. SQLite files and SSH keys are read from one folder you choose, and SQL can’t reach outside it.
docker build -t tablume .
docker run -d -p 127.0.0.1:8080:8080 -v tablume:/data \
-e TABLUME_URL=https://db.example.com tablume
docker logs tablume # the link for the first passkey
At a glance
- Version
- 0.9.0
- Databases
- MySQL, MariaDB, PostgreSQL, Oracle (11g and later), SQL Server, SQLite
- Desktop
- macOS 12 or later on Apple Silicon, Windows 10 and 11
- Web
- Any server that runs Docker or a static Linux binary
- Size
- About 35 MB, one file
- Languages
- English, 한국어
- Built with
- Go, Wails, Svelte, CodeMirror. Pure Go drivers.
- License
- MIT. Source on GitHub
Not there yet
- ER diagrams. They’re being built now.
- Code signing. Neither the Windows nor the macOS build is signed, so both warn on first launch.
- No Linux desktop package. The web version runs on Linux.
Found a bug or missing something you use every day? Open an issue.