DAC:智能体仪表板as-Code开源工具
开源项目DAC为AI智能体提供代码驱动的可视化仪表板。
开源项目DAC为AI智能体提供代码驱动的可视化仪表板。
DAC 是一款 Dashboard-as-Code 工具,可通过 YAML 和 TSX 定义、验证并提供 dashboard 服务。
通过 TSX 支持动态图表、标签页、循环和条件逻辑。
借助 Bruin,支持所有主流数据库:Postgres、MySQL、Snowflake、BigQuery、Redshift、Databricks 等。
内置 semantic layer:只需在 semantic/ 中定义一次 metrics 和 dimensions,即可从任意 widget 中引用。SQL 由 DAC 自动生成。
它专为 AI Agent 打造,让 Agent 能够以可靠、可审查的方式构建 dashboard。
export default (
<Dashboard name="Simple Dashboard" connection="my_db">
<Row>
<Metric
name="Total Revenue"
col={4}
sql="SELECT SUM(amount) AS value FROM sales"
value={{ field: "value", type: "number", format: "$,.2f" }}
/>
</Row>
</Dashboard>
)
name: Sales Overview
connection: warehouse
rows:
- widgets:
- name: Revenue
type: metric
sql: SELECT SUM(amount) AS value FROM sales
value:
field: value
type: number
format: "$,.2f"
col: 4
安装最新的 DAC 稳定版本:
curl -LsSf https://getbruin.com/install/dac | sh
从 main 分支安装最新的 edge 构建版本:
curl -LsSf https://getbruin.com/install/dac | sh -s -- --channel edge
DAC 使用你现有的 Bruin connections,目前会通过调用 bruin query 来执行查询。如果在你的 PATH 中找不到 bruin,安装脚本会先安装 Bruin CLI。
创建一个新的 starter project:
dac init my-dashboards
cd my-dashboards
dac validate --dir .
dac validate --dir . --with-database
dac serve --dir . --open
starter project 包含一个由 SQL 驱动的 YAML dashboard、一个 semantic YAML dashboard,以及位于 semantic/ 目录下的 semantic model。
dac init 还会为 Claude 和 Codex 安装 DAC 内置的 dashboard authoring skill:
ls .claude/skills/create-dashboard/SKILL.md
ls .codex/skills/create-dashboard
对于已有项目,请运行 dac skills install --dir .。
如果你克隆了该仓库并已安装 DAC,也可以运行其中一个内置示例项目:
dac serve --dir examples/basic-yaml
仓库的 examples/ 目录下包含四个可独立运行的示例项目:
.
├── cmd/ CLI entrypoints
├── pkg/ Dashboard loading, semantic engine, server, query backends
├── frontend/ React frontend embedded into the DAC binary
├── docs/ VitePress documentation source
├── examples/ Runnable example projects for YAML, TSX, and semantic dashboards
├── resources/ README and documentation assets
└── testdata/ Internal fixtures used by tests
make deps
make test
make build
make dev
主要的开发命令都定义在 Makefile 中。请使用 make targets,不要临时执行 go build 或 npm run build 命令,以确保 frontend embedding 和 build flags 始终保持一致。
DAC 会发送匿名使用事件,帮助我们了解哪些命令被使用,以及它们在哪里执行失败。每个事件都包含命令名称、运行时长、OS/architecture、DAC 版本,以及存储在 ~/.dac/telemetry.json 中的匿名 install ID。
SQL 查询、查询结果或行数
Dashboard 或 widget 的内容、名称或文件路径
Connection 名称、主机、凭据、project ID 或 dataset 名称
任何环境变量或 shell 历史记录
如需禁用 telemetry,请设置以下任一环境变量:
export TELEMETRY_OPTOUT=1
# or the industry-standard:
export DO_NOT_TRACK=1
未配置 telemetry write key 的构建版本(make build 默认如此)不会产生任何提示,也不会发送任何数据。
示例项目:examples/
贡献指南:CONTRIBUTING.md
安全策略:SECURITY.md
仅采用 AGPL-3.0 许可证。详见 LICENSE。