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
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 DesktopOpen Power BI Desktop with a .pbix file, run the three commands above, and start asking Claude.
Requires: Windows with Python 3.10+ and Power BI Desktop running.
Alternative: give Claude the repo URL
Install and set up pbi-cli from https://github.com/MinaSaad1/pbi-cli.git
Claude will clone, install, connect, and set up skills automatically.
Using pip instead of pipx?
pip install pbi-cli-toolOn Windows, pip install often places the pbi command in a directory that isn't on your PATH.
Fix: Add the Scripts directory to PATH
python -c "import site; print(site.getusersitepackages().replace('site-packages','Scripts'))"Add the printed path to your system PATH, then restart your terminal. We recommend pipx to avoid this entirely.
Ask Claude to work with your Power BI semantic model. Requires pbi connect.
Ask Claude to build and manage your Power BI reports. No connection needed -- works directly on PBIR files.
Two layers, one CLI:
- Semantic Model layer -- Direct in-process .NET interop from Python to Power BI Desktop via TOM/ADOMD. No MCP server, no external binaries, sub-second execution.
- Report layer -- Reads and writes PBIR (Enhanced Report Format) JSON files directly. No connection needed. Works with
.pbipprojects.
Configuration details
All config lives in ~/.pbi-cli/:
~/.pbi-cli/
config.json # Default connection preference
connections.json # Named connections
repl_history # REPL command history
Bundled DLLs ship inside the Python package (pbi_cli/dlls/).
After running pbi-cli skills install, Claude Code discovers 12 Power BI skills. Each skill teaches Claude a different area. You don't need to memorize commands.
| Skill | What you say | What Claude does |
|---|---|---|
| DAX | "What are the top 10 products by revenue?" | Writes and executes DAX queries, validates syntax |
| Modeling | "Create a star schema with Sales and Calendar" | Creates tables, relationships, measures, hierarchies |
| Deployment | "Save a snapshot before I make changes" | Exports/imports TMDL, manages transactions, diffs snapshots |
| Security | "Set up RLS for regional managers" | Creates roles, filters, perspectives |
| Docs | "Document everything in this model" | Generates data dictionaries, measure inventories |
| Partitions | "Show me the M query for the Sales table" | Manages partitions, expressions, calendar config |
| Diagnostics | "Why is this query so slow?" | Traces queries, checks model health, benchmarks |
| Skill | What you say | What Claude does |
|---|---|---|
| Report | "Create a new report project for Sales" | Scaffolds PBIR reports, validates structure, previews layout |
| Visuals | "Add a bar chart showing revenue by region" | Adds, binds, updates, bulk-manages 32 visual types |
| Pages | "Add an Executive Overview page" | Manages pages, bookmarks, visibility, drillthrough |
| Themes | "Apply our corporate brand colours" | Applies themes, conditional formatting, colour scales |
| Filters | "Show only the top 10 products" | Adds page/visual filters (TopN, date, categorical) |
27 command groups covering both the semantic model and the report layer.
| Category | Commands |
|---|---|
| Queries | dax execute, dax validate, dax clear-cache |
| Model | table, column, measure, relationship, hierarchy, calc-group |
| Deploy | database export-tmdl, database import-tmdl, database export-tmsl, database diff-tmdl, transaction |
| Security | security-role, perspective |
| Connect | connect, disconnect, connections list, connections last |
| Data | partition, expression, calendar, advanced culture |
| Diagnostics | trace start/stop/fetch/export, model stats |
| Report | report create, report info, report validate, report preview, report reload |
| Pages | report add-page, report delete-page, report get-page, report set-background, report set-visibility |
| Visuals | visual add/get/list/update/delete, visual bind, visual bulk-bind/bulk-update/bulk-delete, visual where |
| Filters | filters list, filters add-categorical/add-topn/add-relative-date, filters remove/clear |
| Formatting | format get/clear, format background-gradient/background-conditional/background-measure |
| Bookmarks | bookmarks list/get/add/delete/set-visibility |
| Tools | setup, repl, skills install/list/uninstall |
Use --json for machine-readable output (for scripts and AI agents):
pbi --json measure list
pbi --json dax execute "EVALUATE Sales"
pbi --json visual list --page overviewRun pbi <command> --help for full options.
For interactive work, the REPL keeps a persistent connection:
$ 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
Tab completion, command history, and a dynamic prompt showing your active connection.
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 ships with Microsoft Analysis Services client library
assemblies (Microsoft.AnalysisServices.*.dll) under src/pbi_cli/dlls/.
These binaries are not covered by pbi-cli's MIT license. They are
redistributed unmodified under the Microsoft Software License Terms for
Microsoft Analysis Management Objects (AMO) and Microsoft Analysis
Services - ADOMD.NET. Full terms are in
THIRD_PARTY_LICENSES.md and the companion
NOTICE file. By installing pbi-cli-tool you agree to those
terms in addition to the MIT License that applies to the rest of the
package.
Contributions are welcome! Please open an issue first to discuss what you'd like to change.
- Fork the repository
- Create a feature branch
- Make your changes with tests
- Open a pull request
MIT License — bundled Microsoft DLLs are licensed separately, see THIRD_PARTY_LICENSES.md