{"slug": "charts-built-for-chat", "title": "Charts built for Chat", "summary": "Dbt Labs has open sourced dbt Charts, a new structured YAML language that declares a full interactive dashboard in a single auditable YAML file, moving charts out of BI tools and into code. The company said the tool supports over 1,100 config options across sixteen chart types, with a CLI that renders boards to static SVG, HTML, PNG, PDF, and the terminal, and can serve a folder of them as a site. The release follows dbt Labs founder Tristan Handy's argument in \"BI's Second Unbundling\" that charts should move to where agents work, since chat agents are fluent in code, SQL, and Git but clumsy in someone else's UI.", "body_md": "AI for data is here, and the long-promised self-serve analytics is finally happening. Anyone with a data connection can chat a report into existence in an afternoon, and the first results are impressive.\n\nThe frictions show up fast, though. By default an agent turns one simple report into a pile of files: HTML, CSS, and JavaScript, a couple of chart libraries, and a React or Streamlit app once it has to be live. Tracing a result back to its source means following it through several languages and files, which is slow for people to audit and costs the agent time and tokens on every change.\n\nBI tools went the other way and bolted copilots onto their UI-first apps. That keeps the AI on governed rails, but narrow ones: the agent can do only what the UI exposes.\n\nSo today you choose between the messy freedom of code and the narrow control\nof a BI tool.\nWe built a third option: [skip ahead](#charts-leave-the-bi-tool), or read on\nfor how BI got here.\n\n## Unbundling BI\n\nAs dbt Labs founder Tristan Handy wrote recently in\n[BI’s Second Unbundling](https://roundup.getdbt.com/p/bis-second-unbundling):\n\nWhen I started in data, BI tools were full-stack. Everything happened inside\none product: data ingestion, transformation, compute, caching, semantics,\nvisualization, identity. The BI tool *was* the data stack. MicroStrategy,\nCognos, etc: they’re not just visualization tools, they’re integrated data\nplatforms.\n\nThen the modern data stack happened. From ~2015 to 2022, the infrastructure layers of that BI bundle got pulled out and turned into purpose-built infrastructure. Compute went to the Big 5. Ingestion went to Fivetran. Transformation went to dbt. The BI tool was left with: visualization, interactive analytical interfaces, semantic definitions (sometimes!), identity and access management, and web hosting.\n\nWhat that unbundling left behind is the BI tool we know today, and charts are its biggest piece. They stayed in the UI for good reason: for most people, clicking is quicker than writing YAML. But more and more charts won’t be made by people. As the front end and user of everything becomes increasingly a chat agent, this preference flips. Agents are fluent in code, SQL, and Git, and clumsy in someone else’s UI. So charts need to move to where agents work: into code.\n\n## Charts leave the BI tool\n\nToday we’re taking the next step in unbundling BI: we’re open sourcing\n[dbt Charts](https://github.com/dbt-labs/dbt-charts), which takes charts out of\nthe BI tool and puts them in code, specifically a new structured YAML language\nthat can declare a full interactive dashboard in one auditable YAML file. Chat\nfreely with an agent, and what it makes has the freedom of code while staying\neasy to read.\n\nIn dbt Charts, SQL remains the language for declaring WHAT data you want to see, and we wrap that in YAML to declare HOW you want to see it.\n\nWe’ve spent a long time distilling the language to a few core, extensible elements: deep in what they can express, easy to organize and read. The YAML wraps more than SQL. Markdown carries the prose, and Jinja, as in dbt, carries variables and macros.\n\nHere’s a small example: one variable (a UI filter), one query and one chart.\n\nThat file is the whole board. The CLI renders any board file to static SVG, or to HTML, PNG, PDF, and even the terminal, on your laptop or in CI, and serves a folder of them as a site:\n\n```\ndct render charts/documents.yml --format svg   # or html, png, pdf, terminal\ndct serve\n```\n\nThose few elements go deep: over 1,100 config options today, across\n[sixteen chart types](https://docs.dbtcharts.com/charts/extensibility/) and the\n[composed charts](https://docs.dbtcharts.com/charts/extensibility/#composed-charts)\nbuilt from them. And like any good language, it can express complex layouts\nand visuals.\n\nYou rarely set those options by hand. Styles cascade: a chart inherits from its\nboard, the board from its theme, and a theme is one line to switch. A board can\nalso `extends:` another board, so a house style or a standard report is written\nonce and inherited everywhere. Boards stay short, and theming stays cheap.\n\n*A complete dbt Charts board, rendered from one easy-to-read YAML file.*\n\n## Deep integration with dbt\n\nYou don’t have to use dbt Charts with a dbt project, but when you do, a lot unlocks. The chart layer sits directly on the transform layer, and the deeper the integration, the easier it is to change both.\n\nWith dbt Charts, your `charts/` directory lives next to your `models/` in the\nsame Git repo, so a change to a model and its charts ships on one branch,\nthrough one CI run, and breaks before it reaches production.\n\n```\nyour_dbt_project/\n  .git/\n  dbt_project.yml\n  models/\n  charts/          # new folder in a dbt repo for your dashboards\n    revenue.yml\n```\n\nQueries reach models through `ref()`, resolved from your manifest, so a renamed\nmodel or a missing column fails the pull request that broke it,\nbefore `dbt run` rebuilds the warehouse:\n\n```\ndbt parse && dct validate charts/\n```\n\nSupport for the dbt Semantic Layer is planned, so a board can use a metric as\nthe project defines it instead of restating its SQL. Follow\n[dbt-labs/dbt-charts#1](https://github.com/dbt-labs/dbt-charts/issues/1).\n\n## Built for chat\n\nAgents can be quite blind, and they do best with a tight feedback loop. dbt Charts gives them one: strict validation of both the YAML and the SQL, and an extensive set of visualization checks that flag problems before anyone sees the board:\n\n``` bash\n$ dct render charts/revenue.yml\nWARN-BAR-BAND-WIDTH-TOO-NARROW\n182 bands x 2 series across 640px\nFix: roll up to a coarser grain.\n\nWARN-TABLE-COLUMNS-OVERFLOW\nTable needs 980px but only 640px is available.\nFix: drop columns or widen the slot.\n```\n\n## A beautiful, cohesive reporting system\n\nWe hope dbt Charts, like dbt before it, becomes the open standard language for\nits layer of the data stack. We designed it for a future where humans and AI\nbuild together, and we wanted it to look like that future, not like another\ndashboard grid. We recruited [RJ Andrews](https://infowetrust.com/about), a\ndata graphic designer, author, and historian, to design the charts. His grasp of the craft’s history is what makes the result feel new: it reaches past the dashboard era to\nwhat charts looked like when people drew them with care.\n\nMany tools cheat with cards and boxes that fake alignment at the cost of visual noise and lost space. We worked out the spacing, sizing, and layout of every chart, on its own and next to its neighbors.\n\nThe result is a cohesive system of charts that feels a level above current BI.\n\n## dbtCharts.com: a BI platform built on dbt Charts\n\nAlongside the open-source language, today we’re launching\n[dbtCharts.com](https://dbtcharts.com) in public beta: a hosted platform for the\nrest of BI. With charts pulled out, what remains is chiefly hosting, access\ncontrol, and a UI. By their nature these perhaps can’t be unbundled, or at least\nshouldn’t be, so the platform handles them on top of the open-source language.\n\nThe platform connects to your warehouse and adds conversational analytics, a visual editor for the finishing touches, version history, and sharing with permissions for users and groups, so the people reading a board don’t need a warehouse login.\n\nAnd of course, these charts were built for chat. The platform has first-class conversational analytics: like Claude or ChatGPT, but with permissioned read-only access to your warehouse and an expert analyst’s skills and tools built in. Explore by chatting with charts, and at any point click in to fine-tune and save the board.\n\nBecause it’s built on the open language, every change, from chat, the visual editor, or code, lands in the same YAML in your Git repo. Nothing is locked in: the same board runs on your laptop, in CI, and on the platform, and teams can self-serve, agent in hand, without creating a second, hidden data stack.\n\n## Try the beta\n\nThe dbt Charts language is open source under the Apache 2.0 license, and you can author, render, and serve boards locally without creating an account. Install it yourself, or hand your coding agent one line:\n\n`uv tool install dbt-charts`\n`Make charts of this with dbt Charts. Start with: uv tool install dbt-charts && dct skills intro`\n- Code: [github.com/dbt-labs/dbt-charts](https://github.com/dbt-labs/dbt-charts)\n- Docs: [docs.dbtCharts.com](https://docs.dbtcharts.com)\n- Hosted BI: [dbtCharts.com](https://dbtcharts.com)\n- Community: [#dbt-charts](https://getdbt.slack.com/archives/C0C1SFL0QN5) on the[dbt Community Slack](https://www.getdbt.com/community/join-the-community)\n\ndbt Charts is pre-1.0 and still changing. When the grammar changes, boards\nmigrate as they parse, so the boards you write today keep rendering. Try it, tell us what is missing<sup>[[1](https://github.com/dbt-labs/dbt-charts/issues/1)]</sup><sup>[[2](https://github.com/dbt-labs/dbt-charts/issues/2)]</sup>, join the discussion in [#dbt-charts](https://getdbt.slack.com/archives/C0C1SFL0QN5) on Slack, and help us build the chart layer\nthat open data infrastructure has been waiting for.", "url": "https://wpnews.pro/news/charts-built-for-chat", "canonical_source": "https://dbtcharts.com/blog/charts-built-for-chat/", "published_at": "2026-09-14 21:22:54+00:00", "updated_at": "2026-09-14 22:59:35.684241+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-products"], "entities": ["dbt Labs", "dbt Charts", "Tristan Handy", "YAML", "SQL", "Jinja", "Markdown"], "alternates": {"html": "https://wpnews.pro/news/charts-built-for-chat", "markdown": "https://wpnews.pro/news/charts-built-for-chat.md", "text": "https://wpnews.pro/news/charts-built-for-chat.txt", "jsonld": "https://wpnews.pro/news/charts-built-for-chat.jsonld"}}