How dbt-labs/dbt-charts works
dbt Charts turns SQL queries and declarative YAML board definitions into interactive dashboards and reports. The principal workflow is authoring a board, validating or compiling it, executing its queries through a configured warehouse adapter, then rendering or serving the result. The CLI also exposes query, search, impact, and documentation workflows; agent clients use an MCP interface over the agent API. Paths and README capabilities identify these subsystems, but sampled source is incomplete, so uncertain internal call links are omitted.
Main entry points: main.py dct CLI · compiler.py Board compiler · render_pipeline.py Registered views · __init__.py Agent API
Components 20
User interfaces
- dct CLI
src/dbt_charts/cli/main.py - HTTP server
src/dbt_charts/core/serve/server.py
Board processing
- Board compiler
src/dbt_charts/core/compile/compiler.py - Board parser
src/dbt_charts/core/compile/parse/parser.py - Normalization
src/dbt_charts/core/compile/normalize/charts.py - Chart resolution
src/dbt_charts/core/compile/resolve/chart/__init__.py - Query validator
src/dbt_charts/core/inspect/query_validator.py
Query and rendering
- Query executor
src/dbt_charts/core/execute/executor.py - Warehouse adapters
src/dbt_charts/core/execute/adapters/adapter_registry.py - Chart renderer
src/dbt_charts/core/render/chart/emitter.py - Registered views
src/dbt_charts/core/registered_views/render_pipeline.py
Agent workflows
- Agent API
src/dbt_charts/agent_api/__init__.py - MCP server
src/dbt_charts/ai/mcp/server.py - Board search
src/dbt_charts/agent_api/search.py - Column impact
src/dbt_charts/agent_api/impact.py
External systems
- SQL warehouse
- Cloud platform
Other components
- Engineer
- Board YAML
- Dashboard output
Connections 22
- Engineer → dct CLI: invokes
- Engineer → Board YAML: authors
- Board YAML → Board compiler: compiles
- Board compiler → Board parser: parses
- Board compiler → Normalization: normalizes
- Board compiler → Chart resolution: resolves
- dct CLI → Board compiler: validates or renders
- dct CLI → Query executor: runs queries
- dct CLI → Chart renderer: renders formats
- Query executor → Warehouse adapters: dispatches queries
- Warehouse adapters → SQL warehouse: executes SQL
- dct CLI → Query validator: checks SQL
- HTTP server → Registered views: requests rendering
- Registered views → Board compiler: compiles view
- Registered views → Query executor: executes and renders
- Chart renderer → Dashboard output: emits dashboard
- Engineer → HTTP server: previews boards
- dct CLI → Agent API: exposes agent verbs
- MCP server → Agent API: dispatches tools
- Agent API → Board search: searches boards
- Agent API → Column impact: traces columns
- Cloud platform → Registered views: uses render API