Quary is an open-source business intelligence tool for engineers — a Rust-based CLI paired with a VS Code extension that lets teams define sources, models, charts and tests as version-controlled code rather than assembling reports by hand in a hosted BI product.
What it is
Quary belongs to the analytics, data-modeling and ELT corner of the data ecosystem, distributed under the Apache-2.0 licence and written in Rust. It is built by Quary Labs, a Y Combinator W24 company, and has accumulated 2,383 stars and 57 forks on GitHub. The project ships as two pieces: a VS Code extension that acts as the interface, and a Rust CLI that acts as the core. Everything a team works with is expressed as a code asset. Sources describe external data — database tables, flat files or APIs, the last of these through DuckDB. Models are SQL transformations that turn raw data from those sources into analysis-ready datasets. Charts are visual representations written in SQL. Dashboards and reports are also listed as asset types, but both are explicitly marked work in progress.
The concrete problem Quary addresses is the gap between where SQL logic actually lives and where BI tooling forces it to live. Engineers write SQL to transform, organise and document tables inside a database, and Quary keeps that work in files that can be reviewed, tested and refactored iteratively through version control. Complex analyst queries get split into atomic components instead of sprawling into one unmaintainable statement, and the organised, documented model is then deployed back up to the database. In practice this replaces hand-maintained SQL that drifts out of sync with the warehouse, since the compiled model and the deployed database objects come from a single source of truth that also runs in continuous integration.
Key capabilities
quary init initialises a DuckDB demo project with sample data, giving a working starting point in an empty directory.
quary compile validates the project structure and model references without touching the database.
quary build builds and executes the model views and seeds against the target database.
quary test -s runs defined tests against the target database.
- Asset types managed as code include Sources, Models, Charts, and work-in-progress Dashboards and Reports.
- Sources can point at database tables, flat files, or APIs via DuckDB.
- Installation paths cover Homebrew with
brew install quarylabs/quary/quary, a curl installer at install.sh, downloadable builds from the releases page, and a VS Code extension from the Visual Studio Marketplace.
Who uses it and how
- Data and analytics engineers who want their transformations reviewed through version control rather than edited live in a warehouse console.
- Teams breaking large warehouse queries into atomic models, so each step can be compiled, built and tested independently.
- DuckDB users running local or demo projects, since
quary init scaffolds a sample DuckDB project with sample data.
- Engineers producing charts from SQL for stakeholders, with dashboards and reports planned but not yet finished.
- Users needing support through the
quarycommunity Slack channel or by filing an issue on the GitHub tracker.
Getting started
Install the CLI with brew install quarylabs/quary/quary or the curl installer, then add the Quary VS Code extension — note the extension depends on the CLI already being installed. Create a project with quary init, then run quary compile, quary build and quary test -s.
How it compares
No competing or paid products are named in the available facts, so Quary stands alone in this registry rather than sitting alongside a documented set of alternatives. The only related project mentioned is SQRUFF, a Rust-based SQL linter from the same team, which is complementary tooling rather than a substitute. Any comparison against established commercial BI platforms would have to rest on the Apache-2.0 licence and the code-first workflow, but the facts here do not supply named counterparts to contrast against.
When to use it — and when not to
Quary suits engineers who are comfortable installing and running a CLI, operating their own database connection, and treating BI definitions as code. It is a poor fit for teams that want a fully hosted, no-code BI product with finished dashboards today, because Dashboards and Reports are still marked as work in progress and the extension is useless without the CLI. A self-hoster should also weigh that the README excerpt does not enumerate supported databases, and that the repository currently carries 47 open issues.
project readme (upstream, from github) — read inline
Quary
Business Intelligence for Engineers 🅀

With Quary, engineers can:
- 🔌 Connect to their Database
- 📖 Write SQL queries to transform, organize, and document tables in a database
- 📊 Create charts, dashboards and reports (in development)
- 🧪 Test, collaborate & refactor iteratively through version control
- 🚀 Deploy the organised, documented model back up to the database
View the documentation.
🗃️ Supported Databases

🏗️ Asset Types in Quary
Define and manage the following asset types as code:
- Sources: Define the external data sources that feed into Quary, such as database tables, flat files, or APIs (with DuckDB).
- Models: Transform raw data from sources into analysis-ready datasets using SQL, this lets engineers split complex queries into atomic components.
- Charts: Create visual representations of your data using SQL.
- 🚧 Dashboards (WIP): Combine multiple charts into a single view, allowing engineers to monitor and analyze data in one place.
- 🚧 Reports (WIP): Create detailed reports to share insights and findings with your team or stakeholders.
🚀 Getting Started
Installation
Quary is a VSCode Extension (Interface) & Rust-based CLI (Core)
Extension
The VSCode extension can be installed here. Note that it depends on the CLI being installed.
CLI
Homebrew installation
brew install quarylabs/quary/quary
Linux/Mac through curl
Quary can be installed using curl on Linux/Mac using the following command:
curl -fsSL https://raw.githubusercontent.com/quarylabs/quary/main/install.sh | bash
Other installations
Other builds are available in the releases page to download.
Usage
Once installed, a sample project can be created and run as follows:
mkdir example # create an empty project folder
cd example
quary init # initialize DuckDB demo project with sample data
quary compile # validate the project structure and model references without database
quary build # build and execute the model views/seeds against target database
quary test -s # run defined tests against target database
🅀 Community
Join our Slack channel, for help, ideas, and discussions.
Support
If you run into any problems using Quary, please let us know. We want Quary to be easy-to-use, so if you are getting
confused, it is our fault, not yours. Create an issue and we'll be happy to
help you out.
Check out our other projects
SQRUFF, a compact, high-speed SQL linter, engineered with Rust efficiency.