free & open sourceno telemetry, nothing behind a paywall

One DB client to replace them all.

Gets out of the way of you and your data. GPU Accelerated, no Electron, no JVM, no Tauri, fast, memory efficient and snappy on datasets where others crash

macOS .dmg·Windows .zip·Linux .tar.gz·AppImage

# macOS, with Homebrew
brew install --cask ShayanAbbas1/dbdelve/dbdelve
# Arch Linux, from the AUR
yay -S dbdelve-bin
# More ways, and the macOS step after each install, are under Install.
DBDelve in Gruvbox Dark Glass: a schema tree on the left, a SELECT on the events table in the editor, and its first 1,000 rows in the result grid below it.

Why −40 m

Stop paying for your DB Client, with cash or with speed.

I wanted something which is performant, modern and consumes little RAM. The existing DB clients are either filled with bloat (Electron and JVM) or paid. This is an alternative to them.

No feature is ever going behind a paywall.

  • PostgreSQL
  • MySQL
  • MariaDB
  • SQLite
  • Turso
  • Snowflake
  • SQL Server
  • MongoDB
  • RedisValkey, KeyDB, Dragonfly
  • more engines planned

In action −120 m

Speed.

SELECT * from events; brings back all of them, and the grid keeps up while you scroll.

The same table in DBeaver.

DBeaver 25.3.1, same database, same events table. It reads the rows, then sits on "Set data" with the spinning wait cursor for about twenty seconds. The grid never fills before we switch back to another tab.

Trimmed, played at real speed.

Back where you left off.

A cold start from the Dock. DBDelve opens on the tab you were in, with its last result already in the grid. The rows come from a snapshot, so nothing reruns.

Median launch 1.1 s, DBeaver 5.2 s.

Benchmarks −200 m

In numbers.

DBDelve 0.3.6 against DBeaver 25.3.1 on the same Postgres table. Median of 5 runs each, on an M1 Pro with 32 GB.

DBDelve and DBeaver benchmark results
metric TEXT dbdelve TEXT dbeaver TEXT
1 Launch 1.1 s 5.2 s
2 Idle memory 133 MB 606 MB
3 1,000-row query 0.21 s 1.96 s
4 1M rows, time 56 s 208 s
5 1M rows, memory* 4.9 GB 17 GB

* Not a normal use case: the whole 1M-row table pulled into memory on purpose, with the row limit off, and that result is itself 4 GB of data. DBeaver needed its heap raised to 16 GB to finish it at all. How these were measured, and the full results, are in BENCHMARKS.md.

Features −300 m

What it does.

Everything listed here works today.

DBDelve features
feature TEXT detail TEXT
1 Make it yours A theme library with DBDelve's own Dark, Light and Black alongside Catppuccin, Tokyo Night, Gruvbox and Dracula, most also in translucent glass. Bring a theme over from Zed or VS Code, or write your own, and customize keymaps, sort behavior and a lot more.
2 Bring your connections Import every saved connection, passwords and SSH settings included, from DBeaver on macOS, Linux and Windows, or from TablePlus on macOS. Then sort them into projects.
3 Never mistake prod for staging Every connection keeps its own tabs, schema tree and history, and wears its own color in the title bar. Run it read-only, read-write or with full access, and DBDelve asks before anything destructive.
4 Pick up where you left off DBDelve maintains snapshots of your data and starts right from where you left off, instead of rerunning queries. Hidden and pinned columns and query plans come back too.
5 Edits you can read first Change a cell in place and DBDelve writes the UPDATE into the editor for you to check before it runs. Query results from one table, key included, take edits and new rows as well.
6 Keep the columns you need Hide the rest, or pin a column to the left edge so it stays put while you scroll. The layout is still there after a restart.
7 Read a row in full Open the row panel to see every value in a row at full length, with JSON highlighted. Switch it to Edit to change a long value there instead of in a cell.
8 Import rows from a file Load a CSV, TSV or JSON file into a table or collection. Every row is checked, and every statement shown, before anything runs.
9 See the query plan Run Explain, or type an EXPLAIN yourself, and the plan opens highlighted in a pane of its own, with wasteful filters and bad row estimates called out.
10 Open the structure Open a table's columns, indexes, constraints and foreign keys, both ways, as a grid in a tab of its own. Switch database from the title bar, and on Postgres and Snowflake the schema too.
11 Keyboard-first One palette for commands, tables, saved queries, history and your connections, with fuzzy search throughout and every shortcut rebindable. Settings are searchable too, docked beside your work.
12 Your SSH, not a reimplementation Tunnels run through your own ssh, so your config, agent and hardware keys just work.

Closer look −450 m

Dark or light, glass or solid.

The same window in Gruvbox Dark Glass and Gruvbox Light Glass. Drag across it.

DBDelve in Gruvbox Dark Glass, with SELECT * from events in the editor and its rows in the grid
The same window in Gruvbox Light Glass, with events joined to accounts in the editor and the joined rows in the grid
  • DBDelve Dark
  • DBDelve Light
  • DBDelve Black
  • Catppuccin
  • Tokyo Night
  • Gruvbox
  • Dracula

Edits you can read first.

Change a cell and the UPDATE lands in the editor. Read it, then run it.

The Plan pane for an Explain Analyze of events joined to accounts: a Hash Join over two sequential scans, with timings, row counts and two ×76 misestimates in red

See the query plan.

Run Explain and the plan opens in a pane of its own, with bad row estimates called out.

Importing events.csv into public.events: each file column mapped to a table column, id set to Skip, and a preview of the rows to be inserted

Import rows from a file.

Map the columns of a CSV, TSV or JSON file and check every row before anything runs.

Install −700 m

Get it running.

macOS, Linux and Windows builds come with every release.

macOS

# Homebrew is the recommended way. It installs and upgrades.
brew install --cask ShayanAbbas1/dbdelve/dbdelve
# It's signed ad-hoc, not notarized, so Gatekeeper refuses the first launch.
# Clear the quarantine flag once per install (an update is a new install):
xattr -dr com.apple.quarantine /Applications/DBDelve.app
# Updating is Homebrew too. Clear the flag again after.
brew upgrade --cask dbdelve

Or take the .dmg and drag DBDelve to Applications. Apple Silicon, macOS 12 or later.

Linux

# From the AUR, packaged by @0PandaDEV. Thanks!
yay -S dbdelve-bin
# Or the tarball from the latest release. Installs under ~/.local, no root.
tar xzf dbdelve-*-linux-*.tar.gz && cd dbdelve-*-linux-*/ && ./install.sh
# Or the AppImage, one file that runs where it lands. It needs FUSE 2.
chmod +x dbdelve-*.AppImage && ./dbdelve-*.AppImage

x86_64 and aarch64, built on Ubuntu 22.04. You need a Vulkan or OpenGL driver, and a Secret Service keyring (gnome-keyring or KWallet) for saved passwords. Tarball · AppImage · full notes

Windows

  1. Download dbdelve-<version>-windows-x86_64.zip
  2. Unzip it wherever you like.
  3. Run dbdelve.exe. There's no installer.

x86_64.

Found a bug? Missing an engine?

Come say hi on Discord, or open an issue on GitHub. It's early days and feedback shapes what comes next.