MinaSaad1/pbi-cli

Power BI CLI - semantic models (.NET TOM) and PBIR reports for token-efficient AI agent usage, built for Claude Code

What it solves

pbi-cli provides a command-line interface for Power BI, allowing users to automate the creation and management of semantic models and reports. It eliminates the manual, repetitive tasks of using the Power BI Desktop GUI, such as creating measures in bulk or manually building visuals, by enabling programmatic access to Power BI's internal structures.

How it works

The project uses a dual-layer architecture to interact with Power BI:

  • Semantic Model Layer: Uses direct .NET interop from Python to communicate with Power BI Desktop via TOM/ADOMD, allowing for sub-second execution of DAX queries and model changes.
  • Report Layer: Directly reads and writes PBIR (Enhanced Report Format) JSON files, which works with .pbip projects without requiring an active connection to the Power BI Desktop application.

It also includes a "skills" system that registers 13 specific Power BI capabilities (such as DAX, Modeling, and Visuals) for use with Claude Code, enabling an AI agent to perform these tasks autonomously.

Who it’s for

Power BI developers and data analysts who want to automate their workflow, use version control for their reports, and leverage AI agents like Claude Code to build and manage their data models and reports.

Highlights

  • AI Agent Integration: Specifically designed to give Claude Code the skills to write DAX, create tables, and build reports.
  • Bulk Operations: Ability to create measures and visuals in bulk, debug DAX and audit model health.
  • Custom Visual Authoring: A specialized loop that scaffolds TypeScript projects, packages .pbiviz files, and imports them into reports.
  • Comprehensive Tooling: 27 command groups covering everything from security roles and partitions to bookmarks and conditional formatting.
  • JSON Output: Supports --json for machine-readable output, making it easy for scripts and other AI agents to integrate.

Related

  • Project
  • Project
  • Project
  • Project
  • Project