dbro is a fast, keyboard-friendly database client for developers, built for Linux and available for macOS and Windows too. It talks to MySQL, MariaDB, PostgreSQL and SQLite, finds your local project databases by itself, follows your Omarchy theme, and ships an MCP server so your agents can work with the same databases you do.
- Connections to servers and SQLite files, with SSL/TLS and SSH tunnels. Passwords live in the system keyring, never on disk.
- Data grid with paging, sorting, a WHERE filter, inline editing with a change queue, NULL handling, a side editor for JSON and long text, foreign-key following, and copy as CSV, TSV, JSON, SQL, Markdown or a PHP array.
- Schema editor: create, rename, truncate and drop databases and tables; add, change, move and drop columns, indexes and foreign keys, always with a SQL preview first. SQLite tables are rebuilt where
ALTER TABLEfalls short. - Quick access: a command palette (Ctrl+K) that jumps to any project, connection, database or table and runs actions, run the statement under the cursor (Alt+Enter), filter from any cell, and generated SELECT/INSERT/UPDATE/DELETE statements.
- Query tabs with CodeMirror, named and positional parameters, autocomplete for tables and columns, several result sets, EXPLAIN, a per-connection history and saved snippets.
- Import and export: tables and results to CSV, JSON or SQL; full SQL dumps; SQL and CSV import; Clone to another database or connection, across drivers.
- Themes: dbro Dark and Light (picked from your system preference on first start), Tokyo Night, Catppuccin, Gruvbox, Nord, your own in
~/.config/dbro/themes/*.toml, or live sync with Omarchy. See Themes. - MCP server for agents (stdio or streamable HTTP): read-only by default, writes only on connections you allow, connections can be hidden.
- Headless mode:
dbro serveputs the app in a web browser on a port, embeddable in other applications.
![]() |
![]() |
| Queries with named parameters | Schema editor with table info |
![]() |
|
| Command palette (Ctrl+K) |
Lerd, Omarchy and the desktop portal are Linux only; the rest works on Linux, macOS and Windows.
- Lerd: every Lerd project shows up with its own database, found the way Lerd does it, from the project's framework definition (Laravel, Symfony, WordPress, Drupal, Craft and the rest Lerd knows, including git worktrees). Lerd's MySQL and PostgreSQL services are listed too and connect on startup.
- Laravel: point a connection at a project folder and dbro reads the database settings from its
.envon every connect. - Omarchy: the theme follows Omarchy's current theme live, including theme switches.
- MCP: agents such as Claude Code get your saved connections over stdio or streamable HTTP, read-only by default. See MCP for agents.
- OpenSSH: tunnels read
~/.ssh/config(host aliases,ProxyJump), use ssh-agent and checkknown_hosts. - System keyring: passwords go to the Secret Service on Linux (GNOME Keyring, KWallet), the Keychain on macOS and the Credential Manager on Windows.
- Desktop portal: file pickers and the light/dark preference come from the XDG desktop portal, so they match your desktop.
Builds for every release are on Releases: Linux (amd64, arm64), macOS (universal: Apple Silicon and Intel) and Windows (amd64, also runs on Windows on Arm).
Needs GTK 3 and WebKitGTK 4.1, and glibc 2.35 or newer: Ubuntu 22.04, 24.04 and 26.04, Debian 12 and 13, Fedora 36 and later, any current Arch. Every release is checked to start on those Ubuntu and Debian versions.
| Distribution | Dependencies |
|---|---|
| Ubuntu, Debian, Mint, Pop!_OS | sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0 |
| Fedora | sudo dnf install gtk3 webkit2gtk4.1 |
| openSUSE | sudo zypper install libgtk-3-0 libwebkit2gtk-4_1-0 |
| Arch, Omarchy, Manjaro | sudo pacman -S --needed gtk3 webkit2gtk-4.1 |
Then install the latest release into ~/.local (picks amd64 or arm64 for you):
arch=$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')
ver=$(curl -fsSL https://api.github.com/repos/ExeQue/dbro/releases/latest | grep -o '"tag_name": *"[^"]*"' | cut -d'"' -f4)
curl -fsSL "https://github.com/ExeQue/dbro/releases/download/$ver/dbro-$ver-linux-$arch.tar.gz" | tar -xz -C /tmp
cd "/tmp/dbro-$ver-linux-$arch"
install -Dm755 dbro ~/.local/bin/dbro
install -Dm644 dbro.desktop ~/.local/share/applications/dbro.desktop
install -Dm644 dbro.png ~/.local/share/icons/hicolor/1024x1024/apps/dbro.pngMake sure ~/.local/bin is on your PATH. To uninstall, delete those three files.
Arch, Omarchy, Manjaro: or build a proper package from the included PKGBUILD, so pacman tracks the files and the dependencies:
git clone https://github.com/ExeQue/dbro && cd dbro/packaging/aur/dbro-bin && makepkg -simacOS 12 or newer (the Go runtime requires it). The build is not notarized, so the quarantine flag has to be cleared once:
ver=$(curl -fsSL https://api.github.com/repos/ExeQue/dbro/releases/latest | grep -o '"tag_name": *"[^"]*"' | cut -d'"' -f4)
curl -fsSLo /tmp/dbro.zip "https://github.com/ExeQue/dbro/releases/download/$ver/dbro-$ver-macos-universal.zip"
unzip -oq /tmp/dbro.zip -d /Applications
xattr -dr com.apple.quarantine /Applications/dbro.app
sudo ln -sf /Applications/dbro.app/Contents/MacOS/dbro /usr/local/bin/dbro # optional: the CLI for dbro mcp / dbro serveWindows 10 or 11 with the WebView2 runtime (built into Windows 11; on Windows 10 it comes with Edge). In PowerShell:
$ver = (Invoke-RestMethod https://api.github.com/repos/ExeQue/dbro/releases/latest).tag_name
$dir = "$env:LOCALAPPDATA\Programs\dbro"
Invoke-WebRequest "https://github.com/ExeQue/dbro/releases/download/$ver/dbro-$ver-windows-amd64.zip" -OutFile "$env:TEMP\dbro.zip"
Expand-Archive "$env:TEMP\dbro.zip" $dir -Force
# Start menu shortcut
$lnk = (New-Object -ComObject WScript.Shell).CreateShortcut("$env:APPDATA\Microsoft\Windows\Start Menu\Programs\dbro.lnk")
$lnk.TargetPath = "$dir\dbro.exe"; $lnk.Save()
# optional: dbro on PATH for dbro mcp / dbro serve
[Environment]::SetEnvironmentVariable('Path', [Environment]::GetEnvironmentVariable('Path', 'User') + ";$dir", 'User')The build is not signed, so SmartScreen asks on first start (More info, Run anyway).
Needs Go, Node, the Wails CLI and, on Linux, webkit2gtk-4.1.
go install github.com/wailsapp/wails/v2/cmd/wails@latest
make install # builds and installs to ~/.local (binary, .desktop file, icon)dbro checks for a new release on startup (turn it off in Settings) and offers to update itself: it downloads the release for your platform, checks its SHA-256 and replaces itself, and the new version runs after a restart. dbro update does the same from a terminal. A copy installed by a package manager (under /usr) is left to that package manager.
Seven built-in themes, light or dark from your system, live Omarchy sync, and your own themes as TOML files. See docs/themes.md for the gallery and the theme format.
claude mcp add dbro -- dbro mcp # stdio
dbro mcp --http # streamable HTTP on 127.0.0.1:7811
claude mcp add --transport http dbro http://127.0.0.1:7811/mcpTools: list_connections, list_databases, list_tables, describe_table, query (always in a read-only transaction) and execute (only where Allow agents to change data is on: in Edit for saved connections, in the right-click menu for Lerd projects and services). Agent statements appear in the app's SQL log marked [mcp].
dbro serve runs the app without a window: open the printed URL in any browser. MCP is served at /mcp on the same port.
dbro serve # http://127.0.0.1:7810/
DBRO_TOKEN=secret dbro serve --addr 0.0.0.0:7810- On loopback without a token, only
localhost/127.0.0.1host names are accepted and the UI cannot be framed by other sites. - With a token (set
DBRO_TOKEN; generated automatically beyond loopback), the API, events and MCP needAuthorization: Bearer <token>or?token=. Any application that knows the token can embed the UI:<iframe src="http://127.0.0.1:7810/?token=secret">. - Plain HTTP: put a TLS proxy in front when you listen beyond your own machine.
- File pickers (import, export, dump) use the desktop portal of the machine dbro runs on, so they only work when
dbro serveruns in a desktop session.
| Path | What |
|---|---|
~/.config/dbro/connections.toml |
saved connections (no passwords) |
~/.config/dbro/config.toml |
settings |
~/.config/dbro/themes/*.toml |
your themes, Omarchy colors.toml format |
~/.config/dbro/snippets.json |
saved queries |
~/.local/state/dbro/ |
SQL log and query history |
make dev # the app with hot reload
make test # Go testsSee CONTRIBUTING.md for setup, running the MySQL and PostgreSQL tests, and guidelines.
MIT, see LICENSE.



