Power-bi-agentic-development te2-cli
CLI syntax reference for Tabular Editor 2 (TabularEditor.exe); deployment, scripting, BPA analysis, and CI/CD integration. Automatically invoke when the user mentions "TabularEditor.exe", TE2 CLI flags (-D, -S, -A, -B, -TMDL, -O, -C), or asks to "deploy a model via CLI", "set up CI/CD for Power BI", "automate model deployment", "run BPA from command line", "save model as TMDL".
git clone https://github.com/data-goblin/power-bi-agentic-development
T=$(mktemp -d) && git clone --depth=1 https://github.com/data-goblin/power-bi-agentic-development "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/tabular-editor/skills/te2-cli" ~/.claude/skills/data-goblin-power-bi-agentic-development-te2-cli && rm -rf "$T"
plugins/tabular-editor/skills/te2-cli/SKILL.mdTabular Editor 2 CLI
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.
Installation
Tabular Editor 2 (Free)
- Download: https://github.com/TabularEditor/TabularEditor/releases
- Extract to preferred location or use Chocolatey:
choco install tabulareditor2
Executable
TabularEditor.exe -- free, Windows-only. For Mac/Linux, run via a Windows VM or container.
Connection Sources
Local Files
# model.bim (JSON format) TabularEditor.exe Model.bim # TMDL folder TabularEditor.exe definition/ # PBIP project TabularEditor.exe MyReport.pbip
Remote XMLA Endpoints
# Analysis Services TabularEditor.exe "localhost\tabular" "AdventureWorks" # Power BI Premium/Fabric TabularEditor.exe "powerbi://api.powerbi.com/v1.0/myorg/WorkspaceName" "ModelName"
Power BI Desktop
# Auto-detect running instance TabularEditor.exe localhost:PORT DatabaseName
Note: Find the port in PBIDesktop diagnostic files or use tools like DAX Studio.
Command-Line Reference
Basic Syntax
TabularEditor.exe <source> [options]
Script Execution
# 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
Deployment
# 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
Deployment Options
| Flag | Long Form | Description |
|---|---|---|
| | Overwrite existing database |
| | Deploy/overwrite data sources (supports connection string placeholder substitution) |
| | Deploy/overwrite existing table partitions |
| | Deploy roles |
| | Deploy role members |
| | Deploy shared expressions (within context; note: also means script outside ) |
| | Return non-zero exit code if AS returns error messages after deployment |
| | Output Azure DevOps logging commands |
| | Output warnings for unprocessed objects |
| | Full deployment (equivalent to ) |
| | Generate XMLA/TMSL script instead of deploying |
| | Disable integrated security for deployment |
| | Skip incremental refresh policy partitions |
Save Output
# 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/
Best Practice Analyzer
# 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
Schema Check
# Validate data source schemas against the model TabularEditor.exe Model.bim -SC
Common Operations
1. Deploy Local Model to Service
TabularEditor.exe Model.bim ^ -D "powerbi://api.powerbi.com/v1.0/myorg/Workspace" "SemanticModel" ^ -O -C
2. Run Script and Save
TabularEditor.exe Model.bim -S format-dax.csx -B Model.bim
3. Run BPA Analysis
TabularEditor.exe Model.bim ^ -A https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json ^ -V
4. Refresh Model Data
TabularEditor.exe "server" "database" ^ -S "Model.RequestRefresh(RefreshType.Full);" ^ -D "server" "database"
5. Export Model from Service
TabularEditor.exe "powerbi://api.powerbi.com/v1.0/myorg/Workspace" "Model" ^ -TMDL output/definition
Authentication
For authentication methods (Windows, Service Principal, Interactive) and CI/CD integration (Azure DevOps, GitHub Actions), see
.references/auth-and-cicd.md
Exit Codes
| Code | Description |
|---|---|
| 0 | Success |
| 1 | Any error-level output (script error, deployment failure, BPA violations at severity >= 3) |
File Formats
Input Formats
- Tabular JSON (legacy)model.bim
- TMDL folder (modern)definition/
- Power BI Project (TE3)*.pbip
Output Formats
| Flag | Format | Description |
|---|---|---|
| | Tabular JSON |
| folder | TMDL |
| folder | Legacy folder structure |
Troubleshooting
For common errors (database not found, authentication failed, script execution failed), see
.references/auth-and-cicd.md
Quick Reference Card
+---------------------------------------------------------+ | 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 | +---------------------------------------------------------+
References
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.