Help us improve
Share bugs, ideas, or general feedback.
From tabular-editor
References Tabular Editor 2 CLI syntax for scripting C#, deploying tabular models to Power BI Premium/Fabric and Analysis Services via XMLA, running BPA, and CI/CD setup.
npx claudepluginhub data-goblin/power-bi-agentic-development --plugin tabular-editorHow this skill is triggered — by the user, by Claude, or both
Slash command
/tabular-editor:te2-cliThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Command-line interface for Tabular Editor 2 (TE2). This skill covers the `TabularEditor.exe` executable; TE3 has its own CLI and is a separate product.
Writes and executes C# scripts and macros for Power BI semantic models using Tabular Editor 2/3. Supports bulk operations on measures, calculation groups, DAX formatting, and metadata management.
Enables programmatic Power BI report and semantic model development using PBIR/PBIP formats, TOM/.NET SDK, TMSL/TMDL, pbi-tools, and ALM Toolkit for CI/CD and code-first workflows.
Connects to Power BI Desktop's local Analysis Services instance via PowerShell using TOM and ADOMD.NET for model enumeration, DAX queries, metadata changes, and query tracing.
Share bugs, ideas, or general feedback.
Command-line interface for Tabular Editor 2 (TE2). This skill covers the TabularEditor.exe executable; TE3 has its own CLI and is a separate product.
choco install tabulareditor2TabularEditor.exe -- free, Windows-only. For Mac/Linux, run via a Windows VM or container.
# model.bim (JSON format)
TabularEditor.exe Model.bim
# TMDL folder
TabularEditor.exe definition/
# PBIP project
TabularEditor.exe MyReport.pbip
# Analysis Services
TabularEditor.exe "localhost\tabular" "AdventureWorks"
# Power BI Premium/Fabric
TabularEditor.exe "powerbi://api.powerbi.com/v1.0/myorg/WorkspaceName" "ModelName"
# Auto-detect running instance
TabularEditor.exe localhost:PORT DatabaseName
Note: Find the port in PBIDesktop diagnostic files or use tools like DAX Studio.
TabularEditor.exe <source> [options]
# Inline C# script
TabularEditor.exe Model.bim -S "Info(Model.Name);"
# Script file
TabularEditor.exe Model.bim -S script.csx
# Multiple scripts (executed in order)
TabularEditor.exe Model.bim -S script1.csx -S script2.csx
# Deploy to XMLA endpoint
TabularEditor.exe Model.bim -D "server" "database"
# Deploy with options
TabularEditor.exe Model.bim -D "server" "database" -O -C -P -R -M -E -V -W
| Flag | Long Form | Description |
|---|---|---|
-O | -OVERWRITE | Overwrite existing database |
-C | -CONNECTIONS | Deploy/overwrite data sources (supports connection string placeholder substitution) |
-P | -PARTITIONS | Deploy/overwrite existing table partitions |
-R | -ROLES | Deploy roles |
-M | -MEMBERS | Deploy role members |
-S | -SHARED | Deploy shared expressions (within -D context; note: -S also means script outside -D) |
-E | -ERR | Return non-zero exit code if AS returns error messages after deployment |
-V | -VSTS | Output Azure DevOps logging commands |
-W | -WARN | Output warnings for unprocessed objects |
-F | -FULL | Full deployment (equivalent to -O -C -P -S -R -M) |
-X | -XMLA | Generate XMLA/TMSL script instead of deploying |
-L | -LOGIN | Disable integrated security for deployment |
-Y | -SKIPPOLICY | Skip incremental refresh policy partitions |
# Save to model.bim
TabularEditor.exe Model.bim -S script.csx -B Output.bim
# Save to TMDL folder
TabularEditor.exe Model.bim -S script.csx -TMDL output/
# Save to legacy folder structure
TabularEditor.exe Model.bim -S script.csx -F output/
# Run BPA rules
TabularEditor.exe Model.bim -A rules.json
# Run BPA with Azure DevOps logging output
TabularEditor.exe Model.bim -A rules.json -V
# Run BPA with GitHub Actions logging output
TabularEditor.exe Model.bim -A rules.json -G
# Analyze excluding rules embedded in model annotations
TabularEditor.exe Model.bim -AX rules.json
# Validate data source schemas against the model
TabularEditor.exe Model.bim -SC
TabularEditor.exe Model.bim ^
-D "powerbi://api.powerbi.com/v1.0/myorg/Workspace" "SemanticModel" ^
-O -C
TabularEditor.exe Model.bim -S format-dax.csx -B Model.bim
TabularEditor.exe Model.bim ^
-A https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json ^
-V
TabularEditor.exe "server" "database" ^
-S "Model.RequestRefresh(RefreshType.Full);" ^
-D "server" "database"
TabularEditor.exe "powerbi://api.powerbi.com/v1.0/myorg/Workspace" "Model" ^
-TMDL output/definition
For authentication methods (Windows, Service Principal, Interactive) and CI/CD integration (Azure DevOps, GitHub Actions), see references/auth-and-cicd.md.
| Code | Description |
|---|---|
| 0 | Success |
| 1 | Any error-level output (script error, deployment failure, BPA violations at severity >= 3) |
model.bim - Tabular JSON (legacy)definition/ - TMDL folder (modern)*.pbip - Power BI Project (TE3)| Flag | Format | Description |
|---|---|---|
-B | .bim | Tabular JSON |
-TMDL | folder | TMDL |
-F | folder | Legacy folder structure |
For common errors (database not found, authentication failed, script execution failed), see references/auth-and-cicd.md.
+---------------------------------------------------------+
| TABULAR EDITOR CLI QUICK REFERENCE |
+---------------------------------------------------------+
| SOURCES |
| Model.bim Local JSON model |
| definition/ TMDL folder |
| "server" "db" XMLA connection |
+---------------------------------------------------------+
| SCRIPTS |
| -S "code" Inline C# script |
| -S file.csx Script file |
+---------------------------------------------------------+
| DEPLOYMENT |
| -D "server" "db" Deploy to target |
| -O Overwrite existing |
| -C Create if not exists |
+---------------------------------------------------------+
| OUTPUT |
| -B output.bim Save as JSON |
| -TMDL folder/ Save as TMDL |
+---------------------------------------------------------+
| BPA |
| -A rules.json Run BPA analysis |
| -G results.sarif Output BPA results |
+---------------------------------------------------------+
To retrieve current XMLA and deployment docs, use microsoft_docs_search + microsoft_docs_fetch (MCP) if available, otherwise mslearn search + mslearn fetch (CLI). Search based on the user's request and run multiple searches as needed to ensure sufficient context before proceeding.