v1.17.2
zdbt is a fork of Zed with dbt built into its bones — Jinja-aware SQL, a dbt language server, one-keystroke query results, and an interactive column-level lineage canvas. Native GPUI. Zero webviews.
macOS · Linux · Windows — free & open source, GPL-3.0
1-- fct_orders · materialized: table 2{{ config(materialized='table') }} 3 4select 5 o.order_id, 6 c.customer_name, 7 sum(p.amount) as amount 8from {{ ref('stg_orders') }} o 9join {{ ref('stg_payments') }} p 10 on o.order_id = p.order_id 11group by 1, 2
| # | order_id | customer | amount ▼ |
|---|---|---|---|
| 1 | 10482 | Acme Corp | 4,120.50 |
| 2 | 10391 | Globex | 3,987.00 |
| 3 | 10057 | Initech | 2,340.75 |
| 4 | 10210 | Umbrella | 1,876.20 |
Features
Open a model and zdbt already knows your project — profiles, environment, lineage, compiled SQL. Results are one keystroke away.
Execute the current model — or just the SQL you selected — through dbt show. Results land in a grid with sorting, live search, a column picker, resizable columns, pinned row numbers, and CSV export.
Layered auto-layout with crossing reduction, materialization colors, per-node collapse, drag & pan, semantic zoom. Click a column to light up its transformation path across the DAG.
Resolved from the real SQL AST — 77% of columns on our reference project; the rest fall back to name matching, which can over-link.
Native tree-sitter grammar with combined SQL injection — statements survive {{ ref(…) }} interruptions. Default for every .sql file.
dbt Fusion's dbt lsp first — completions, hover, go-to-definition, diagnostics — falling back to the community server. dbt Core has no lsp subcommand, so Core users point lsp.dbt-lsp.binary.path at it themselves.
Opening a model recenters the lineage on it; clicking a node opens the file. Two views of one project, always in sync.
zdbt discovers nested dbt_project.yml files, in-repo profiles (local_profiles/, .dbt/), loads .env secrets up to the repo root — into the dbt process only — and keeps the manifest & catalog fresh with automatic dbt parse. Fifteen settings on a dedicated page when you want control.
# on open ✓ project: employees/dbt_project.yml ✓ profiles: local_profiles/ ✓ env: 8 vars from .env ✓ dbt parse · catalog fresh
Agents
zdbt is also an MCP server. Open a dbt project and it registers itself with the built-in agent — no config file, no setup. Ask about a column and the agent traces it through the lineage instead of guessing from file text.
dbt_list_models — every model, source, seed and snapshotdbt_model_info — description, relation, columns and their sourcesdbt_lineage — upstream and downstream nodes with levelsdbt_column_lineage — one column's path, hop by hopdbt_show — run a model or ad-hoc SQL, rows as JSONdbt_compile — the rendered SQLRuns headless, so dbt_show and dbt_compile need a dbt already on your PATH — and dbt_show queries the real warehouse.
# in the zdbt agent panel — nothing to configure > where does revenue_net in fct_orders come from? → dbt_column_lineage(fct_orders, revenue_net) stg_payments.amount → int_payments.gross sum(amount) → fct_orders.revenue_net gross - refunds # same binary, any MCP client claude mcp add dbt -- \ /Applications/zdbt.app/Contents/MacOS/zed --dbt-mcp
Workflow
01
The lineage panel recenters instantly. Upstream sources on the left, downstream marts on the right — collapse what you don't need.
02
The model — or your selection — compiles and runs against your warehouse. Jinja resolved, limits applied, secrets from .env.
03
Sort, search, hide columns, export CSV. Flip to Compiled to read the exact SQL, or trace a column across the DAG.
Download
Prebuilt binaries for Apple Silicon macOS, x86_64 Linux and x86_64 Windows. Intel Macs and ARM Linux build from source. Installs alongside official Zed and never auto-updates over it.
Every build is unsigned — the steps below are how you get past that safely. All versions on the releases page.
Apple removed the old right-click → Open bypass in macOS 15, so unsigned apps are approved in Settings now.
.dmg, drag zdbt to Applications.On macOS 14 and older: right-click the app → Open → Open.
The tarball unpacks as zed-dev.app — keep the folder intact and symlink the launcher rather than copying it.
tar -xzf zdbt-linux-x86_64.tar.gz mkdir -p ~/.local/opt mv zed-dev.app ~/.local/opt/zdbt ln -sf ~/.local/opt/zdbt/bin/zed \ ~/.local/bin/zdbt
A per-user installer — no admin rights needed. Because it is unsigned, SmartScreen will interpose once.
zdbt-windows-x86_64-setup.exe.%LOCALAPPDATA%\Programs.Requires Windows 10 1709 or newer.
Each release ships a
SHA256SUMS.txt
covering all three artifacts. Pass --ignore-missing, or it reports the two files you didn't download as failures.
# macOS shasum -a 256 --ignore-missing -c SHA256SUMS.txt # Linux sha256sum --ignore-missing -c SHA256SUMS.txt
# or build from source (Rust + cmake) git clone https://github.com/arezki1990/dbt-zed cd dbt-zed cargo build --release -p zed --features gpui_platform/runtime_shaders ./target/release/zed /path/to/your/dbt/project