A modern, lightweight, multi-engine database client — an open-source alternative in the spirit of Navicat.
English · Español
Squaero (Latin quaero, "I seek / I inquire") is a multi-engine database
client with a C core (libdbcore) and a web UI running on the OS-native
webview (WebView2 on Windows, WebKitGTK on Linux, WKWebView on macOS). A modern
UI without the weight of Electron, and a native engine that talks directly to
each database's client libraries.
| Engine | Status |
|---|---|
| SQLite | ✅ Complete (verified) |
| PostgreSQL | ✅ Via libpq — SSL/TLS, SCRAM |
| MySQL / MariaDB | ✅ Complete (verified) — SSL/TLS, SSH tunnel |
| Informix | ✅ Via ODBC (x86 build) |
| MongoDB | ✅ Read (find/aggregate, mongosh syntax) |
| SQL Server | ✅ Via FreeTDS — queries, types, schema, transactions, encryption, named instances. Not yet: editing rows in the grid, DDL, cancelling a query |
| Oracle | ⏳ Planned (M12) |
Engines load as plugins (.dll/.so) implementing a C contract: adding an
engine never touches the core. See how to write a driver.
SQL editor
- CodeMirror editor with schema-aware autocomplete, SQL formatting, and run selection / statement / document.
- Query history with per-query duration and slow-query marks.
- Snippets / favorites; command palette (Ctrl/Cmd+K).
- Visual execution plan (EXPLAIN) as a tree.
Result grid
- Virtualized, per-column sort and filter, real pagination (offset).
- Inline transactional editing (insert/update/delete + SQL preview + commit/rollback); row detail (form view).
- Export CSV / JSON / SQL / XML / HTML / XLSX; import CSV / JSON / XLSX.
- Charts (bar / line / pie).
Objects and design
- Lazy, virtualized object tree grouped by type (tables, views, procedures, functions, triggers, events).
- Table designer (create and ALTER), index and constraint editor.
- Procedures / functions, triggers / events, users and privileges.
- Server monitor (process list + kill), slow queries.
- ER diagram (real foreign keys from the engine) and a visual query builder.
Data across connections
- Schema and data sync, table transfer between connections, and test data generation.
Connectivity and platform
- SSH tunnel (all engines), SSL/TLS (MySQL, PostgreSQL, MongoDB, Informix, SQL Server), and
import/export of saved connections — including DBeaver's
data-sources.json(with thecredentials-config.jsonbeside it) and Navicat's.ncx, passwords and all, so moving in does not start with retyping thirty servers. - Light/dark theme with the indigo brand, Settings and About panels, keyboard shortcuts, adaptive context menus.
- Single executable (embedded UI) + drivers as plugins. No Electron.
Windows: download the latest .msi installer from
Releases and run it. Requires
the WebView2 runtime (already bundled in Windows 11). Every release attaches a
SHA256SUMS.txt to verify the download:
sha256sum -c SHA256SUMS.txt (or CertUtil -hashfile squaero-*.msi SHA256).
Releases from v0.26.0 on also carry a signed build-provenance attestation, which
proves the MSI was built by this repository's release workflow:
gh attestation verify squaero-X.Y.Z-x86.msi --repo danielnuld/squaero.
The MSI is not Authenticode-signed yet, so Windows SmartScreen shows an unknown
publisher.
Informix needs IBM's 32-bit Informix Client SDK, which the installer does not include: install it from IBM (where to download). Squaero tells you when a connection finds no client.
Linux: from v0.29.0, releases attach a .deb for Ubuntu 24.04+ and Debian 13+
(x86_64), listed in the same SHA256SUMS.txt:
sudo apt install ./squaero_X.Y.Z_amd64.deb. apt pulls in every driver's client
library. Informix on Linux needs IBM's 64-bit Client SDK. On any distribution
with snapd, install it from the Snap Store:
sudo snap install squaero. Informix is not available in the snap.
AppImage/Flatpak and macOS (.app) are coming in future releases.
Requirements: CMake ≥ 3.20, a C11 compiler (GCC/Clang/MSVC) and, recommended, Ninja; Node + pnpm for the UI.
# UI (produces frontend/dist/index.html, a single file that gets embedded)
pnpm --dir frontend install
pnpm --dir frontend build
# Core + app
cmake -S . -B build -G Ninja
cmake --build build
ctest --test-dir build --output-on-failure # core testsThe binary lands in build/app/quaero (.exe on Windows). Webview
dependencies: Linux libgtk-4-dev libwebkitgtk-6.0-dev; macOS system WebKit;
Windows WebView2 (downloaded at build time). Core only: -DQUAERO_BUILD_APP=OFF.
PostgreSQL: the driver links libpq. On x64 it uses a system libpq; the x86
release build compiles a static libpq from source with -DQUAERO_LIBPQ=ON.
MongoDB: the driver links libmongoc. Without a system copy, build it from
source with -DQUAERO_MONGOC=ON (fetches and statically links mongo-c-driver;
TLS via Secure Channel on Windows).
SQL Server: the driver links FreeTDS's db-lib, 1.4 or newer. Without one
(Ubuntu 24.04's is older), -DQUAERO_FREETDS=ON fetches FreeTDS and links it
statically, as the release builds do.
Windows MSI installer: see installer/build-msi.sh
(WiX v5 via dotnet tool). Releases are cut automatically on a version tag — see
docs/VERSIONING.md.
Per-engine smoke: scripts/smoke/run.sh <sqlite|mysql|mongodb> — see
docs/QA-SMOKE.md.
Frontend (OS webview) ──JSON IPC──> C core (libdbcore) ──vtable──> Drivers (plugins)
SolidJS UI, virtual grid, connection, queries, sqlite, postgres,
SQL editor, tools introspection, editing, tx mysql, informix, mongodb, mssql
Details in docs/ARCHITECTURE.md.
- ROADMAP · Architecture
- Driver contract · How to write a driver
- IPC protocol · Shortcuts · Versioning
- Verification matrix · Brand
- Contributing
GPLv3. Proprietary-engine drivers ship as separate plugins, loaded at runtime, to respect their licenses. Full third-party inventory in THIRD-PARTY.md.

