Why project files
A PBIX is one binary file. Git will store it, but it cannot show you what changed: no diff of a measure, no diff of a visual, no way to review a change before it is in the report. Guy in a Cube made this point in 2021, before project files existed, and showed the workaround of the time: use Tabular Editor to save the model definition as a text file, because text files can be diffed and reviewed.
Power BI project files (PBIP) bring that idea into Desktop. You choose Save as and save a project instead of a PBIX. Desktop writes a folder with the semantic model and the report as text: TMDL for the model, JSON files for the report pages and visuals. RADACAD’s comparison of the file formats explains where PBIP sits beside PBIX, PBIT and PBIR; Guy in a Cube covered the developer-mode reasoning at the Fabric launch in 2023 — put the artifact metadata on the file system so it can go into source control.
That is what makes AI practical here. An AI cannot reliably edit a binary report file. It can read and write text, and it can be shown two versions of the same project and asked to produce a third.
The worked example
In 2026, How to Power BI built a chart by asking an AI agent to do it. The video is worth watching in full because it shows the preparation as clearly as the result.
The setup:
- A report in a state before the change: no chart, no supporting measures.
- The same report after the change, built by hand: the chart, its slicer, the measures, a disconnected table for the time window, a visual calculation.
- Both saved as Power BI projects, as
startandend. - A skill file —
SKILL.md, a markdown file of instructions — in a folder the agent can find.
Then the agent was given one prompt, roughly:
I have a PBIP project at this file path and I just copied the start folder. I want to enable the user to select the time window in the line chart in the first page.
It worked from the two examples, found the skill, asked to proceed, and edited the project: new measure files in the semantic model, new and changed JSON files for the visuals. Reopening the PBIP showed the chart with the reference line, the highlight area, the slicer and the new measures, including the visual calculation.
The video then does the test that matters: it repeats the task on a different dataset, loading the sample data into a new project. A change that only works on the example file is not a method.
What is in the folder
A PBIP is a small file next to two folders: one for the semantic model, one for the report.
- Model: TMDL files, one per table, with the measures as text. PeryTUS’s beginner guide shows the shape: you can add a measure in the
Sales.tmdlfile, save, and reopen the PBIP with the measure there. A measure name with a space goes in single quotes; the back-ticks PeryTUS points out in existing files fence an expression that runs over several lines. The editor autocompletes.
table Sales
measure 'Total Sales' = SUM ( Sales[Amount] )
formatString: #,0
- Report: a
definitionfolder, thenpages, then one JSON file per visual. How to Power BI opens one and shows that it describes a single visual — the slicer in the example — in properties an AI can read.
There is no general documentation for that JSON. That is why the before-and-after pair matters: it is the specification the agent is actually using.
How to work this way
- Save as a project. RADACAD notes the PBIP setting sits among the preview features in Desktop; turn it on, then Save as a Power BI project.
- Put the folder in Git. Commit the working version before the agent starts. The point of text files is that you can review the diff and revert it.
- Give the agent examples. For any change that is not trivial, keep a
startand anendcopy of one report where a person made the change. Without them the agent is guessing at the file format. - Write the instructions down. A skill or a markdown file with the rules of your model — naming, where measures live, which folders it may touch — is cheaper than repeating them in every prompt.
- Ask for one change at a time. The agent asks before it proceeds; keep that step. A wide prompt produces a wide diff, and a wide diff is hard to review.
- Review the diff, not the chat. Read the changed TMDL and JSON. A plausible-looking edit is not a valid one.
- Open the PBIP in Desktop. This is the only real test. The agent cannot open Desktop for you.
- Test on a second dataset. If the change is meant to be reusable — a chart style, a pattern — repeat it on a different model, as the video does.
What goes wrong
- The AI invents a file format. Without a start/end pair it will write JSON that looks right. Desktop will refuse it, or worse, open it with something missing.
- The diff is too large to review. One prompt, twenty files, no idea which change caused the break.
- The project changes under you. PBIP and PBIR are preview features and their file layout changes between versions; a skill file written today may not fit the next release.
- The change works once. The example report is the easy case. A second dataset is the test.
- A measure is added but nothing uses it. The JSON edit for the visual is separate from the TMDL edit for the measure, and AI can do one and not the other.
Where it can be used
- generating or editing a visual that has a fiddly property set, once the pattern is captured in a skill;
- bulk model changes — renaming, descriptions, format strings — as reviewable text;
- diffing two versions of a model to see what changed between them;
- documentation: the model and report files can be read without opening Desktop;
- review: a colleague (or an agent) reads the diff of a measure change instead of a new binary.
More guides
- Why a star schema: the model shape the project files describe, with the hard parts named.
- Getting a semantic model ready for AI: what to name, hide and describe before an agent or Copilot reads the model.
Sources
- Guy in a Cube, “Source Control with Power BI — Can it be done?”, 2021 — binary versus text
- Guy in a Cube, “Microsoft Fabric Launch Digital Event (Day 2)”, 2023 — developer mode and projects
- RADACAD, “Power BI File Formats Explained: PBIX vs PBIT vs PBIP vs PBIR”, 2026 — from 6:00
- How to Power BI, “AI Can Now Build ANY Power BI Chart You Want”, 2026 — the example pair, the folder, the prompt and the result
- PeryTUS, “TMDL File Format: A Beginner’s Guide in Power BI Developer Mode”, 2024 — from 4:30
These teachers taught me this. The ideas are theirs; the mistakes are mine.