A VS Code extension that wraps dbt Core CLI. No language server — just direct CLI integration with six focused features.
Publisher: TEAMSchools
Activation: Opens automatically when a workspace contains a dbt_project.yml file.
Requires: YAML (Red Hat)
Installation
Install from the VS Code Marketplace by searching for dbt Core Tools (publisher: TEAMSchools), or install the .vsix directly:
Extensions: Install from VSIX...
dbt Core must be installed and accessible from your shell. By default the extension calls dbt; adjust dbtCoreTools.dbtCommand if you use a wrapper like uv run dbt.
Features
Command Runner
Run, build, test, and show models from the editor title bar or the command palette. Each action also has an "Options" variant that lets you pick upstream (+model), downstream (model+), and full-refresh before executing.
Lifecycle commands available from the command palette:
| Command |
Description |
| Setup Project |
dbt deps + dbt parse for the current project |
| Setup All Projects |
Same for every discovered project |
| Install Dependencies |
dbt deps |
| Parse Project |
dbt parse |
| Clean Project |
dbt clean |
| Debug |
dbt debug |
| Retry |
Re-run the last failed command |
| Stage External Sources |
Run dbt-external-tables stage macro |
Compiled SQL Viewer
Opens compiled SQL from the manifest in a side-by-side diff view. Stays current when parse-on-save is enabled.
Command: dbt Core Tools: Show Compiled SQL
Lineage Viewer
DAG visualization using D3 and dagre. Nodes expand and collapse; right-click for context actions. A lock toggle keeps the view pinned to a specific model.
Command: dbt Core Tools: Show Lineage
Jump to Properties / Model
Toggle between a .sql model file and its corresponding .yml properties file. If no properties file exists it can scaffold one. Also provides a Sync Columns command to write column names from the manifest into the YAML.
Commands: dbt Core Tools: Toggle SQL/Properties, dbt Core Tools: Sync Columns
Model Preview
Run dbt show and display results in a sortable HTML table inside VS Code.
Command: dbt Core Tools: Show Model
Row limit controlled by dbtCoreTools.showLimit.
Code Intelligence
Powered by the parsed manifest:
- Go to definition — jump to the model or source referenced by
ref() or source()
- Hover — show column descriptions from the manifest
- Autocomplete — suggestions for
ref(), source(), macro(), and config() arguments
Settings
All settings are under the dbtCoreTools namespace.
| Setting |
Type |
Default |
Description |
dbtCoreTools.dbtCommand |
string |
"dbt" |
Command used to invoke dbt. Use "uv run dbt" or similar if needed. |
dbtCoreTools.projectDirectories |
array |
[] |
Explicit project paths. When empty, projects are auto-discovered from the workspace. |
dbtCoreTools.profilesDir |
string |
"" |
Path to the directory containing profiles.yml. |
dbtCoreTools.target |
object |
{} |
Per-project target override. Keys are project names, values are target names. |
dbtCoreTools.parseOnSave |
boolean |
true |
Run dbt parse automatically when a .sql file is saved. |
dbtCoreTools.deferManifestPath |
object |
{} |
Per-project path to a manifest used for --defer. Keys are project names. |
dbtCoreTools.stageExternalSourcesVars |
object |
{} |
Vars passed to stage_external_sources. Supports ${projectName} interpolation. |
dbtCoreTools.showLimit |
integer |
5 |
Row limit passed to dbt show. |
Example workspace settings
{
"dbtCoreTools.dbtCommand": "uv run dbt",
"dbtCoreTools.profilesDir": "/home/user/.dbt",
"dbtCoreTools.target": {
"my_project": "dev"
},
"dbtCoreTools.parseOnSave": true,
"dbtCoreTools.deferManifestPath": {
"my_project": "/ci/target/manifest.json"
},
"dbtCoreTools.showLimit": 10
}
Multi-project workspaces
Projects are discovered automatically by locating dbt_project.yml files (excluding dbt_packages/ and dbt_modules/). To pin specific directories instead of relying on auto-discovery, set dbtCoreTools.projectDirectories.
Per-project settings (target, deferManifestPath, stageExternalSourcesVars) use the project name as the key, matching the name field in dbt_project.yml.
YAML validation
The extension registers JSON schema validation for dbt_project.yml, selectors.yml, and packages.yml via the Red Hat YAML extension (schemas sourced from dbt-labs/dbt-jsonschema).
License
MIT