Show HN: DAC – open-source dashboard as code tool for agents and humans
TL;DR Highlight
DAC defines dashboards in YAML/TSX with a semantic layer so agent-built dashboards stay reviewable.
Who Should Read
A data or backend developer who wants agents to build BI dashboards that can still be reviewed through pull requests
Core Mechanics
- Dashboards defined as code
- DAC defines, validates, and serves dashboards from YAML or TSX files.
- TSX adds dynamic charts, tabs, loops, and conditionals.
- Semantic layer generates the SQL
- Define metrics and dimensions once in semantic/.
- Widgets reference them and DAC generates the SQL.
- Designed for agents to build
- The goal is for agents to build standardized, reviewable dashboards.
- dac init also installs a bundled create-dashboard authoring skill for Claude and Codex.
- Databases come through Bruin
- Postgres, MySQL, Snowflake, BigQuery, Redshift, Databricks and more are supported via Bruin.
- Query execution currently shells out to bruin query.
- Simple CLI flow
- Start with dac init, dac validate, then dac serve.
- Add --with-database to validate to check against the database too.
- Check license and telemetry
- The license is AGPL-3.0-only.
- It sends anonymous usage events, which TELEMETRY_OPTOUT=1 or DO_NOT_TRACK=1 disables.
Community Reactions
- Comparison to existing tools requested
- One commenter wanted the README to compare DAC with products like Evidence.
- Another said it looks like a simplification of existing BI-as-code tools such as Lightdash.
- Pushback on YAML at scale
- One commenter hesitated to maintain 1000 lines of YAML.
- Another argued YAML is a poor choice for anything that grows in complexity.
- Experience running huge YAML apps
- One commenter said their team has built apps in YAML for years, with the largest over 500k lines.
- They said the right tooling and conventions make it easy to read and review.
- Questions on validation and operations
- One commenter asked how validation catches downstream widgets when an agent changes a metric.
- Others wanted docs on auth and hosting.
How to Apply
- Run a sample dashboard with DAC
- Install it, create a starter with dac init my-dashboards, and run dac serve --dir . --open.
- Connect a real DB and run dac validate --with-database.
- Move metric definitions into semantic/
- Define repeated SQL such as revenue or signups once.
- Switch widgets to reference those definitions.
- Review agent dashboards as PRs
- Commit agent-generated YAML to Git and open a PR.
- Run dac validate in CI to catch broken definitions.
- Check operational needs before adopting
- Decide on auth and hosting first.
- Disable telemetry with an env var if needed and check the AGPL terms.
Try It
# Paste into Claude Code inside a DAC project folder
Add a new dashboard to this project created with dac init.
- First read the existing metrics and dimensions in semantic/ and reuse them instead of writing new SQL where possible.
- If a needed metric is missing, define it in semantic/.
- Dashboard purpose: {{dashboard purpose}}
- Connection to use: {{connection name}}
- After writing, run `dac validate --dir .` and fix any errors.
- Summarize the changed files and reasons like a PR description.Terminology
Related Papers
GPT-5.6 Sol can beat Factorio on peaceful mode
GPT-5.6 Sol in Codex at low thinking finished a peaceful Factorio run with a rocket launch
AI isn't replacing SREs, it's deskilling them
Letting AI handle 95% of incidents may dull the skills SREs need for the critical 5%.
Backdoor in Claude Code for VS Code extension on the Cursor Marketplace
A tampered Claude Code extension on Cursor Marketplace planted an SSH backdoor
Building an AI-native engineering org
Automating each shipping step raised merges per engineer about 5x with reverts under 0.5%
We ran AI agent swarms in Minecraft and Mindustry
We put 50 agents in Minecraft and they invented ration ledgers and bureaucracy.
The Agent SDK
Cursor released Agent SDK, letting you define agents in code and deploy them with one command.
Here be monsters: What do you still need to know when agents do the work?
Owning agent-written code depends on fundamentals, breadth, and diving deep just in time.
AI promised less work. I've never worked more
Running agents in parallel brought my GitHub activity back to full-time engineer levels, and I'm exhausted.