Repository navigation
v3.11.0 - Custom Visual Authoring (Vibe BI for .pbiviz)
Highlights
Vibe-code Power BI custom visuals end-to-end with the new power-bi-custom-visuals Claude skill plus three new pbi visual commands. The skill scaffolds a TypeScript project sibling to your .pbip, iterates against the Power BI Visuals SDK with tsc --noEmit between every change, packages a .pbiviz, and embeds it into the report.
Added
Claude skill: power-bi-custom-visuals
- Auto-installs Node and
pbivizon first run with explicit user consent. Pinspowerbi-visuals-tools@^5.6.0andpowerbi-visuals-api@^5.11.0to known-good versions; override viaPBIVIZ_VERSIONenv var. - Sibling-directory scaffold -- TypeScript project lives next to your
.pbip, never inside it. Clean boundary. - Plan-then-code on fresh scaffolds -- 5-line plan (data roles, render approach, formatting properties, deps) with explicit user OK before any code. Skipped for sustained-authoring edits to existing projects.
- Agent-driven inner loop on
tsc --noEmitwith a 5-turn no-progress cap and oscillation detection. Single user round-trip at the end for visual correctness. - Auto-bumps
pbiviz.jsonpatch version on every package so Power BI Desktop's GUID+version cache invalidates and serves fresh code. Manual user version overrides (e.g.1.0.0-rc.1) are respected. - npm allowlist baked into SKILL.md -- D3 family, Lodash, date-fns,
powerbi-visuals-utils-*install without confirmation. Off-list installs require Claude to justify name + version + reason + bundle impact and get explicit user OK. Blocks the typosquat attack vector. - AGENTS.md template dropped into scaffolded projects: editable vs locked files + ~30 lines of SDK pattern crib (IVisual lifecycle, dataView reading, capabilities data roles, formatting model, common gotchas).
CLI commands
pbi visual import-custom <pbiviz-file> [--replace] [--no-sync]-- copy a locally-built.pbivizintoStaticResources/RegisteredResources/and register it inreport.json.--replaceoverwrites by GUID for the iteration loop.pbi visual list-custom-- list embedded and public (AppSource) custom visuals with akinddistinguisher.pbi visual remove-custom <guid-or-name> [--no-sync]-- deregister and physically delete the.pbiviz. GUID canonical; ambiguous names error with disambiguation guidance.
CI
- New
Custom Visual SDK Smokeworkflow (nightly + on touch of skill or pinned versions) runs the full pbiviz toolchain end-to-end onwindows-latestto catch SDK-version drift before users do.
Out of scope (deferred follow-ups)
pbiviz start live preview, AppSource (public) registration via GUID-only, AppSource publish helper (freeze-version), inspect-without-importing (inspect-custom), bundled example visuals.
Install / Upgrade
pipx upgrade pbi-cli-tool # existing users
pipx install pbi-cli-tool # new users
pbi-cli skills install # picks up the new power-bi-custom-visuals skillPull requests
- #4 -- feat: add custom visual authoring (vibe-code .pbiviz)
- #5 -- ci: install pbiviz locally so webpack resolves ts-loader
Full changelog: v3.10.10...v3.11.0