Dataform Tools
Officially recommended VS Code extension for Dataform by Google[^1] ✨. Supports Dataform versions 2.9.x and 3.x in all major operating systems. Works in: VS Code, Cursor, Antigravity.

Installation
Install the extension from the marketplace.
Install Dataform cli
# requires nodejs & npm - https://nodejs.org/en/download
npm i -g @dataform/cli
Run dataform compile from the root of your Dataform project to ensure that you are able to use the cli.
Install gcloud cli and run
gcloud init
gcloud auth application-default login
gcloud config set project <project_id> #replace with your gcp project id
Install sqlfluff (optional, for formatting)
# install python and run
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
✨ Features / Previews



Hover over tables, columns, column types and BigQuery functions to see their documentation, syntax, and examples making it easier to understand and use them correctly without leaving your editor.


Go to definition for source in $ref{("my_source")}. Takes you to my_source.sqlx or sources.js at the line where my_source is defined. There is also support for go to definiton
from a javascript variable/module from a .sqlx file to js block or .js file where the virable or module declaration exsists

Auto completion of declarations in ${ref("..")} trigger when $ character is typed and dependencies and tags in config block when " or ' is typed.


Interactive inspector to explore dependencies, apply a common filter across all nested dependencies and perform dry runs or run the queries in BigQuery.


Commands
Most features can be invoked via the Command Palette by pressing CTRL + SHIFT + P or CMD + SHIFT + P on Mac and searching for the following. These key bindings can also be attached to a keybinding to further streamline your workflow.
| Command |
Description |
vscode-dataform-tools.showCompiledQueryInWebView |
Show compiled Query in web view |
vscode-dataform-tools.runCurrentFile |
Run current file |
vscode-dataform-tools.runCurrentFileWtDeps |
Run current file with dependencies |
vscode-dataform-tools.runCurrentFileWtDownstreamDeps |
Run current file with dependents |
vscode-dataform-tools.runQuery |
Preview query results |
vscode-dataform-tools.runTag |
Run a tag |
vscode-dataform-tools.runTagWtDeps |
Run a tag with dependencies |
vscode-dataform-tools.runTagWtDownstreamDeps |
Run a tag with dependents |
vscode-dataform-tools.runFilesTagsWtOptions |
Run file(s) / tag(s) with options |
vscode-dataform-tools.runFilesTagsWtOptionsApi |
Run file(s) / tag(s) with options using API |
vscode-dataform-tools.runFilesTagsWtOptionsInRemoteWorkspace |
Run file(s) / tag(s) with options using API in remote workspace [beta] |
vscode-dataform-tools.dependencyGraphPanel |
Show dependency graph |
vscode-dataform-tools.runTagWtApi |
Run a tag using API |
vscode-dataform-tools.runTagWtDependenciesApi |
Run tag with dependencies using API |
vscode-dataform-tools.runCurrentFileWtApi |
Run current file using API |
vscode-dataform-tools.runCurrentFileWtDependenciesApi |
Run current file with dependencies using API |
vscode-dataform-tools.runCurrentFileWtDependentsApi |
Run current file with dependents using API |
vscode-dataform-tools.clearExtensionCache |
Clear extension cache |
Products
| Name |
Registry |
Badge |
Description |
| Dataform Tools |
VS Code marketplace |
|
VS Code extension — dependency graph, compiled query preview, dry-run stats, inline diagnostics, go-to-definition, autocomplete, formatting, and more. Same build is published to both the VS Code marketplace and Open VSX (for forks such as Cursor and Antigravity). |
| Open VSX marketplace |
|
@ashishalex/dataform-graph |
npm |
|
dataform-graph CLI — serves the dependency graph in your browser; no VS Code required (readme). |
@ashishalex/dataform-tools |
npm |
|
Programmatic wrapper around the @google-cloud/dataform npm package. |
dataform-tools |
PyPI |
|
Programmatic wrapper around the google-cloud-dataform Python package. |
Known Issues
- [ ] Features such as go to definition / dependancy graph might not work with consistantly with
${ref("dataset", "table")} or when it is multiline or a different format works best with ${ref('table_name')} format
TODO
- [ ] Handle case where user is not connected to internet or on vpn where network request for dry run cannot be made
[^1]: Link to confirmation of official recommendation by Google:. Note that this is a community-led project and not an officially supported Google product.