Dataform & dbt on BigQuery with one UI

Compiled SQL, dry-run cost, schema, preview and runs on BigQuery. This is the real panel: click around.

v2.0.0: dbt projects on BigQuery, next to Dataform · Works in VS Code, Cursor, Antigravity · Dataform 2.9.x and 3.x · dbt Core 1.8+ and dbt v2 · macOS, Linux, Windows

Open source · 244 releases since Jun 2024

VS Code MarketplaceOpen VSX versionOpen VSX downloadsnpm versionPyPI version
Graduation Release · v1.18.0

Develop against prod

Release 1.18.0 introduces two flagship developer superpowers: Defer to Production for zero-build local development, and Dataplex Column-Level Lineage & Impact Analysis to catch breaking downstream schema changes before they reach main.

FEATURE 01Like dbt's --defer for Google Dataform

Stop waiting for upstream builds in dev

In multi-tier ELT pipelines, building dozens of upstream raw and staging tables in your personal sandbox is slow and consumes precious BigQuery slots.

Defer to Production automatically reads unbuilt upstream dependencies directly from your production datasets during dry runs, query previews, compiled SQL views, and workflow runs.

In-Editor Ref Decorations: Real-time → prod indicators and amber ⚠ prod warnings if an upstream model is modified on your branch.
Safe Proxy Views for Runs: Executes full workflows via labelled ephemeral BigQuery proxy views, so Dataform CLI and API read prod safely through dev names.
UDF & Routine Deferral: Resolves custom JavaScript and SQL procedures across dev and prod environments automatically.

// settings.json

"vscode-dataform-tools.deferToProd": true,

"vscode-dataform-tools.prodCompilerOptions": "--default-database=my-prod-project"

0300_MONTHLY_REVENUE.sqlx
Defer: Active
config { type: "table", tags: ["finance"] }
SELECT
  o.order_id,
  o.customer_id,
  c.company_name,
  o.gross_amount_usd
FROM ${ref("stg_orders")} AS o→ prod(unbuilt in dev)
JOIN ${ref("dim_customers")} AS c⚠ prod (branch modified)
  ON o.customer_id = c.id
Defer: Prod (database=prod_dw)|Proxy Views: 0 leftover
BigQuery dry-run: 0 B ($0.00)

-- 01 · compile

Errors, before anything runs

A dry run checks every save against BigQuery. What it rejects is marked on the line you wrote, listed in Problems and told in the panel. This file has one: it is the real panel again.

See all features

-- 02 · lineage

Find where a row went missing

The dependency inspector takes a model and everything it reads from, and runs one filter on all of them. The row counts on the graph show which step lost the row. Press Run All: this is the real inspector, on the model above.

See all features
Dependency InspectorDataform

-- recently shipped

Fresh off the release branch

Full changelog
Ashish Alex

-- about the author

Built by Ashish Alex

I started Dataform Tools in May 2024 with a single feature: showing Dataform compilation errors directly on the .sqlx line I was editing. It has grown one release at a time since then, to 244 releases and counting, shaped by issues and ideas from the people who use it every day.

It's open source and maintained independently. If something is missing or broken, please open an issue.