2026-03-26 17:29:35 +00:00
< img src = "https://raw.githubusercontent.com/MinaSaad1/pbi-cli/master/assets/header.svg" alt = "pbi-cli" width = "800" / >
**Give Claude Code the Power BI skills it needs.**
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
Install once, then just ask Claude to work with your semantic models *and* reports.
2026-03-26 17:29:35 +00:00
< a href = "https://pypi.org/project/pbi-cli-tool/" > < img src = "https://img.shields.io/pypi/pyversions/pbi-cli-tool?style=flat-square&color=3776ab&label=Python" alt = "Python" > < / a >
< a href = "https://github.com/MinaSaad1/pbi-cli/actions" > < img src = "https://img.shields.io/github/actions/workflow/status/MinaSaad1/pbi-cli/ci.yml?branch=master&style=flat-square&label=CI" alt = "CI" > < / a >
< a href = "https://github.com/MinaSaad1/pbi-cli/blob/master/LICENSE" > < img src = "https://img.shields.io/github/license/MinaSaad1/pbi-cli?style=flat-square&color=06d6a0" alt = "License" > < / a >
[Get Started ](#get-started ) • [Skills ](#skills ) • [All Commands ](#all-commands ) • [REPL Mode ](#repl-mode ) • [Contributing ](#contributing )
---
## What is this?
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
pbi-cli gives **Claude Code** (and other AI agents) the ability to manage Power BI semantic models **and reports** . It ships with 12 skills that Claude discovers automatically. You ask in plain English, Claude uses the right `pbi` commands.
2026-03-26 17:29:35 +00:00
```
You Claude Code pbi-cli Power BI
2026-03-27 05:19:21 +00:00
"Add a YTD measure ---> Uses Power BI ---> CLI commands ---> Desktop
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
to the Sales table" skills (12)
2026-03-26 17:29:35 +00:00
```
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
**Two layers, one CLI:**
- **Semantic Model** -- Direct .NET interop to Power BI Desktop (measures, tables, DAX, security)
- **Report Layer** -- Reads/writes PBIR JSON files directly (visuals, pages, themes, filters)
2026-03-26 17:29:35 +00:00
---
## Get Started
**Fastest way:** Just give Claude the repo URL and let it handle everything:
```
Install and set up pbi-cli from https://github.com/MinaSaad1/pbi-cli.git
```
**Or install manually (two commands):**
```bash
pipx install pbi-cli-tool # 1. Install (handles PATH automatically)
2026-04-05 18:37:05 +00:00
pbi-cli skills install # 2. Register Claude Code skills (one-time setup)
pbi connect # 3. Connect to Power BI Desktop
2026-03-26 17:29:35 +00:00
```
2026-04-05 18:37:05 +00:00
Open Power BI Desktop with a `.pbix` file, run the three commands above, and start asking Claude.
2026-03-26 17:29:35 +00:00
2026-03-27 05:19:21 +00:00
> **Requires:** Windows with Python 3.10+ and Power BI Desktop running.
2026-03-26 17:29:35 +00:00
< details >
< summary > < b > Using pip instead of pipx?< / b > < / summary >
```bash
pip install pbi-cli-tool
```
On Windows, `pip install` often places the `pbi` command in a directory that isn't on your PATH.
**Fix: Add the Scripts directory to PATH**
Find the directory:
```bash
python -c "import site; print(site.getusersitepackages().replace('site-packages','Scripts'))"
```
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
Add the printed path to your system PATH, then restart your terminal. We recommend `pipx` to avoid this entirely.
2026-03-26 17:29:35 +00:00
< / details >
---
## Skills
2026-04-05 18:37:05 +00:00
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.
2026-03-26 17:29:35 +00:00
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
### Semantic Model (require `pbi connect`)
2026-03-26 17:29:35 +00:00
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
| Skill | What you say | What Claude does |
|-------|-------------|-----------------|
| **DAX** | *"Top 10 products by revenue?"* | Writes and executes DAX queries |
| **Modeling** | *"Create a star schema"* | Creates tables, relationships, measures |
| **Deployment** | *"Save a snapshot"* | Exports/imports TMDL, diffs snapshots |
| **Security** | *"Set up RLS"* | Creates roles, filters, perspectives |
| **Docs** | *"Document this model"* | Generates data dictionaries |
| **Partitions** | *"Show the M query"* | Manages partitions, expressions |
| **Diagnostics** | *"Why is this slow?"* | Traces queries, benchmarks |
2026-03-26 17:29:35 +00:00
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
### Report Layer (no connection needed)
2026-03-27 05:19:21 +00:00
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
| Skill | What you say | What Claude does |
|-------|-------------|-----------------|
| **Report** | *"Create a new report"* | Scaffolds PBIR reports, validates, previews |
| **Visuals** | *"Add a bar chart"* | Adds, binds, bulk-manages 32 visual types |
| **Pages** | *"Add a new page"* | Manages pages, bookmarks, drillthrough |
| **Themes** | *"Apply brand colours"* | Themes, conditional formatting |
| **Filters** | *"Show top 10 only"* | TopN, date, categorical filters |
2026-03-27 05:19:21 +00:00
2026-03-26 17:29:35 +00:00
---
## All Commands
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
27 command groups covering both the semantic model and the report layer.
2026-03-26 17:29:35 +00:00
| Category | Commands |
|----------|----------|
| **Queries** | `dax execute` , `dax validate` , `dax clear-cache` |
| **Model** | `table` , `column` , `measure` , `relationship` , `hierarchy` , `calc-group` |
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
| **Deploy** | `database export-tmdl/import-tmdl/export-tmsl/diff-tmdl` , `transaction` |
2026-03-26 17:29:35 +00:00
| **Security** | `security-role` , `perspective` |
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
| **Connect** | `connect` , `disconnect` , `connections list/last` |
2026-03-27 05:19:21 +00:00
| **Data** | `partition` , `expression` , `calendar` , `advanced culture` |
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
| **Diagnostics** | `trace start/stop/fetch/export` , `model stats` |
| **Report** | `report create/info/validate/preview/reload` , `report add-page/delete-page/get-page` |
| **Visuals** | `visual add/get/list/update/delete/bind` , `visual bulk-bind/bulk-update/bulk-delete` |
| **Filters** | `filters list/add-categorical/add-topn/add-relative-date/remove/clear` |
| **Formatting** | `format get/clear/background-gradient/background-conditional/background-measure` |
| **Bookmarks** | `bookmarks list/get/add/delete/set-visibility` |
| **Tools** | `setup` , `repl` , `skills install/list/uninstall` |
2026-03-26 17:29:35 +00:00
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
Use `--json` for machine-readable output:
2026-03-26 17:29:35 +00:00
```bash
pbi --json measure list
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
pbi --json visual list --page overview
2026-03-26 17:29:35 +00:00
```
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
---
## 32 Supported Visual Types
**Charts:** bar, line, column, area, ribbon, waterfall, stacked bar, clustered bar, clustered column, scatter, funnel, combo, donut/pie, treemap
**Cards/KPIs:** card, cardVisual (modern), cardNew, multi-row card, KPI, gauge
**Tables:** table, matrix • **Slicers:** slicer, text, list, advanced • **Maps:** Azure Map
**Decorative:** action button, image, shape, textbox, page navigator
2026-03-26 17:29:35 +00:00
---
## REPL Mode
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
For interactive work, the REPL keeps a persistent connection:
2026-03-26 17:29:35 +00:00
```
$ 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
```
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
Tab completion, command history, and a dynamic prompt.
2026-03-26 17:29:35 +00:00
---
## Development
```bash
git clone https://github.com/MinaSaad1/pbi-cli.git
cd pbi-cli
pip install -e ".[dev]"
```
```bash
ruff check src/ tests/ # Lint
mypy src/ # Type check
feat: v3.10.0 -- audit fixes, 12 skills, README rewrite
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption,
visual_bind type annotation, tmdl_diff hierarchy pluralization
- Add missing VisualTypeError and ReportNotFoundError to errors.py
- Register 5 command groups in CLI (report, visual, filters, format, bookmarks)
- Split monolithic report skill into 5 focused skills (12 total):
power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes,
power-bi-filters
- Update CLAUDE.md snippet for 12 skills organised by layer
- Add diff-tmdl section to deployment skill
- Write CHANGELOG entries for v3.0.0 through v3.10.0
- Rewrite README.md and README.pypi.md for both model and report layers
- Add skill triggering test suite (19/19 passing)
- 488 tests passing, ruff clean
2026-04-01 22:07:52 +00:00
pytest -m "not e2e" # Run tests (488 tests)
2026-03-26 17:29:35 +00:00
```
---
2026-04-05 18:37:05 +00:00
## Bundled third-party software
`pbi-cli-tool` ships with Microsoft Analysis Services client library
assemblies (`Microsoft.AnalysisServices.*.dll`) inside the PyPI wheel
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 ](https://github.com/MinaSaad1/pbi-cli/blob/master/THIRD_PARTY_LICENSES.md )
and the companion [NOTICE ](https://github.com/MinaSaad1/pbi-cli/blob/master/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.
---
2026-03-26 17:29:35 +00:00
## Contributing
Contributions are welcome! Please open an issue first to discuss what you'd like to change.
1. Fork the repository
2. Create a feature branch
3. Make your changes with tests
4. Open a pull request
---
< p align = "center" >
< a href = "https://github.com/MinaSaad1/pbi-cli" > < img src = "https://img.shields.io/badge/GitHub-pbi--cli-1a1a2e?style=flat-square&logo=github" alt = "GitHub" > < / a >
< a href = "https://pypi.org/project/pbi-cli-tool/" > < img src = "https://img.shields.io/badge/PyPI-pbi--cli--tool-f2c811?style=flat-square&logo=pypi&logoColor=white" alt = "PyPI" > < / a >
< / p >
< p align = "center" >
2026-04-05 18:37:05 +00:00
< sub > MIT License — bundled Microsoft DLLs are licensed separately, see < a href = "https://github.com/MinaSaad1/pbi-cli/blob/master/THIRD_PARTY_LICENSES.md" > THIRD_PARTY_LICENSES.md< / a > < / sub >
2026-03-26 17:29:35 +00:00
< / p >