Ask a question · get a board
Charts for Chat
Everything you like about asking an AI to analyse something, plus the things it can't give you. A live warehouse connection. Permissions. A real place to put the answer. And underneath it all, an open language your team owns rather than a transcript you lose.
Two minutes to a board
One install. One sentence to your agent.
dct is a Python CLI. Install it, then write the YAML yourself
or say the sentence to Claude Code, Codex, or Cursor: the tool teaches the
agent the rest, in your repo or a fresh folder.
uv tool install dbt-chartsMake charts of this with dbt charts. Start with: uv tool install dbt-charts && dct skills introAgents that arrive on their own read dbtcharts.com/llms.txt.
The bet
BI built for AI
We started with a simple open YAML syntax for dashboards, and a tool that renders it. Dashboards as code, like markdown, and including markdown, but for dashboards. Then we built a full BI tool on top of that core.
Every setting in the UI is generated from the language, so a feature gets added in exactly one place. That's why we ship fast, and it's why your dashboards stay open and an agent has the full run of the product rather than the handful of things someone remembered to expose.
One surface
AI can reach everything
No feature is locked behind a control an agent can't press. If it can be authored, it can be prompted: filters, drill-downs, themes, layout.
One place to ship
Features land in days
A new chart type is a core change, not a core change plus a settings panel plus an API plus a migration. The UI inherits it for free.
One artifact
You keep the output
The answer is a text file in your repo, not a session inside someone's product. Diff it, review it, roll it back, take it with you.
Dashboards as code
Works in your dbt repo
Same repo. Same branch. Same pull request. Your boards sit beside the models they read, and they move with them.
dbt took transformation out of the BI tool and put it in version control, and the whole field changed shape. Dashboards are the last artifact that never made the move. This is us moving them.
- Discovered from your
dbt_project.yml, no second config - Queries run through the
profiles.ymlyou already have - A VS Code extension with completion and inline validation
- Change a model on a branch and its boards change with it
theme: clarity
title: Support Backlog Aging
variables:
priority:
input: multiselect
charts:
- type: heatmap
x: age_band
y: priorityThe board and its source, always in sync
Edit the YAML and the board repaints. Change something in the board and the YAML rewrites. There is no third representation hiding in a database.

Collaboration & permissions
The other 200 people get to see it
This is the part an agent in a chat window can't do. A board you made is a board your whole company can open, with the right people able to edit it, the right people able to read it, and nobody able to see the warehouse behind it who shouldn't.
- Org roles and per-board access, down to the individual board
- Warehouse credentials granted separately from board access
- Invite a colleague; they land on the board, not a setup wizard
- Everyone reads the same render, against the same fresh data
Validated
A broken chart fails the build
Rename a column and the board that read it stops compiling: in CI, on the branch, before anyone opens a blank tile. This is the thing a chat transcript can never do for you: notice it has gone stale.
- Schema-checked against the warehouse, no query run at full cost
- Review a dashboard change the way you review a model
- Roll back a bad board with
git revert
$ dct validate charts/ --warehouse
ERR-WAREHOUSE-QUERY-INVALID Query 'kpis' failed
warehouse validation (DESCRIBE): Binder Error:
Referenced column "won_amount_net" not found in FROM clause!
Candidate bindings: "won_amount", "pipeline_amount"
LINE 2: (SELECT SUM(won_amount_net) FROM daily_metrics)
^
At: charts/executive/growth/bookings-arr.yml
Docs: dct docs queriesOpen
No lock-in, by construction
The board is a text file in a documented, open language. Render it here, render it in CI, render it on your laptop. Same file, same renderer, no export step and nothing to migrate off.
- SVG, HTML, PNG, PDF, JSON, YAML, or ASCII in your terminal
dct servere-renders locally as you save- Boards only ever read your warehouse

Two worlds, and the gap between them
An agent can write you a chart but leaves nothing behind. A BI tool leaves something behind but can't be talked to. We wanted both.
| Capability | AI agent | BI tool | dbt charts |
|---|---|---|---|
| Conversational authoring | ✓ | ✕ | ✓ |
| Transparent / auditable | ✕ | ✓ | ✓ |
| Sharing & collaboration | ✕ | ✓ | ✓ |
| A real UI to read it in | ✕ | ✓ | ✓ |
| One cohesive system | ✕ | ✓ | ✓ |
| Validated in CI | ~ | ✕ | ✓ |
| Open, no lock-in | ~ | ✕ | ✓ |
Ask it something.
Point dbt charts at a dbt project and ask your first question. What comes back is a board, and a file you own. One install, or one sentence to Claude.
uv tool install dbt-chartsMake charts of this with dbt charts. Start with: uv tool install dbt-charts && dct skills intro
Explorer
dundersign_dbt
dbt_project.yml
profiles.yml
models/
staging/
marts/
charts/ new folder in dbt
customer-support/
aging.yml
executive/
revenue-ops/