Native and GPU-rendered
Drawn on the GPU with GPUI, the UI framework behind the Zed editor: one Rust codebase from the database drivers to the window.
No cloud. No accounts. No telemetry. A native, GPU-rendered desktop app for SQLite, PostgreSQL and MySQL / MariaDB.
Free and open source · Portable · Updates itself
Most SQL clients are slow and heavy, cloud-connected by default, tied to subscriptions and packed with features you never use. BarSQL does one thing: a fast, local place to work with your databases.
Drawn on the GPU with GPUI, the UI framework behind the Zed editor: one Rust codebase from the database drivers to the window.
Everything runs and stays on your machine. No account, no sign-in, no telemetry: your connections and queries never leave your computer.
Connections, history, saved queries and settings live in one BarSQL-data folder next to the app. Copy both to a USB stick and carry on elsewhere.
Whole-window UI tests drive the app with real keystrokes and clicks, and end-to-end suites run against real PostgreSQL, MySQL and MariaDB servers.
Read and write, or lock a connection to read-only: it's refused in the app and again inside the database session.
disable, require, verify-fullSHOW CREATE DDLThe work you do every day, without the detours.
Suggestions know your schema: tables, columns, aliases and CTEs, with fuzzy matching and JOIN snippets where a join fits.
BEGIN, then commit or roll back from the toolbarExplain shows the planner's estimate; Explain analyze runs the statement and reports what really happened, as one tree on every engine.
UPDATE statementsBrowse any table, filter it with a WHERE condition that autocompletes, and change it in place.
Schemas, tables and columns, then indexes, constraints, triggers and functions, fetched only when you open them.
.sql file that restores it exactlyLoad a CSV into a new or existing table, or run a .sql script, and export any result in the format you need.
INSERTFuzzy and context-aware: schema.table.column dot completion, quoted identifiers, aliases, CTEs and JOIN snippets.
Statements run in order on one connection, so temp tables, SET and scripted transactions hold. Every output gets its own tab.
BEGIN, COMMIT and ROLLBACK as SQL or from the toolbar. Queries run inside the tab's open transaction until it ends.
Rows render as the driver yields them, in a virtualized grid that scrolls smoothly through thousands of rows.
Estimated or measured plans as one tree on PostgreSQL, MySQL, MariaDB and SQLite. Type EXPLAIN yourself and it opens there too.
Tables, views, columns, indexes, constraints, triggers and functions, with instant search and a row count that needs no tab.
Rename, truncate and drop from the tree. Each dialog shows the exact SQL for your engine, with Cascade on PostgreSQL.
Structure and rows to a .sql file. The server writes every value as a literal, so dates, JSON and binary survive the round trip.
Staged edits, deletes and new rows applied on demand, with undo, paste and foreign-key jumps, guarded by primary keys.
A cell editor for large values (JSON, XML, HTML or text, beautified or minified) and a JSON view of the focused row.
Column mapping, inferred types, configurable NULL text and header rows, or a .sql script run statement by statement.
Text, CSV, JSON, Markdown or SQL INSERT, for all or the selected rows and columns, to the clipboard or a file.
Save and reuse queries with unsaved-change tracking, plus per-connection history with status and duration.
Reach a database only its bastion can see, with a key, a password or ssh-agent, and host keys checked against known_hosts.
Folders, tab colors and read-only mode, and a database list fetched from the server so you needn't remember names.
Quick Search jumps to tabs, tables, saved queries and connections. VS Code-style line commands, and every shortcut remappable.
Dark and light themes, English, Deutsch and Български, no animations in the way, and your window restored where you left it.
A new release shows up with its notes. One click downloads it, checks its SHA-256 and restarts into it.
Click a screenshot to see it full size, then use the arrow keys to browse.
Every shortcut can be remapped in the app's shortcuts editor.
No account needed: download it and run it.
Every build updates itself from inside the app. All of them, with their checksums, are on the
latest release.
Prefer to build it? cargo run -p barsql --release, as the
README explains.
Everything lives in one BarSQL-data folder next to the app (beside the .app on macOS):
connections, the editor session, history, saved queries and settings. Move both to a USB stick, a network
drive or another computer and pick up where you left off.
When the app sits somewhere read-only, the folder goes to your user data directory instead, and
BARSQL_DATA_DIR puts it anywhere you like.
BarSQL(.exe)
BarSQL-data/
connections.json
editor_session.json
query_history.json
saved_queries.json
settings.json
One Rust codebase: a background Tokio runtime talks to the databases, so the UI thread only draws.
Free, open source and yours to keep, on Windows, macOS and Linux.