From the video . Free and open-source . MIT-licensed
Power BI to AI visuals
The pipeline from the video, in full. A .pbix goes in. An open queryable model, a faithful HTML rebuild, an evidence pass, a strategic dashboard, and a chat CLI come out. No Power BI Desktop, no Fabric, no gateway, no licence.
The whole pipeline, the four agent skills, and the traps written down.
One email with the repo link. That is the whole sequence: no drip, no four-week arc, no upsells.
What it does
Five stages, each usable on its own.
Run the lot with ./run_all.sh, or stop after whichever stage answers your question.
01
Extract
A .pbix holds an XPress9-compressed Analysis Services backup of the VertiPaq store, and a .pbip keeps the same bytes. Both are decoded on Linux with no Analysis Services engine. Out comes a parquet per table, a DuckDB database, and a model file carrying columns, relationships, hierarchies, measures with their DAX, and the original Power Query M.
02
Rebuild, and prove it
The report is recompiled into one self-contained HTML page. Not a screenshot: the slicer works, because each visual ships a small pre-aggregated cube and re-aggregates in the browser. The regression test checks 22 values from the original render and all 22 match to the cent.
03
Read what it says
An evidence pass computes coverage, growth, margin, mix, concentration, year-on-year movers, referential-integrity gaps, placeholder members, partial periods, and which tables the report never touches. It refuses to editorialise, and prints the evidence behind every guess so you can override it.
04
The dashboard they should have had
An agent reads the evidence and writes the judgment; the page prints the SQL behind itself in the footer. The split is deliberate and it is the whole design: numbers are computed, judgment is written.
05
Ask it anything
A read-only CLI over the semantic layer. It resolves joins from the model's own relationships, so an agent asks for fields instead of writing joins it can get wrong. There is no language model inside it: the agent reading the question is the language model.
06
Four agent skills
Extract, replicate, redesign, chat. Drop them in and an agent that opens the folder already knows the commands and the traps. They carry the failure modes, not just the syntax, which is most of their value.
What the worked example found
Rebuilding the report is the easy half.
Reading it turned up five things the report itself cannot show. Every number here is computed by the pipeline, not written by a marketer.
73% of revenue earns almost no gross profit.
The reseller channel runs at roughly zero margin at standard cost, while the online store holds a steady 41% and carries the entire company margin. The report never uses the cost column or the channel column, and both sit in the model it already loads.
Average order value fell from $7,461 to $2,206, and that is good news.
Orders went from 3,198 to 23,519 because the online store expanded from bikes only into accessories and clothing. Internet accessory units went from 718 to 35,374 in a single year. Read without the mix shift, the same fall looks like a collapse.
The newest fiscal year stops two weeks short.
It ends on 15 June. Any comparison that ignores that understates growth by about three points. Compare only the months both years contain, and say that you did.
The blank in the year slicer is a data-quality signal.
2,113 sales lines carry a ship date the calendar does not contain, through an inactive relationship nothing on the page uses. It reads as a cosmetic annoyance and it is a referential integrity gap.
Half the model is never read.
Four of eight tables are referenced by no visual, and one of them holds the channel column that changes the whole story.
Honest about the limits
What it does not do.
The DAX translation covers a subset: aggregates, arithmetic, DIVIDE, and CALCULATE with a simple filter or USERELATIONSHIP. Anything else is reported as untranslatable with its reason rather than guessed at. The replica has no cross-highlighting, drill-down or bookmarks, and it marks a visual holding an average or a distinct count as not following the slicer. Role detection is heuristic: it reads column names, and you should check it before trusting anything downstream.
A model with no cached data cannot be extracted at all. Live connections and DirectQuery hold no rows locally, so re-save from Desktop in import mode first. And the repo ships no Power BI file: point it at your own, or download Microsoft's AdventureWorks sample, which is what every number above was computed from.
If that is the wrong altitude and you want the reporting layer built and run rather than handed to you, the Company Brain build is the delivered version. The repo is free either way, with our blessing.
One email, the repo link, and nothing after it.
MIT-licensed. Clone it, run it against your own file, fork it.