Free · Version 0.2.0 is out for Windows

A free database client that
keeps up with you.

Databench talks to PostgreSQL, MySQL, MariaDB and SQLite. The grid scrolls a million rows without a single paging button, every edit is staged until you say write, and the SQL is on screen before it runs. It installs at a few megabytes, and it costs nothing: no licence, no subscription, no trial.

Free, all of it · 3.7 MB installer · Windows 10 and 11, 64-bit · macOS coming soon

One client, four engines

  • PostgreSQL9.6 and newer
  • MySQL5.7 and newer
  • MariaDB10.4 and newer
  • SQLiteany file on disk
$0 to download, to use, and to keep using. No licence checks
3.7 megabyte installer, not a browser in a trench coat
0 animations. Nothing fades, nothing slides, nothing waits
rows in the grid. Scroll until the table ends

Everything you reach for, and not much else

Databench is built around density and speed. Rust does the work with the database, the interface is a system webview, and every action is reachable from the keyboard.

A grid without paging buttons

Rows load as you scroll, by keyset where the sort allows it and by offset where it does not. Sort on several columns, filter per column or drop in a raw WHERE clause, then pin, hide, reorder and resize columns. The layout is remembered per table.

Edits staged, never sprung

Type into a cell, insert a row, mark one for deletion: nothing touches the database yet. When you are ready, Databench shows you the exact statements, written by the backend and not by the page, and runs them in one transaction.

A SQL editor that knows your schema

CodeMirror with the dialect for the engine you are on, completion for your own tables and columns, multiple cursors, and scripts that run statement by statement into one result pane each. CtrlEnter runs the statement under the caret.

Query plans, estimated or measured

Read the plan as a tree before you run anything, or measure it and see where the time actually went. The raw plan is one toggle away when you want the whole thing.

Schema editing with a preview

Design a table's columns, indexes, foreign keys and check constraints, and read the DDL before it executes. Rename, truncate and drop go through the same preview, and each engine only offers what it can actually do.

Import and export that stream

Out to CSV, TSV, JSON, JSON Lines, SQL inserts or Markdown: the selection, what is loaded, or the whole table re-read with your filters. In from CSV, TSV, JSON and JSON Lines, with column mapping, encodings and a preview. Both show progress and both can be cancelled.

Backups anyone can read

Back a database up to a plain .sql script of CREATE and INSERT statements. Pick the schemas and objects, decide whether you want structure, data or both. Nothing proprietary, so psql and mysql restore it too.

Passwords where they belong

Credentials go to the operating system's store (Credential Manager, Keychain, the secret service) and never into Databench's own file, which holds only what a connection is called and where it points. Mark a connection read-only and writes are refused at the session.

Keyboard first, mouse optional

Every menu item and every keystroke goes through one command bus, so the palette on CtrlK can reach all of it. Rebind anything you like; conflicts are caught as you type.

Staged edits

Read the SQL before your database does

Grid editing is fast right up to the moment it silently writes the wrong row. Databench keeps your changes on your side of the wire and colours them as you go: green for an insert, amber for an update, red for a delete.

When you press CtrlS, the backend regenerates the statements from your staged changes and puts them on screen. Updates and deletes carry the original values in their WHERE clause, so a row that moved under you fails loudly instead of overwriting someone else's work.

  • One transaction, all or nothing
  • Rows identified by primary key, unique index or SQLite rowid
  • Query results are editable when the statement is provably one table
  • Copy the SQL out and run it yourself if you would rather
Review changes 3 statements · 1 transaction
-- 1 update
UPDATE public.customers
SET    seats = 64
WHERE  id = 184207
AND    seats = 32;

-- 1 insert
INSERT INTO public.customers
       (email, plan, seats, mrr)
VALUES ('[email protected]', 'team', 10, 290.00);

-- 1 delete
DELETE FROM public.customers
WHERE id = 184219
AND   email = '[email protected]';
Copy SQL Cancel Write

Query editor

Write it, explain it, then run it

The editor completes on the schema it just introspected, not on a generic keyword list. Run the statement under the caret, the selection, or the whole buffer as a script, and each statement gets its own result pane.

An UPDATE or DELETE with no WHERE gets a warning before it goes anywhere. History is kept per connection, and anything worth keeping can be saved and pulled back from the palette.

  • Plans as a tree, estimated or measured where the engine allows
  • Results export straight to CSV, JSON, SQL or Markdown
  • Multiple cursors, occurrence selection, bracket matching
  • Results are editable when Databench can identify the rows
churn.sql prod · postgres 16
SELECT c.plan,
       count(*) AS accounts,
       sum(c.mrr) AS mrr
FROM   public.customers c
WHERE  c.active
AND    c.signed_up >= now() - interval '90 days'
GROUP BY 1
ORDER BY mrr DESC;
Plan · measured in 41 ms
Sort41.0 ms
HashAggregate37.8 ms
Index Scan · customers_signed_up_idx33.2 ms

The whole application, from the keyboard

Every one of these is rebindable except tab switching. On macOS, read Ctrl as .

General

CtrlK
Command palette
CtrlN
New connection
CtrlT
New query
CtrlB
Toggle sidebar
CtrlW
Close tab
Ctrl,
Preferences

Query editor

CtrlEnter
Run the statement under the caret
CtrlShiftEnter
Run the whole buffer
CtrlAltEnter
Show the plan without running
CtrlSpace
Complete a name
CtrlD
Select the next occurrence
CtrlS
Save the query

Tables and results

CtrlF
Filters
CtrlS
Review and write staged edits
CtrlE
Export
CtrlI
Inspect the cell
CtrlC
Copy the selection
Ctrl19
Jump to a tab

Free, because a table viewer should not cost a subscription

Databench started as a tool for one person who did not want to pay a yearly fee to look at rows. It works, so here it is, and it is free for everyone: at home, at work, on one machine or on fifty. There is no free tier with the good parts removed, no seat count, no trial that expires on a Friday afternoon, and no account to make before you can connect to localhost.

No priceEvery feature, every engine, every update. There is nothing to buy, ever.
No paid tierNothing is held back for an edition that costs money. This is the whole application.
No accountDownload it and open it. That is the onboarding.
No telemetryIt talks to your databases and to the update endpoint. That is the list.
Signed updatesThe public half of the key is compiled in, so a tampered installer is refused.
Backups you can readA plain .sql script that psql and mysql also understand.

Download Databench

Version 0.2.0. Free to download and free to keep. Once installed it updates itself, and every update is signed.

macOS

Apple silicon and Intel

Coming soon

The build is being brought up and notarised. It will appear here and in the app's own updater the day it is ready.

Questions

Is it really free?

Yes, completely, and for personal and work use alike. There is no paid tier, no seat count, no trial that runs out and nothing withheld for an edition that costs money. The whole application is the free one, and there is no plan to put a price on it later.

Where do my passwords go?

Into your operating system's credential store, through the same API any other native application uses. Databench's own file holds a connection's name, host, port, database and user, never its password. Delete a connection and the credential goes with it.

Does it send anything anywhere?

It connects to the databases you tell it to, and it asks a single GitHub URL whether a newer version exists. There is no analytics, no crash reporting service and no account.

How do updates work?

Databench checks for a new version and can install it for you. Every build is signed, and the public half of the key is compiled into the application, so an installer that does not match the signature is refused. You can turn the startup check off in preferences.

What does it do about a table with a million rows?

Scrolls it. Rows are fetched in pages as you go, using keyset pagination when the sort order permits it and offsets when it does not, so page one and page nine thousand cost the same. The page size is configurable if you want to trade requests for memory.

Can I edit query results, not just tables?

When the statement is provably a plain SELECT from a single table with no joins, grouping or DISTINCT, and Databench can identify each row by a key, yes: the results grid stages edits exactly like a table does. Otherwise the results are read-only.

What format are the backups?

A plain .sql script of CREATE and INSERT statements, optionally with DROP IF EXISTS ahead of each object. Nothing proprietary: psql and mysql will restore it just as happily as Databench will.

When is macOS coming?

Soon. Databench is Tauri, so the macOS build is a matter of signing and notarising rather than a rewrite. It will show up on this page and in the releases feed.

Something is broken. Where do I say so?

Open an issue on the releases repository. Say which engine and version you were on and what you were doing.

Point it at a database.

A few megabytes, no account, no payment, and you are looking at rows in under a minute.

Download for Windows

Version 0.2.0 · 3.7 MB · free, with nothing held back