Power BI & Microsoft Fabric automation CLI — TMDL/XMLA/REST backends, Python-native BPA governance, DAX testing & lint, PBIR authoring, MCP server, AI measures
Project description
pbi-enterprise-cli
Enterprise-grade Power BI & Microsoft Fabric automation CLI — TMDL/XMLA/REST backends, Python-native BPA governance, DAX testing & lint, PBIR report intelligence, an MCP server for AI agents, and AI-powered measures.
uv tool install pbi-enterprise-cli
pbi doctor # verify setup
pbi --backend file --path . govern check # governance on your repo's TMDL — any OS
pbi dax lint --fail-on error # static DAX analysis
pbi ask "top 10 customers by revenue" # English → DAX → results
Key differentiators
- Real artifacts on any OS — the
filebackend reads TMDL/PBIP folders straight from your repo (pure Python, no .NET): governance, BPA, lint, docs, and semantic diff onubuntu-latest - Live DAX on any OS — the
restbackend runs DAX against published datasets via theexecuteQueriesAPI;xmlagives full read/write on Windows - Python-native BPA runner — the only Python implementation of Best Practice Analyzer; same ruleset as Tabular Editor
- Full Fabric lifecycle — item CRUD (Item Definition API), workspaces, git sync, deployment pipelines, OneLake, capacity ops, jobs, Direct Lake diagnostics
- Quality platform — DAX lint/format, report lint + unused-field analysis, dbt-style data tests, schema contracts, RLS matrices, drift detection — all CI-gateable with SARIF output
- AI-agent native —
pbi mcp serveexposes everything to Cursor/Copilot/Claude Desktop; 10 bundled Claude Code skills install withpbi connect - One-step CI — published GitHub Action + pre-commit hooks; scaffold a full project with
pbi init
Five backends, one API
| Backend | Use for | OS |
|---|---|---|
desktop |
Local Power BI Desktop (.pbip) | Windows |
xmla |
Premium / Fabric read-write | Windows |
file |
TMDL/PBIP repo artifacts — governance, lint, docs, diff | Any |
rest |
Live DAX via executeQueries | Any |
mock |
Unit tests, demos | Any |
Command surface
model · measure · dax (query/test/lint/format/coverage) · report (authoring + lint/field-usage/diff/a11y) · visual · layout · theme · filter · govern (rules/BPA/plugins/SARIF/tenant scan) · tenant (usage/access/labels) · security · test (data/schema/rls/seed) · partition · deploy · snapshot · env (incl. drift) · diff · fabric (items/workspaces/git/pipelines/onelake/capacity/jobs/directlake) · pquery (M folding/lint) · ops (refresh chains/health) · migrate (direct-lake/pbix/dbt) · docs (dictionary/ERD/site) · mcp · ask · introspect · init · watch · server · skills
Install options
# Recommended
uv tool install pbi-enterprise-cli
uv tool install "pbi-enterprise-cli[all]" # everything
# Alternative
pipx install pbi-enterprise-cli
# Fallback
pip install pbi-enterprise-cli
| Extra | Adds |
|---|---|
[ai] |
Claude AI: pbi ask, measure generate, govern explain |
[xmla] |
MSAL auth for XMLA/Fabric + device flow |
[sources] |
SQL / Excel / REST source profiling |
[server] |
FastAPI REST server |
[viz] |
WCAG theme validation |
Requirements
- Python 3.10–3.13
- Windows for the
desktopandxmlabackends (.NET AMO, DLLs bundled) - Linux/macOS fully supported via the
file,rest, andmockbackends
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pbi_enterprise_cli-1.1.0.tar.gz.
File metadata
- Download URL: pbi_enterprise_cli-1.1.0.tar.gz
- Upload date:
- Size: 153.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d79e772f0ef4859ae75f10168e13028e5cf185e536675f7595f26dcbc4f89b79
|
|
| MD5 |
d0634bed9af7b27ad9cbd732ce971e65
|
|
| BLAKE2b-256 |
23d2fa30aece5bf812aef05574e793f16951780d36dfeb39018e97128c064b56
|
Provenance
The following attestation bundles were made for pbi_enterprise_cli-1.1.0.tar.gz:
Publisher:
release.yml on mudassir09/pbi-enterprise-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pbi_enterprise_cli-1.1.0.tar.gz -
Subject digest:
d79e772f0ef4859ae75f10168e13028e5cf185e536675f7595f26dcbc4f89b79 - Sigstore transparency entry: 1792472834
- Sigstore integration time:
-
Permalink:
mudassir09/pbi-enterprise-cli@bf0255d403651bfb6a5968bd50f0bb2922f88129 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/mudassir09
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bf0255d403651bfb6a5968bd50f0bb2922f88129 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pbi_enterprise_cli-1.1.0-py3-none-any.whl.
File metadata
- Download URL: pbi_enterprise_cli-1.1.0-py3-none-any.whl
- Upload date:
- Size: 181.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3e94ec968530a5e2743c6e0f58c2aaff6e279f4876ef130cf12e3ccad206512
|
|
| MD5 |
597feea47f6116e5a285ccdccd9d3ca0
|
|
| BLAKE2b-256 |
4eb21fc4e4a3f10e05d4b821a51280f8487749479565dcbb85c2d514c255e25a
|
Provenance
The following attestation bundles were made for pbi_enterprise_cli-1.1.0-py3-none-any.whl:
Publisher:
release.yml on mudassir09/pbi-enterprise-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pbi_enterprise_cli-1.1.0-py3-none-any.whl -
Subject digest:
f3e94ec968530a5e2743c6e0f58c2aaff6e279f4876ef130cf12e3ccad206512 - Sigstore transparency entry: 1792472850
- Sigstore integration time:
-
Permalink:
mudassir09/pbi-enterprise-cli@bf0255d403651bfb6a5968bd50f0bb2922f88129 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/mudassir09
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bf0255d403651bfb6a5968bd50f0bb2922f88129 -
Trigger Event:
push
-
Statement type: