Pbir CliSAFE
Power BI AI skills and Power BI agents for Claude Code and GitHub Copilot: a plugin marketplace of Power BI skills, subagents, and hooks for semantic models, DAX, TMDL, reports, and AI dashboards. Includes Microsoft Fabric skills and Fabric agents. Weekly updates.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
A last resort, not an alternative. Install pbir with uv tool install pbir-cli or pip install pbir-cli in every ordinary case, including when the command is missing.
Use this folder only when pbir is not installed and cannot be: no network access to PyPI, no Python, or a machine that forbids installs. A portable build does not update with uv tool upgrade, so choosing it when a normal install would have worked strands you on a stale CLI. If pbir --version already works, ignore this folder entirely.
The binaries are not committed. The Windows build alone is ~180 MB, past GitHub's 100 MB per-file limit, and nobody installing an unrelated plugin from this marketplace should pay for a quarter-gigabyte clone. Fetch them on demand instead:
./fetch.sh # newest release ./fetch.sh v0.9.32 # a specific one
That downloads the build matching your platform into this folder:
pbir-portable-macos-arm64.tar.gz macOS, Apple silicon ~66 MB pbir-portable-windows-x64.exe Windows x64 ~180 MB
Linux has no portable build. Install it with uv tool install pbir-cli or pip install pbir-cli, which is the recommended route on macOS and Windows too.
Running them
macOS: tar -xzf pbir-portable-macos-arm64.tar.gz, then run the extracted pbir. The archive is notarized, so Gatekeeper will not block it.
Windows: run pbir-portable-windows-x64.exe directly. It is Authenticode signed.
Deleting them
Anything `fetch.sh` downloads here can be deleted whenever space is tight. These are a convenience copy, not a dependency: no instruction in SKILL.md reads from this folder, and removing them leaves the skill fully working for anyone who installed pbir through pip or uv. Re-run fetch.sh if you want them back.
b8d9b0f3c97aOBSERVED · 2026-10-13Install
Commands as the repository documents them. They are shown, not run.
uv tool upgrade
pip install pbir-cli
uv tool upgrade
pip install pbir-cli
Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned | |
| copilot | mentioned | |
| cursor | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: pbir-cli description: This skill should be used whenever the user mentions "pbir", "pbir-cli", "Power BI reports", or "PBI reports", works with .pbir, .pbip, or .pbix files, or wants to refresh, screenshot, or visually verify a report that is open in Power BI Desktop. Covers creating, exploring, formatting, validating, and publishing Power BI reports through the pbir CLI and object model, plus driving Power BI Desktop (canvas reload, page screenshots) and querying connected or local semantic models. --- # Working with Power BI reports using `pbir` CLI for exploring, building, managing, formatting Power BI reports. All commands use `pbir`. **IMPORTANT:** ALWAYS use `pbir` CLI commands to inspect and modify reports. NEVER write, replace, copy, or patch report JSON files directly. If the CLI does not expose a required mutation, stop and report the missing capability; do not fall back to file editing. Reading JSON through `pbir cat`, `pbir get`, or read-only examples is allowed. **IMPORTANT:** FIRST Read and adhere to the mental model in [MENTAL-MODEL.md](important/MENTAL-MODEL.md). ## When `pbir` is missing Install it with `uv tool install pbir-cli` (or `pip install pbir-cli`). That is the route to use in every ordinary case, including when the command is missing entirely. `bin/fetch.sh` downloads a self-contained portable build instead. Reach for it **only** when `pbir` is not installed *and* installing it is not possible: no network access to PyPI, no Python, or a locked-down machine that forbids installs. A portable build does not update with `uv tool upgrade`, so preferring it when a normal install would have worked leaves the user on a stale CLI. If an install failed, fix the install rather than routing around it. ## Keeping the Fabric CLI current When publishing to Fabric (`pbir publish`) alongside the `fabric-cli` plugin, check the installed Fabric CLI (`fab`) if publishing reports a compatibility problem. Upgrade with `uv tool upgrade ms-fabric-cli` only when required or requested, and honor any user-pinned version. ## Learning from Mistakes Log learnings about the `pbir` CLI in the project's memory file: gotchas, unexpected behavior, user expectations, and design preferences. Use the agent-appropriate path: - **Claude Code:** `.claude/rules/pbir-cli.md` - **Cursor:** `.cursor/rules/pbir-cli.mdc` - **GitHub Copilot:** `.github/instructions/pbir-cli.instructions.md` Keep entries concise and generalizable. The memory file is not a change log. Prune redundancy, link out to references and examples rather than restating them. ## How to use `pbir` ### General workflow 1. Explore the report. The report must be in PBIR format: pbip, pbir-only, or pbix-with-PBIR-metadata. Prefer pbir or pbip. Whenever the user mentions Power BI Desktop or says the report is open in Desktop, run `pbir desktop list` FIRST: it maps each running instance to the file it has open (locating the report on disk) and confirms the bridge works before any edits begin. `pbir desktop` is Windows-only; on macOS and Linux do not use it (every invocation fails). Instead deploy with `pbir publish` to a sandbox workspace in Fabric and verify the rendered report in the browser via the Chrome MCP tools. 2. Identify the model. Reports generally should be thin reports connected to a remote model in Power BI or Fabric. 3. Clarify intent. For vague or open-ended instructions, consult **`references/vague-prompts.md`** and use `AskUserQuestion` to understand expectations and report context before mutating anything. 4. Plan changes. For new reports, pages, or visuals, draft a wireframe or mock-up for the user to approve before building. 5. Make changes. Reach for relevant files in `references/`, `examples/`, and related skills like `pbi-report-design`. 6. Validate. Mutating commands validate their own writes. Run explicit `pbir validate` after a coherent batch of changes and before completion; use narrower checks while iterating and `--all` for the final confidence pass. For visual confirmation, prefer the local loop when the report is open in Power BI Desktop: `pbir desktop refresh` then `pbir desktop screenshot` and inspect the PNG (see "Desktop Integration" below). Otherwise ask permission to publish to a sandbox workspace with `pbir publish` and inspect rendering via Chrome MCP, devtools CLI, or Playwright. 7. Iterate. Expect multiple rounds. Push back on one-shot expectations from vague prompts. 8. Record learnings. Add concise, generalizable entries to the memory file noted above. When the user has manually changed a report and asks to pull it down or learn from the differences, follow **`references/manual-roundtrip-review.md`**. ### Path syntax `pbir` uses a filesystem paradigm for identifying reports, pages, visuals etc. and glob syntax for bulk operations. Format: `ReportName.Report/PageName.Page/VisualName.Visual` - Type suffixes (`.Report`, `.Page`, `.Visual`) are required - Quote paths with spaces: `"My Report.Report/Dashboard.Page"` - Use glob patterns for bulk operations: `"Report.Report/**/*.Visual"` (requires `--force/-f` for `set` and `rm`) - `*.Visual`; all visuals on current page - `Page.Page/*.Visual`; all visuals on a specific page - `**/*.Visual`; all visuals across all pages - `**/card*.Visual`; visuals whose name starts with "card" - `**/*.Report/**/*.Visual`; all visuals across all reports - Properties via `get` or `set` and dot notation: `"Report.Report/Page.Page/Visual.Visual.title.fontSize"` - Filters/bookmarks: `"Report.Report/filter:Name"`, `"Report.Report/bookmark:Name"` - If multiple reports match, disambiguate with parent folder prefix - Absolute filesystem paths work too: `"C:\Reports\Sales.Report"`, `"C:\Reports\Flash.pbix"` (globs do not combine with absolute paths) - Workspace destinations use `.Workspace` suffix: `"My Workspace.Workspace/Report.Report"` ## Critical Rules Follow all rules below. 0. **ASK user for clarifications and push back on one-shot p
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (3)
.platform
"url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACSEAAAUfCAYAAABA4bWQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAE1ASURBVHhe7NqhAcAgEMDA0v3nfQuGCYi9M1kia2b2BwAAAAAAAAAA8O
1. Explore the report. The report must be in PBIR format: pbip, pbir-only, or pbix-with-PBIR-metadata. Prefer pbir or pbip. Whenever the user mentions Power BI Desktop or says the report is open in De
Gates applied: no_behavioural_pass.
b8d9b0f3c97afull audit observations/trust-audit/skill/data-goblin__pbir-cli.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-13 | b8d9b0f3c97a | SAFE | B | 89 | first audit |
Questions
What does the Pbir Cli skill do?
Power BI AI skills and Power BI agents for Claude Code and GitHub Copilot: a plugin marketplace of Power BI skills, subagents, and hooks for semantic models, DAX, TMDL, reports, and AI dashboards. Includes Microsoft Fabric skills and Fabric agents. Weekly updates.
Is Pbir Cli safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Pbir Cli access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Pbir Cli work with?
Its documentation mentions claude-code, copilot and cursor. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (b8d9b0f3c97a), read on 2026-10-13. The repository is watched, and a new audit runs when it changes — this is the first audit.