Give Claude Code the Power BI skills it needs.
Install once, then just ask Claude to work with your semantic models and reports.
Why pbi-cli • Get Started • Modeling • Reporting • Skills • All Commands • Contributing
______________________________________________________________________
为什么选择pbi-cli?
Cumulative downloads, refreshed daily from pypistats.org via GitHub Actions.
______________________________________________________________________
开始使用
pipx install pbi-cli-tool # 1. Install (handles PATH automatically)
pbi-cli skills install # 2. Register Claude Code skills (one-time setup)
pbi connect # 3. Connect to Power BI Desktop使用打开Power BI桌面 .pbix 文件,运行上面的三个命令,并开始询问Claude。
要求: 运行Python 3.10+和Power BI Desktop的Windows。
Alternative: give Claude the repo URL
Install and set up pbi-cli from https://github.com/MinaSaad1/pbi-cli.gitClaude将自动克隆、安装、连接和设置技能。
Using pip instead of pipx?
pip install pbi-cli-tool在Windows上, pip install 经常放置 pbi 命令位于不在PATH中的目录中。
修复:将Scripts目录添加到PATH
python -c "import site; print(site.getusersitepackages().replace('site-packages','Scripts'))"将打印的路径添加到系统path中,然后重新启动终端。我们建议 pipx 为了完全避免这种情况。
______________________________________________________________________
语义模型层
请Claude使用您的Power BI语义模型。需要 pbi connect.
批量创建度量值
调试损坏的DAX
快照并恢复您的模型
审核您的模型是否存在问题
测试行级安全性
______________________________________________________________________
报表层
请Claude构建和管理您的Power BI报告。无需连接——直接适用于PBIR文件。
分6步构建报告
视觉效果、页面、主题、过滤器
32种视觉类型
______________________________________________________________________
建筑
两层,一个CLI:
- 语义模型层 --直接加工中。NET通过TOM/ADOMD从Python到Power BI桌面的互操作。无MCP服务器,无外部二进制文件,亚秒级执行。
- 报表层 --直接读取和写入PBIR(增强报告格式)JSON文件。不需要连接。适用于
.pbip项目。
桌面自动同步
Configuration details
所有配置都位于 ~/.pbi-cli/:
~/.pbi-cli/
config.json # Default connection preference
connections.json # Named connections
repl_history # REPL command history捆绑的DLL包含在Python包中(pbi_cli/dlls/).
______________________________________________________________________
技能
运行后 pbi-cli skills install克劳德·科德发现 13 Power BI技能每种技能都教给克劳德一个不同的领域。你不需要记住命令。
语义模型技能(必需 pbi connect)
| 技能 | 你说什么 | 克劳德做什么 |
|---|---|---|
| DAX 指数 | *“收入排名前十的产品是什么?”* | 写入并执行DAX查询,验证语法 |
| 建模 | *“使用销售和日历创建星型架构”* | 创建表、关系、度量值、层次结构 |
| 部署 | *“在我进行更改之前保存快照”* | 导出/导入TMDL、管理事务、差异快照 |
| 安全 | *“为区域经理设置RLS”* | 创建角色、过滤器、透视图 |
| 文档 | *“记录此模型中的所有内容”* | 生成数据字典,测量库存 |
| 分区 | *“显示Sales表的M查询”* | 管理分区、表达式、日历配置 |
| 诊断 | *“为什么这个查询这么慢?”* | 跟踪查询、检查模型健康状况、基准测试 |
报表层技能(无需连接)
| 技能 | 你说什么 | 克劳德做什么 |
|---|---|---|
| 报告 | *“为销售创建新的报告项目”* | 脚手架PBIR报告、验证结构、预览布局 |
| 视觉效果 | *“添加按地区显示收入的条形图”* | 添加、绑定、更新、批量管理32种可视类型 |
| 页面 | *“添加高管概述页面”* | 管理页面、书签、可见性、钻取 |
| 主题 | *“应用我们的企业品牌颜色”* | 应用主题、条件格式、颜色比例 |
| 过滤器 | *“仅显示前10名产品”* | 添加页面/视觉过滤器(TopN、日期、分类) |
| 自定义视觉效果 | *“构建Power BI没有的径向仪表”* | 构建一个TypeScript可视化项目,迭代 tsc --noEmit,包裹 .pbiviz,导入报告 |
______________________________________________________________________
自定义视觉创作
这 自定义视觉效果 该技能将vibe编码转化为Power BI Visuals SDK循环。 Claude用以下代码构建了一个兄弟TypeScript项目 npx pbiviz new,迭代反对 Power BI可视化API tsc --noEmit 在每次更改之间,包a .pbiviz,并将其嵌入到您的报告中:
# After installing the skill, just describe what you want in Claude Code:
# "Build me a radial gauge that highlights values above target"
#
# Under the hood, the skill drives:
npx --yes powerbi-visuals-tools@^5.6.0 new mygaugevisual
# (Claude edits src/visual.ts + capabilities.json, runs tsc --noEmit until clean)
npx --yes powerbi-visuals-tools@^5.6.0 package
pbi visual import-custom dist/mygaugevisual.1.0.5.pbiviz --replace技能自动安装节点和 pbiviz 在第一次运行时(征得您的同意),pins 将SDK升级到已知的良好版本,使TypeScript项目成为您的兄弟项目 .pbip (无PBIR污染),并在精心策划的npm allowlist下运营 常见deps(D3、Lodash、date-fns)——清单上的任何内容都需要明确批准。
三个新的pbi-cli命令支持循环:
| 命令 | 它的作用 |
|---|---|
| `pbi visual import-custom | |
| ` | 嵌入本地构建的 .pbiviz 进入报告的 RegisteredResources/ 并在中注册 report.json. --replace 用GUID覆盖。 |
pbi visual list-custom | 列出嵌入式和公共(AppSource)自定义视觉效果,以 kind. |
pbi visual remove-custom | 注销并实际删除 .pbiviz 资源。 |
______________________________________________________________________
所有命令
27个命令组,涵盖语义模型和报表层。
| 类别 | 命令 |
|---|---|
| 查询 | dax execute, dax validate, dax clear-cache |
| 模型 | table, column, measure, relationship, hierarchy, calc-group |
| 部署 | database export-tmdl, database import-tmdl, database export-tmsl, database diff-tmdl, transaction |
| 安全 | security-role, perspective |
| 连接 | connect, disconnect, connections list, connections last |
| 数据 | partition, expression, calendar, advanced culture |
| 诊断 | trace start/stop/fetch/export, model stats |
| 报告 | report create, report info, report validate, report preview, report reload |
| 页面 | report add-page, report delete-page, report get-page, report set-background, report set-visibility |
| 视觉效果 | visual add/get/list/update/delete, visual bind, visual bulk-bind/bulk-update/bulk-delete, visual where |
| 过滤器 | filters list, filters add-categorical/add-topn/add-relative-date, filters remove/clear |
| 格式化 | format get/clear, format background-gradient/background-conditional/background-measure |
| 书签 | bookmarks list/get/add/delete/set-visibility |
| 工具 | setup, repl, skills install/list/uninstall |
使用 --json 用于机器可读输出(用于脚本和AI代理):
pbi --json measure list
pbi --json dax execute "EVALUATE Sales"
pbi --json visual list --page overview跑 pbi --help 完整的选项。
______________________________________________________________________
REPL模式
对于交互式工作,REPL保持持久连接:
$ pbi repl
pbi> connect --data-source localhost:54321
Connected: localhost-54321
pbi(localhost-54321)> measure list
pbi(localhost-54321)> dax execute "EVALUATE TOPN(5, Sales)"
pbi(localhost-54321)> exit选项卡完成、命令历史记录和显示活动连接的动态提示。
______________________________________________________________________
发展
git clone https://github.com/MinaSaad1/pbi-cli.git
cd pbi-cli
pip install -e ".[dev]"ruff check src/ tests/ # Lint
mypy src/ # Type check
pytest -m "not e2e" # Run tests (488 tests)______________________________________________________________________
捆绑的第三方软件
pbi-cli-tool 随附Microsoft Analysis Services客户端库 组件(Microsoft.AnalysisServices.*.dll)under src/pbi_cli/dlls/. 这些二进制文件是 不 由pbi-cli的MIT许可证覆盖。他们是 根据Microsoft软件许可条款未经修改地重新分发 Microsoft分析管理对象(AMO)和Microsoft分析 服务-ADOMD。网。完整条款见 第三阶段_许可.md 和同伴 通知 文件。通过安装 pbi-cli-tool 你同意这些 除适用于其余部分的MIT许可证之外的条款 包裹。
______________________________________________________________________
贡献
欢迎投稿!请先打开一个问题,讨论您想更改的内容。
- 分叉存储库
- 创建要素分支
- 通过测试进行更改
- 打开拉取请求
______________________________________________________________________
MIT License — bundled Microsoft DLLs are licensed separately, see THIRD_PARTY_LICENSES.md
