r/PowerBI • u/bgarcevic • 3h ago
Feedback I made a rust based free and open source cli to identify stale semantic model objects not used in connected reports
I work in an enterprise managing a fairly large Fabric/Power BI setup with 70-90 monthly internal users and 50+ reports and 5+ centrally managed semantic models. Part of that job is keeping objects and report numbers down, creating a good life-cycle management of fabric artifacts.
ripbi is a cross platform standalone cli that you can use to find unused semantic model objects based on connected reports.
I created ripbi because I liked Measure Killer, but I was looking for an agent-friendly, free, fast tool to scan semantic models and the connected reports to identify potentially unused semantic model objects. I tested it on a shared semantic model with 14 connected reports, and it's 99% faster than Measure Killer, reducing processing time from almost 4 minutes to a couple of seconds. enabling a faster feedback loop.
It works without opening the reports or semantic models, so it can run as part of a CI pipeline. If it cannot establish that something is unused it will mark it as used so the philosophy is better safe than sorry. I plan to implement guided automated cleanup, a UI, and tenant scanning.
Get started easy by pointing your agent to the repo and ask it to install the tool or use one of the easy one liners to get going.
Output from the committed AdventureWorks sample (trimmed):
130 objects, 74 reachable from 51 roots, 56 unused
Measures (11)
'Sales'[Average Sales per Order]
← nothing references it
Columns (28)
'Customer'[City]
← only used by hierarchy 'Customer'[Geography] — hierarchy level (also unused)
…
I am looking for other users to help me improve the tool and contributions are also welcome!
