AI/TLDR

dbt Charts

A declarative YAML syntax around SQL for making dashboards

Data App BuildersOpen source
Latest
Initial open-source release
Updated
14 Sep 2026
Language
Python
License
Apache-2.0
Coverage
1 story
$uv tool install dbt-charts

What's new

Initial open-source release14 Sep 2026

dbt Labs open-sourced the dbt Charts language, engine and dct CLI under Apache-2.0, with sixteen chart types, five themes and rendering to HTML, PDF, PNG, SVG and JSON. The hosted dbtCharts.com service, which adds hosting, access control, a visual editor, version history, conversational analytics and permissioned sharing, entered public beta at the same time.

Latest news

Overview

dbt Charts is an open-source language from dbt Labs that describes a full interactive dashboard in a single YAML file. SQL still says what data you want; the YAML layer says how you want to see it. The engine compiles that definition into an interactive board, and the bundled dct command-line tool can also render it to HTML, PDF, PNG, SVG or JSON.

The design goal is reviewability. Because a board is one text file, it is version-controlled, diffable, and can be read in a pull request, which means a change to a dbt model and a change to the chart that reads it can travel on the same branch through the same CI run. dbt itself is optional — dbt Charts works with plain SQL — but boards can call ref() and source() when you do run dbt.

As a data-app builder, dbt Charts sits between a warehouse and a published board. Sixteen chart types ship built in, along with five themes, interactive filters and variables. dbt Labs also runs a hosted service at dbtCharts.com, in public beta, that adds hosting, access control, a visual editor, version history, conversational analytics and permissioned sharing on top of the same open language.

What it does

  • A declarative YAML syntax that defines queries, charts and layout in one file
  • Sixteen built-in chart types, plus composed charts built from them, and five themes
  • The dct CLI validates a board without warehouse access and serves a live preview with working filters
  • Renders boards to HTML, PDF, PNG, SVG or JSON for sharing and scheduled reports
  • Optional dbt integration: boards can reference existing models through ref() and source()
  • Warehouse support for DuckDB, SQLite, Postgres, Snowflake, BigQuery, Redshift, Databricks, Spark and Trino
  • dct impact lists the boards a column change would affect before you make it

Getting started

dbt Charts needs Python 3.10 or newer. Install the dct CLI, point it at a board, and preview it locally.

Install the CLI

Install dbt Charts as a tool. DuckDB and SQLite work out of the box; add a warehouse extra if you need one.

bashbash
uv tool install dbt-charts

# or with pip
pip install dbt-charts

# with a warehouse adapter
uv tool install "dbt-charts[snowflake]"

Check the install

Confirm the dct command is on your path.

bashbash
dct --version

Validate a board

Validation checks your YAML for errors and reports error codes, file references and suggested fixes. It does not need warehouse access, so it is cheap to run in CI.

bashbash
dct validate

Preview and export

Serve the board locally with working filters, then render it to a file when you want to share it.

bashbash
dct serve

dct render my_board --format html
dct render my_board --format pdf

Point an agent at it

dbt Charts ships agent skills that teach a coding agent the YAML language, which is the workflow the launch post was written around.

bashbash
dct skills intro

Commands and code are distilled from the project's own documentation — always check the official repo for the latest.

When to use it

  • Keep dashboards in the same repo as your dbt models so a model change and its charts ship on one branch
  • Review a dashboard change as a readable diff in a pull request instead of an audit log of UI clicks
  • Ask a coding agent for a dashboard and get one auditable YAML file back rather than a pile of HTML, CSS and JavaScript
  • Render scheduled PDF or PNG reports from the same board definition that serves the interactive version
  • Run dct impact before changing a column to see which boards would break

How dbt Charts compares

dbt Charts alongside other open-source data app builders tools AI/TLDR tracks, ranked by GitHub stars.

ToolStarsWhat it does
Streamlit★ 45.8kA Python framework that turns scripts into interactive data and ML web apps with simple widget calls and no frontend code.
Gradio★ 43.5kA Python library for quickly building shareable web demos and UIs for machine learning models, APIs, and arbitrary functions.
Reflex★ 28.9kA framework for building full-stack web apps entirely in Python, compiling component code to a React frontend and Python backend.
Dash★ 24.4kA Python framework from Plotly for building analytical web dashboards and data apps with interactive charts and no JavaScript required.
marimo★ 22.8kA reactive Python notebook stored as plain Python that can be run as a script or deployed as an interactive data app.
Data Formulator★ 17.2kA Microsoft Research tool that combines a UI with AI to help users create rich data visualizations through natural language and direct manipulation.
NiceGUI★ 16.2kA backend-first Python UI framework built on FastAPI and Vue for creating web interfaces, dashboards, and internal tools.
dbt ChartsA declarative YAML syntax around SQL for making dashboards