A fast, local-first SQL workbench built with Rust and GPUI.
No cloud. No accounts. No telemetry.
Just a focused, native desktop tool for PostgreSQL, MySQL / MariaDB, SQL Server, ClickHouse, Turso / libSQL and SQLite, on Windows, macOS and Linux.
π barsql.bare7a.eu Β· π¬ Demo video Β· π User Guide
demo.mp4
Grab the latest build for Windows, macOS, or Linux from the Releases page.
- Windows:
BarSQL-windows-amd64.zip(portable) orBarSQL-amd64-installer.exe(installer) - Linux:
BarSQL-linux-amd64.tar.gz(x86-64) orBarSQL-linux-arm64.tar.gz(ARM64), both portable - macOS:
BarSQL-darwin-arm64.zip(Apple Silicon) orBarSQL-darwin-amd64.zip(Intel)
- Windows:
BarSQL.exe(standalone) - Linux:
BarSQL-x86_64.AppImageandBarSQL-aarch64.AppImage(ARM64), plusBarSQL.deb,BarSQL.rpm,BarSQL.pkg.tar.zstandBarSQL(standalone) for x86-64 - macOS:
BarSQL-macos-universal.dmg
No account required - just download and run.
Every build above updates itself. The installer, the Linux packages and copies in protected folders ask for admin rights first.
The macOS app is signed with a Developer ID and notarized by Apple, so it opens like any other app.
The Windows build isn't code-signed yet, so Windows asks once before BarSQL first opens: when SmartScreen says Windows protected your PC, click More info β Run anyway. Smart App Control, where it's turned on, blocks unsigned apps without an exception, so BarSQL can't run there until it's signed.
Every release lists each file's SHA-256 in SHA256SUMS, which the updater checks its downloads against, and every file carries a signed build provenance attestation from the GitHub Actions run that built it.
Prefer to build it yourself? See Build from source below.
Work with SQLite, PostgreSQL, MySQL / MariaDB, SQL Server, ClickHouse and Turso / libSQL in a single fast desktop app that runs entirely on your machine.
π§³ Portable
β‘ Fast startup
π Local-first
π§ Developer-focused
π Auto-updating
- Query faster with smart, schema-aware autocomplete - functions included, with their signatures on hover
- Edit SQL the VS Code way - multiple cursors, line commands, go to definition and a command palette
- See what the server said - notices, warnings and
PRINToutput in a Messages tab - Check what a server is doing in one click - activity, blocking, sessions, table statistics
- Reach databases behind a bastion over an SSH tunnel
- Stream results - rows arrive as the driver yields them
- Run multi-statement scripts and get a result tab per output
- Edit rows in the grid - in a table, or in the results of a
SELECTfrom one - Plot any result as a bar or line chart
- Explore schemas instantly - down to indexes, constraints and triggers, or as an ER diagram
- Design tables in a Structure tab and see the exact SQL before it runs
- Rename, truncate, drop and back up tables straight from the schema tree
- Compare two schemas and get the script that syncs them
- Copy any object's DDL in one click
- Import a CSV or run a
.sqlscript - Save and reuse queries
- Export anything in one click
- Let AI assistants such as Claude read your databases over MCP - and change them only where you allow it
- Auto-update with one click
![]() Editor |
![]() Transactions & multiple results |
![]() Table data |
![]() Cell editor |
![]() Grid |
![]() Export |
![]() Connections |
![]() Quick Search |
![]() DDL viewer |
![]() Plan viewer |
![]() CSV & SQL import |
![]() Structure editor |
![]() ER diagram |
![]() Quick charts |
![]() Appearance |
BarSQL is a desktop SQL client built for developers who want speed, clarity and control.
It combines:
- π¦ Rust from the database drivers up to the window
- π₯οΈ GPUI, the GPU-accelerated UI framework behind the Zed editor
- π§© GPUI Kit components, including a code editor with tree-sitter highlighting
- π Native drivers for each engine:
tokio-postgres,mysql_async, a bundled SQLite,tiberiusfor SQL Server, and BarSQL's own HTTP clients for ClickHouse and Turso
Most SQL tools today are:
- slow to start and heavy on memory
- cloud-connected by default
- tied to subscriptions or accounts
- overloaded with features you donβt use
BarSQL focuses on one thing:
A fast, local environment for working with databases.
| Database | Read & write | Read-only mode | Secure transport | SSH tunnel |
|---|---|---|---|---|
| PostgreSQL | β | β | SSL - disable / require / verify-full |
β |
| MySQL | β | β | TLS | β |
| MariaDB | β | β | TLS | β |
| SQLite | β | β | local file | n/a |
| SQL Server | β | β | TLS - disable / require / verify-full / strict (TDS 8.0) |
β |
| ClickHouse | β | β | HTTP or HTTPS - disable / require / verify-full |
β |
| Turso / libSQL | β | β | HTTPS, or HTTP for a local sqld |
self-hosted sqld |
Per-engine details are in the engine notes.
Every feature in detail, one area per page:
| Page | What it covers |
|---|---|
| π Connections | Folders, read-only mode, SSL and TLS, SSH tunnels, SQLite extensions, engine notes |
| π§ SQL Editor | Autocomplete, multiple cursors, scripts, transactions, the query plan viewer, saved queries and history |
| ποΈ Schema Explorer | The schema tree, ER diagrams, schema compare, Copy DDL, schema changes, the structure editor, table backups |
| π Results Grid | Sorting, selection stats, quick charts, the cell and JSON viewers, editing data |
| π₯ Import & Export | CSV and SQL import, export formats |
| π€ AI Assistants (MCP) | Letting AI apps read your databases, and change them only where you allow it |
| π The App | Themes, languages, palettes, the status bar, keyboard shortcuts, the data folder, auto updates |
Everything lives in a single BarSQL-data/ folder. When the app sits somewhere writable, that folder is created right next to the executable (beside the .app bundle on macOS) - move it to a USB stick, network drive, or another PC and it just works.
What's in it, and where it goes when the app can't write beside itself: The App.
cargo run -p barsql --releaseRequirements, tests and the project layout are in CONTRIBUTING.md, packaging and releases in RELEASING.md.
Issues and pull requests are welcome. Good places to start:
- Report a bug or ask for a feature - especially anything that misbehaves on your engine or server version
- Add a language - mostly JSON, plus a few lines of Rust to register it
If BarSQL is useful to you, a β helps other people find it.
GPL-3.0-only; see LICENSE.














