An editor that has read your schema.
Autocomplete that knows which table you are in, dimmed completions from a model on your Mac, several result sets per run, and a command bar that takes SQL directly. The editor is where most of the day goes, so it gets most of the care.
Two kinds of completion, one keystroke each.
The popup is deterministic. After FROM it lists tables; after alias. it lists that table's columns; anywhere else it mixes keywords, objects and your snippets with fuzzy matching. It opens on its own at three characters, or on demand.
The ghost text is a local model's guess at the rest of the line, drawn dimmed at the caret. Tab accepts, Esc dismisses. It never enters the document until you say so, and it waits half a second after you stop typing so it does not fight you.
Inline edit
⌘ISelect some SQL, describe the change, get a preview with Apply. "Make this a LEFT JOIN and add the customer email."
Ask, then insert
⌘K ?Type a question mark in the command bar and a plain-language request becomes SQL, inline. Use it, or open it in a tab.
Fix from the error
When a statement fails, the assistant gets the live error message and the statement, and offers a corrected version.
Scripts, not just statements.
Paste a migration and run it. Taula splits on statement boundaries with a splitter that respects quotes, comments and dollar-quoting, and shows one result set per statement.
Run all, or just the selection
⌘⏎ / ⌘ETest one statement out of a script without commenting the rest out.
Tabs per session
⌘TEach tab keeps its own editor, result and timing. Sessions keep their tabs.
Cancel a running query
sqlite3_interrupt on SQLite; pg_cancel_backend over a side connection on Postgres.
EXPLAIN as a tree
EXPLAIN and EXPLAIN ANALYZE rendered as an indented plan for Postgres, and the query plan for SQLite in the same shape.
History that survives restarts
The last 200 statements per connection, searchable from the command bar.
Snippets
Name a query, find it by fuzzy match from anywhere, insert it into the completion popup.
Guardrails in the editor
UPDATE or DELETE without a WHERE, TRUNCATE and DROP TABLE ask first. More on the safety net.
Export results
Any result set to CSV or JSON, or copied as INSERT statements.
One bar, everything in it.
⌘K opens a fuzzy search over tables, columns, server objects, snippets, query history, databases, connections and actions. Subsequence matching with a bonus for word starts, so ord it finds order_items.
- Type SQL straight into it. A statement runs inline and shows its rows without opening a tab.
- Actions live there too. Insert a row, snapshot a table, open the journal, switch database.
- Same engine as the editor. The completion engine behind the popup powers the bar, so both know your schema.
When you would rather click the join.
Pick a table, tick columns, add aggregates and sort. Joins are suggested from the foreign keys and stay editable. Filters, DISTINCT and LIMIT round it out, and the generated SQL sits in a pane you can copy into a tab. Builder specs can be saved per connection and reopened later.
See the shape of the schema.
The Relations tab draws every table as a box and every foreign key as an edge. Click a table to focus what it references and what references it; double-click to open it in the grid. It is the fastest way to learn a database you did not design.
Shortcuts you will actually use.
The full list is in the docs.
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.