Skip to content
Projects

ashish10alex/vscode-dataform-tools

View on GitHub

ashish10alex/vscode-dataform-tools has 95 GitHub stars and 15 forks. Star changes are not measured yet. Last checked 2026-11-12 08:07 UTC. Last push 2026-11-10.

How these counts are measured

Dataform Tools - VS Code extension to run and visualise Dataform data pipelines and much more

What you can do

  • Compiled query and dry run - ✅ - ✅ - Beside the file on save, with the size and cost of a dry run and the schema of the result
  • Errors in the editor - ✅ - ✅ - Compile errors and BigQuery's dry-run errors, on the line you wrote
  • Preview query results - ✅ - ✅ - Runs the compiled query and shows its rows; for a dbt test, the rows that fail it
  • Scratch queries - ✅ - ✅ - New scratch query opens a file for ad hoc BigQuery SQL: run it with Cmd/Ctrl+Enter, with a dry run on save. From a model, it can start from that model's table; New empty scratch query always opens an empty one. Query table in scratch query starts one that selects from the open model's table

Measured star growth

in 24h
Collecting history
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

Tools for Dataform and dbt

A VS Code extension for Dataform and dbt™ projects on BigQuery. Officially recommended VS Code extension for Dataform by Google[^1] ✨. Supports Dataform versions 2.9.x and 3.x, dbt Core 1.8 and later, and dbt v2, in all major operating systems. Works in: VS Code, Cursor, Antigravity.


The compiled query of a Dataform model beside its file, with what a dry run says it will scan and cost The compiled query of a Dataform model beside its file, with what a dry run says it will scan and cost

The compiled query of a dbt model beside its file: the same panel a Dataform file has The compiled query of a dbt model beside its file: the same panel a Dataform file has

These are pictures. You can click through the real panel, with made-up data, at dataformtools.com.


Features

A dash means not in a dbt project yet. Each name links to its description at dataformtools.com/features.

Feature Dataform dbt What it does
Compiled query and dry run ✅ ✅ Beside the file on save, with the size and cost of a dry run and the schema of the result
Errors in the editor ✅ ✅ Compile errors and BigQuery's dry-run errors, on the line you wrote
Preview query results ✅ ✅ Runs the compiled query and shows its rows; for a dbt test, the rows that fail it
Scratch queries ✅ ✅ New scratch query opens a file for ad hoc BigQuery SQL: run it with Cmd/Ctrl+Enter, with a dry run on save. From a model, it can start from that model's table; New empty scratch query always opens an empty one. Query table in scratch query starts one that selects from the open model's table
Run files and tags ✅ ✅ With dependencies, dependents or a full refresh. Dataform: the CLI or the Dataform API. dbt: dbt build
Run changed actions ✅ ✅ Runs only what differs from the default branch, like dbt's state:modified, with a tick per file
Tests ✅ ✅ Dataform assertions and test actions; the dbt tests of a model, beside its compiled query
Dependency graph ✅ ✅ The whole project as a graph, centred on the file in the editor
Hover ✅ ✅ A table's kind, location, description, partition, row count and columns; a column's type and description
Go to definition ✅ ✅ From a ref() to its file. Dataform: also JavaScript variables and modules. dbt: also source() and macro calls
Completions ✅ ✅ Names inside ref() and source(), the Project's tables after FROM or JOIN, the columns of the tables the file reads with their types and descriptions, and the fields of a STRUCT column after a dot
BigQuery function help ✅ ✅ What a function takes, as you type its arguments: each one's type and allowed values, with a hover that has an example and the docs link
Column search ✅ ✅ Pick a column of a table by name, type or description
Defer to production ✅ ✅ Reads upstream tables that are not built in dev from production, like dbt's --defer. In a dbt project dbt does it, and dbtProdTarget names prod
Column lineage and impact ✅ — Columns dropped or retyped against prod, and who reads them downstream, from Dataplex
Dependency inspector ✅ — One filter across a model and its dependencies, then dry run or run each
Cost estimator ✅ — What a tag will cost before you run it
BigQuery jobs of a run ✅ ✅ Each job of an API or CLI run, or of a dbt build, live: state, duration, bytes billed and cost. All the workspace's runs are in the Runs view at the bottom, beside the jobs of the one chosen
Watch a workflow ✅ — Paste the ID or console URL of a workflow you didn't start (a scheduled one, a colleague's) and see the cost of each of its jobs in the Runs view, costliest first, followed until it ends. It only reads: it never cancels anything
Formatting ✅ — Formats .sqlx files with sqlfluff
Code actions ✅ — Applies the fix a dry run suggests
Config block IntelliSense ✅ — Completion, hover and warnings for config {} options, by action type

The pictures below are taken from the live demo by just website-demo, of the extension's own panel.

Errors, before anything runs

A dry run checks every save against BigQuery, and what it rejects is marked on the line you wrote, listed in Problems and told in the panel.

A model with a typo: the dry-run error on its line, in Problems and in the compiled query panel A model with a typo: the dry-run error on its line, in Problems and in the compiled query panel

Run a file and preview its rows

Run a file with the Dataform CLI, the Dataform API or dbt build, and preview the rows of its query.

The panel after a run, with its bytes billed, and the query results below The panel after a run, with its bytes billed, and the query results below

Hover over a table

The hover of a table is the same in a Dataform and a dbt project: its kind, location, description, partition, row count and columns.

The card shown over a ref(): the table, its kind, location, description and columns The card shown over a ref(): the table, its kind, location, description and columns

Defer to production

Each ${ref()} says whether its table is read from production or is built in dev.

Defer to prod on, with prod in a Google Cloud project of its own: beside each ref(), whether that table is read from prod or is built in dev; the panel lists the same Defer to prod on, with prod in a Google Cloud project of its own: beside each ref(), whether that table is read from prod or is built in dev; the panel lists the same

Run changed actions

The panel lists the actions that differ from the default branch, and runs all of them or the files you tick.

The Changed list in the compiled query panel: a new table and a view whose SQL changed, against the default branch The Changed list in the compiled query panel: a new table and a view whose SQL changed, against the default branch


Installation

  1. Install the extension from the marketplace.

  2. Install the CLI of your tool. The extension uses the one you have and installs nothing.

    Dataform dbt
    npm i -g @dataform/cli pip install dbt-core dbt-bigquery or brew install dbt-labs/dbt/dbt
    Needs Node.js. See Dataform CLI. dbt Core 1.8 or later, or dbt v2. See which dbt is used.
  3. Install gcloud cli and sign in for BigQuery:

    gcloud init
    gcloud auth application-default login
    gcloud config set project <project_id> #replace with your gcp project id
    
  4. Open the folder that has workflow_settings.yaml, dataform.json or dbt_project.yml, or a folder above it. The project of a file is the nearest folder above it that has a settings file, up to the folder you opened. So a project inside a larger repository works with the repository open. The extension does not look above the folder you opened.

  5. Optional, to format .sqlx files: pip install sqlfluff.

[!NOTE] Trouble installing or looking for a specific customization ? Please see FAQ section, if you are still stuck, please raise an issue here

Videos: installation on Windows, installation and demo on Ubuntu, a Dataform workspace run using the API.

Documentation

  • dbt projects: which dbt is used, what each feature does in a dbt project, how it compiles, where BigQuery jobs run, a folder that is both kinds of project, settings, and remote hosts (Remote SSH, dev containers, WSL).
  • Dataform projects: the BigQuery jobs of a CLI run, and Run Changed from a keybinding.
  • FAQ: answers to common problems.
  • dataformtools.com/features: every feature, in words.

Commands

Every command is in the Command Palette (CTRL + SHIFT + P, or CMD + SHIFT + P on Mac). Commands in the category "Dataform/dbt" work in both kinds of project; those in "Dataform" are for Dataform and are not listed while a file of a dbt project is in focus. The extension's Feature Contributions tab lists them with their ids, for keybindings.


Products

Name Registry Version Description
Dataform Tools VS Code marketplace VS Code marketplaceDownloads This extension.
Dataform Tools Open VSX Open VSX versionOpen VSX downloads The same build, for forks such as Cursor and Antigravity.
@ashishalex/dataform-graph npm NPM versionNPM downloads dataform-graph CLI: serves the dependency graph in your browser, without VS Code (readme).
@ashishalex/dataform-tools npm NPM version Programmatic wrapper around the @google-cloud/dataform npm package.
dataform-tools PyPI PyPI version Programmatic wrapper around the google-cloud-dataform Python package.

Support & Feedback

If this extension saves you time and makes working with Dataform or dbt easier, consider supporting the project:


dbt and dbt Core are trademarks of dbt Labs, LLC. This extension is a community project. It is not affiliated with, endorsed by or sponsored by dbt Labs or Google.

[^1]: Link to confirmation of official recommendation by Google:. Note that this is a community-led project and not an officially supported Google product.

Explore related projects