Skip to content

Releases: maxanatsko/pbir.tools

PBIR Tools v0.9.29

Choose a tag to compare

@maxanatsko maxanatsko released this 29 Jul 09:06

Install: uv tool install pbir-cli or pip install pbir-cli, which is the recommended
route on every platform including Linux. Native and portable downloads are attached below for
macOS on Apple silicon and Windows x64.

What’s new

  • Conditional formatting almost everywhere — titles, subtitles, borders, tooltips, axis
    bounds, reference line positions, data label text, and error bar styling can now be driven by
    a measure, not just data point colors. pbir schema describe <visual>.<container> lists what
    a given container accepts.
  • Images and SVG from measures — a measure returning an image URL or an SVG data URI can be
    placed on a card or in a table column, so DAX-generated visuals reach the canvas.
  • Error bars, fully — whiskers, caps, markers and their labels can be added, styled, and
    driven conditionally per plotted series.
  • Formatting one column by another — a grid column or a chart series can be formatted using
    a measure that is not the one being displayed.
  • More dependable formatting writes — conditional formats are stored where Power BI actually
    reads them, and copying formatting between visuals preserves what each property needs to
    render.

Run pbir --help to get started, and see the
pbir-cli documentation for the full
command reference. Feedback is welcome in the
pbir.tools issue tracker.

PBIR Tools v0.9.28

Choose a tag to compare

@maxanatsko maxanatsko released this 24 Jul 18:43

Install: uv tool install pbir-cli or pip install pbir-cli. Native and portable
downloads are attached below for macOS on Apple silicon, Windows x64, and Linux on x64 or
arm64.

What’s new

  • More dependable report changes — field and visual updates stay within the intended part of
    a report and work across more of the structures generated by Power BI Desktop.
  • Smoother theme workflows — theme colors and custom themes move more reliably between
    inspection, edits, templates, and Desktop saves.
  • Clearer visual authoring — bindings, interactions, and measure-driven titles are easier to
    inspect and change without leaving stale configuration behind.
  • Broader reliability coverage — filters, field references, report scopes, and packaging have
    had a focused regression pass against real PBIR fixtures.

Run pbir --help to get started. Feedback is welcome in the
pbir.tools issue tracker.

PBIR Tools v0.9.27

Choose a tag to compare

@maxanatsko maxanatsko released this 17 Jul 12:07

Install: uv tool install pbir-cli or pip install pbir-cli. Native and portable
downloads are attached below for macOS on Apple silicon, Windows x64, and Linux on x64 or
arm64.

What’s new

  • Calmer terminal output — success, warnings, errors, and report names use a small,
    consistent set of colors. Power BI yellow stays focused on the logo and loading animation.
  • Portable downloads — run pbir without an installer on macOS, Windows, or Linux. The regular
    signed PKG and MSI installers are still here too.
  • More dependable report changes — field replacement, hierarchy binding, page and visual
    updates, themes, bookmarks, filters, and legacy-to-PBIR conversion have all had a broad
    reliability pass.
  • Better report and model handoffs — report paths and model references are handled more
    consistently when you move between local PBIR work and connected semantic models.

Power BI skills

The companion
power-bi-agentic-development skills v26.28
now give agents a clearer te + pbir workflow for changes that span a semantic model and its
reports. They also explicitly keep report edits inside pbir instead of patching JSON directly.

Versions 26.26 through 26.38 are a transition period for the skills. Pin 26.25 or earlier if you
need the old structure to stay put.

Run pbir --help to get started. Feedback is welcome in the
pbir.tools issue tracker.

PBIR Tools v0.9.25

Choose a tag to compare

@maxanatsko maxanatsko released this 18 Jun 20:52

Important: This tool works best for targeted, iterative changes to existing reports -- formatting, property adjustments, field binding, theme changes, validation. It's not designed to replace your thinking or design, and it's also constrained by the brittle limitations of Power BI reports, themselves.

Install: uv tool install pbir-cli or pip install pbir-cli (recommended over native installers)

Skills (v26.25): Get skills from the
power-bi-agentic-development
marketplace. For Claude Code: claude plugin add marketplace data-goblin/power-bi-agentic-development


New

  • Deeper Power BI Desktop integration -- hot-reload TMDL from disk into an open Power BI Desktop instance (auto-validated on load), and screenshot one page or every page.
    • pbir desktop reload "Report.Report" --model
    • pbir desktop screenshot "Report.Report" --all
  • Discover visual capabilities -- browse a visual's formatting objects, properties, and allowed values before you edit.
    • pbir schema describe barChart
  • Skip validation -- switch off individual checks, or all of them, per run.
    • pbir --skip schema-version validate "Report.Report"
  • Stronger validation -- deep coverage of report invalidation cases.
  • Fonts & colors -- new command groups for bulk find/replace of fonts and colors across a report.
    • pbir fonts replace "Report.Report" --from "Calibri" --to "Segoe UI" -f
    • pbir color replace "Report.Report" --from "#FF0000" --to "#00FF00" -f

New (Experimental)

Experimental commands are new and still evolving -- expect rough edges, and please report issues.

  • Convert legacy to PBIR format -- convert reports to PBIR without opening or publishing them.
    • pbir convert "Legacy.Report" --format pbir
  • Migrate & clear DAX -- migrate thin-report measures into a connected model, then clear them from the report; also work with or clear visual calculations.
    • pbir dax measures migrate "Report.Report" --all && pbir dax measures clear "Report.Report" -f
    • pbir dax viscalcs clear "Report.Report" -f
  • Usage from the terminal -- Power BI report views at the workspace, report, and page level. Link a local report to its published copy, then query.
    • pbir report link "Report.Report" "Sales.Workspace/Exec.Report" && pbir usage "Report.Report"

Bug Fixes

  • Clearer error when pbir desktop reload --model targets a model whose culture defines linguistic metadata, instead of a raw engine failure.

Changes

  • Various fixes and improvements -- thanks for all the feedback!

Thanks

Thanks to Microsoft for the new Power BI APIs in preview in Desktop, and the efforts investing in Power BI agentic report development on their side.

PBIR Tools v0.9.24

Choose a tag to compare

@maxanatsko maxanatsko released this 12 Jun 10:00

Important: This tool works best for targeted, iterative changes to existing reports -- formatting, property adjustments, field binding, theme changes, validation. It's not designed to replace your thinking or design, and it's also constrained by the brittle limitations of Power BI reports, themselves.

Install: uv tool install pbir-cli or pip install pbir-cli (recommended over native installers)

Skills (v26.24): Get skills from the
power-bi-agentic-development
marketplace. For Claude Code: claude plugin add marketplace data-goblin/power-bi-agentic-development


New

  • fields replace-table -- rename a table across every field binding in a report in one command (the table-level counterpart to fields replace), keeping each field's own name. Covers structured field references, query projections, sort definitions, conditional-formatting and selector metadata, and filters.

Bug Fixes

  • Fixed fields replace-table leaving query references and selector metadata inconsistent when the table name was supplied in a different letter-case than the stored reference -- mixed-case references now rename consistently across every surface.

Changes

  • Faster bulk edits -- bulk operations across many visuals are substantially quicker on large reports: set, fields replace, theme colors --replace, visuals resize / align / move, the position / size / format property commands, pages conform, and rm --fields. Single-visual edits keep full validation and are unchanged.

PBIR Tools v0.9.23

Choose a tag to compare

@maxanatsko maxanatsko released this 12 Jun 08:15

Important: This tool works best for targeted, iterative changes to existing reports -- formatting, property adjustments, field binding, theme changes, validation. It's not designed to replace your thinking or design, and it's also constrained by the brittle limitations of Power BI reports, themselves.

Install: uv tool install pbir-cli or pip install pbir-cli (recommended over native installers)

Skills (v26.24): Get skills from the
power-bi-agentic-development
marketplace. For Claude Code: claude plugin add marketplace data-goblin/power-bi-agentic-development


New

  • Update notice -- pbir now lets you know when a newer release is available (checked at most once a day; suppressed in quiet and JSON output modes)

Bug Fixes

  • Fixed pbir --help crashing on Windows consoles that use legacy code pages (pip/uv installs)
  • Fixed pbir bpa run failing with "Report.init() missing 2 required positional arguments" on valid reports (fixes #32)
  • Pressing Ctrl+C while pbir is starting up now exits quietly instead of printing a long traceback
  • Fixed pbir get crashing on color-valued properties (for example a visual background color)
  • Clearer error message when pbir add page is given a report path instead of a page path

Changes

  • Faster startup -- every command begins executing noticeably sooner

PBIR Tools v0.9.20

Choose a tag to compare

@maxanatsko maxanatsko released this 22 May 07:43

New

  • Code signing - binaries now come code signed both on Windows and macOS
  • Page conformance - pbir pages conform enforces visual formatting properties (title, background, border) against theme defaults across a page or report, with --dry-run preview, JSON output, and idempotent apply mode
  • Field where-used - pbir fields where-used finds every visual and filter that references a given field, with exact and substring matching

Bug Fixes

  • Card visuals now apply font color conditional formatting correctly using the Power BI default dataViewWildcard selector, fixing pbir visuals cf on cardVisual value properties
  • pbir fields and pbir tree now traverse report pages by directory path rather than display name, so pages with em dashes, parentheses, or other path-like characters in their names resolve correctly
  • Visual group parent links broken by pbir connect downloads are now repaired automatically during download, and group membership changes are tracked through the object model change history
  • Visual group operations (list, ungroup, group workflow) are now more reliable: page and path validation is enforced before mutations, cleanup is persisted after ungroup, and edge cases in multi-step group workflows are handled
  • pbir visuals bind now fails closed when the semantic model cannot be loaded - explicit --no-validate is required to proceed, and the model load error is surfaced in the output
  • Validation JSON output now includes model_load_error detail alongside the existing model_loaded flag
  • Validation now reports orphan parent groups and stale visual interaction entries as diagnostics
  • Animated startup splash is replaced with a static splash on Windows and non-interactive consoles, fixing rendering artifacts on Windows terminals
  • Microsoft schema and bundled runtime artifacts were refreshed to May 2026

PBIR Tools v0.9.19

Choose a tag to compare

@maxanatsko maxanatsko released this 30 Apr 14:00

Important: This tool works best for targeted, iterative changes to existing reports -- formatting, property adjustments, field binding, theme changes, validation. It's not designed to replace your thinking or design, and it's also constrained by the brittle limitations of Power BI reports, themselves.

Install: uv tool install pbir-cli or pip install pbir-cli (recommended over native installers)

Skills: Get skills from the power-bi-agentic-development marketplace.
For Claude Code: claude plugin add marketplace data-goblin/power-bi-agentic-development


New

  • Best Practice Analyzer -- pbir bpa run analyzes PBIR reports with built-in and custom JSON rules, CI-friendly failure thresholds, JSON output, optional fixes, and rule suppressions
  • BPA rule management -- pbir bpa rules list/ignore/unignore/ignored for listing rules, suppressing noisy findings, and auditing ignored rules across reports
  • Default report context -- path-like commands can now use the active report from pbir connect, including relative paths, globs, and . as the active report sentinel
  • Active theme colors -- pbir theme colors --used-only now shows colors actively used by report and page formatting, visual expressions, DAX measures, and conditional formatting
  • Visual edit dry runs -- pbir visuals position, pbir visuals resize, and pbir visuals bind now support --dry-run so layout and binding changes can be previewed before saving

Bug Fixes

  • Newer visualContainer schema declarations now degrade to warning-only fallback instead of blocking validation when bundled schemas are behind Microsoft
  • Table names containing dots, such as 0. Measures, now resolve correctly in field references
  • Donut chart role metadata now uses the correct canonical measure role while preserving compatibility with legacy role casing
  • Filter validation now checks report, page, and visual filter field references against the semantic model
  • Validation output now uses more readable target locations while preserving raw locations in JSON output
  • UTF-8 BOM-prefixed PBIR JSON files now load consistently across report, page, visual, theme, and packaged resource readers
  • Report.new() now fails cleanly and avoids leaving partially created report folders after scaffold write failures
  • .platform display-name metadata now uses the current Fabric platformProperties shape and repairs invalid report metadata before saving
  • PBIX mutation paths now fail closed: PBIX files remain available for read-only inspection, but editable operations are directed to .Report folders
  • Removing visuals now cleans up orphaned visual interactions
  • Deleting visualGroup containers is now guarded so grouped visuals are not removed accidentally
  • Visual size guidance now runs through BPA, with validate --qa preserving the existing VISUAL_UNDERSIZED compatibility mapping
  • Built-in visual role metadata now matches canonical PBIR queryState role names, including current card, slicer, AI/Q&A, RDL, group, and custom visual cases
  • Microsoft schema and bundled runtime artifacts were refreshed, including theme schema 2.153

PBIR Tools v0.9.9

Choose a tag to compare

@maxanatsko maxanatsko released this 16 Apr 15:33

Important: This tool works best for targeted, iterative changes to existing reports -- formatting, property adjustments, field binding, theme changes, validation. It's not designed to replace your thinking or design, and it's also constrained by the brittle limitations of Power BI reports, themselves.

Install: uv tool install pbir-cli or pip install pbir-cli (recommended over native installers)

Skills (v0.26.0): Get skills from the
power-bi-agentic-development
marketplace. For Claude Code: claude plugin add marketplace data-goblin/power-bi-agentic-development


New

  • Error bars -- pbir visuals error-bars add/list/remove for bullet chart patterns using upper/lower bound measures on chart series
  • Reference lines -- pbir visuals reference-line add/list/remove for constant or measure-driven reference lines on chart axes
  • CF dot-path syntax -- read and write conditional formatting via pbir get/set using .cf.gradient, .cf.rules, .cf.measure paths
  • Model schema disk cache -- pbir set with field() selectors now caches model definitions to disk, cutting repeated calls from ~23s to ~0.4s
  • pbir model --clear-cache -- invalidate cached model definitions after schema changes

Bug Fixes

  • Field names with parentheses (e.g. OTD % (Lines)) now work correctly in field() selectors
  • pbir pages rename --to now updates both folder name and displayName (previously only renamed the folder)
  • .pbi runtime-state files no longer cause schema validation crashes

Deprecated

  • pbir setup -- replaced by native plugin marketplaces; run pbir setup for instructions
  • pbir visuals format-field -- use pbir set "Visual.component.field(Table.Field).property" instead
  • pbir visuals format-state -- use pbir set "Visual.component.hover.property" instead

PBIR Tools v0.9.8

Choose a tag to compare

@maxanatsko maxanatsko released this 10 Apr 19:42

Important: This tool works best for targeted, iterative changes to existing reports -- formatting, property adjustments, field binding, theme changes, validation. It's not designed to replace your thinking or design, and it's also constrained by the brittle limitations of Power BI reports, themselves.

Install: uv tool install pbir-cli or pip install pbir-cli (recommended over native installers)

Skills (v0.22.4): Run pbir setup after installing, or get skills from the
power-bi-agentic-development
marketplace.


New

  • Auto-upgrade schemas on validate -- pbir validate now silently upgrades outdated $schema references to the latest bundled versions before validation, enabling full visual-type-specific checks without a separate step
  • Per-series/field/state selector syntax for get_property / set_property paths (e.g. set formatting per data series)
  • Thick PBIX graceful error -- converting a thick PBIX now shows clear steps (open in Desktop, Save As PBIP) instead of a cryptic module error
  • Schema provenance tracking -- pbir validate -v now shows exactly which schema was used, where it came from (bundled/cached/fetched), and whether it's authoritative

Bug Fixes

  • pbir cat no longer crashes with "No module named pygments" in the binary installer (fixes #11, #13)
  • Field resolver now correctly detects measures vs columns using the connected model, replacing broken DMV queries (fixes #7 measure binding)
  • active: true no longer emitted on query projections, preventing Desktop crashes when adding fields to tables (fixes #7 active property)
  • camelCase data role names (e.g. smallMultiples) now resolve correctly via visual-type-aware matching
  • New reports now use the latest bundled schema versions instead of hardcoded old ones

Changes

  • Pygments dependency fully removed -- JSON output uses console.print_json instead of syntax highlighting
  • Schema validation now tracks three separate families (report, semantic model, theme) with explicit provenance states
  • pbir validate --update-schemas flag deprecated -- auto-upgrade happens automatically