DAC CLI
A dashboards-as-code CLI: an agent describes panels in YAML and TSX, DAC validates them, builds SQL from metrics and serves them
- 803 ★ on the repository
- Last commit
- AGPL-3.0
Extended access
Why this level
- The CLI runs SQL queries on your database through Bruin connections and sends anonymous telemetry by default.
Install
- Works in
Manual install
curl -LsSf https://getbruin.com/install/dac | shThe script installs the Bruin CLI if it is missing. Then `dac init my-dashboards` creates a project and installs the `create-dashboard` skill for Claude and Codex.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The CLI runs SQL queries on your database through Bruin connections and sends anonymous telemetry by default.
This is third-party code. Review the repository files before installing.
What it does
DAC defines dashboards as YAML or TSX files and serves them from a local server. TSX gives loops, conditionals and custom components, so a layout can be built from database contents at load time. One command, `dac serve --dir . --open`, opens the result in a browser, `dac validate --dir .` checks the files, and the `--with-database` flag runs widget queries against a live database. A semantic layer keeps metrics and dimensions in the `semantic/` folder: you define them once, reference them from any widget and DAC generates the SQL. Database connections come from the Bruin CLI, which supports Postgres, MySQL, Snowflake, BigQuery, Redshift, Databricks and others, and queries run through `bruin query`. The tool is designed so an agent builds dashboards reproducibly and with checks. `dac init my-dashboards` creates a starter project and installs the `create-dashboard` skill for Claude and Codex into `.claude/skills/` and `.codex/skills/`, and `dac skills install --dir .` adds it to an existing project. The skill explains the YAML and TSX formats, widget types, filters and query templating.
Who it is for. Analysts and data engineers who hand dashboard building to an agent over their warehouse and want it as reviewable code in the repository.
Good fit when
- An agent has to build a sales metrics panel from the warehouse and the result lands in an ordinary pull request
- Metrics such as revenue have to be defined once and used in dozens of widgets without copying SQL
- The set of tabs depends on the data, for example one tab per region, and TSX loops are unavoidable
- Before launching a dashboard the files have to be checked, and optionally the queries on a real database
- A team already works through Bruin and wants dashboards on top of its connections
Not a fit when
- You need a no-code dashboard edited with a mouse: visual BI systems fit that
- The warehouse is not connected through Bruin: DAC takes connections from there and runs queries with `bruin query`
- You need a shared cloud environment for many users with access rights: DAC runs as a local server
- Anonymous usage statistics are unacceptable: they are on by default and must be turned off with an environment variable
Example request
Create a revenue dashboard from the sales table: a total metric, a monthly chart and a region filter, then run it locally.Limitations
DAC runs queries through the Bruin CLI, and the install script installs Bruin first if it is missing from `PATH`. Without Bruin database connections the dashboards will not come alive.
The skill documentation calls `dac check` the most expensive command: it runs every widget's query on a live database and time grows with their number. For iteration the skill recommends cheaper checks.
The tool sends anonymous telemetry: command name, duration, OS and version. Queries, results and connection names are not collected. To turn sending off set `TELEMETRY_OPTOUT=1` or `DO_NOT_TRACK=1`. The license is AGPL-3.0. The install script runs from the internet through `curl | sh`, so read it first.
How to disable. Remove the `dac` binary and the `.claude/skills/create-dashboard` and `.codex/skills/create-dashboard` folders in the project. The `~/.dac/telemetry.json` file with the install ID can also be deleted.
FAQ
How do I install DAC?
With `curl -LsSf https://getbruin.com/install/dac | sh`. The script installs the Bruin CLI itself if it is missing. For a fresh build from the main branch add `-s -- --channel edge`.
How do I connect the skill to Claude Code or Codex?
`dac init` puts the `create-dashboard` skill into `.claude/skills/` and `.codex/skills/` itself, and in an existing project `dac skills install --dir .` does it.
Which databases are supported?
Everything Bruin supports: Postgres, MySQL, Snowflake, BigQuery, Redshift, Databricks and others. DAC uses your Bruin connections.
How does YAML differ from TSX?
YAML suits a static layout with no programming. TSX adds loops, variables, custom components and a layout built from data at load time.
How do I turn off telemetry?
Set `TELEMETRY_OPTOUT=1` or `DO_NOT_TRACK=1`. Builds without a write key, such as one from `make build`, send nothing.
Discussion
No questions or reviews yet.
Related
CLI toolsdbt Charts
dbt-charts
Declarative YAML on top of SQL for dashboards: you describe how to show data, agents write YAML, people audit. The dbt-charts package and the dct CLI, beta
Lightdash skills: metrics, charts and dashboards as YAML, branch previews, dbt SQL rules and a safety check before a server upgrade
The Dex plugin: an agent explores a database, builds dbt models and a semantic layer and tracks schema drift under cost control
A skill that decides whether a dashboard is needed and builds it around a confirmed decision, never inventing rankings or scores.
DataLens Dev MCP
datalens-dev-mcp
Local MCP server and Codex plugin for Yandex DataLens dashboard development: read, author, publish, back up and clean up objects
A template for data scientists: AGENTS.md, CLAUDE.md and skills for Python, SQL, Polars and model diagnostics.
README in short
A short README with two dashboard samples (TSX and YAML), installation, a quickstart and four example projects. Telemetry gets its own section covering what it collects and how to turn it off. The documentation is built with VitePress in the docs folder.