Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 61 additions & 2 deletions content/features/Command-line-Options.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,79 @@
uid: command-line-options
title: Command Line (Tabular Editor 2)
author: Daniel Otykier
updated: 2021-08-26
updated: 2026-06-09
applies_to:
products:
- product: Tabular Editor 2
full: true
- product: Tabular Editor 3
none: true
- product: Tabular Editor CLI
none: true
---
# Command Line (Tabular Editor 2)

Tabular Editor can be executed from the command-line to perform various tasks, which may be useful in Automated Build and Deployment scenarios, etc.

## How the tools fit together

Tabular Editor 3 is a desktop application for developers. It has no command-line interface of its own. For automated deployments and CI/CD pipelines, use either `TabularEditor.exe` (the Tabular Editor 2 CLI documented on this page) or the new cross-platform [Tabular Editor CLI](xref:te-cli) (`te`).

Running `TabularEditor.exe` in a CI/CD pipeline does not require a Tabular Editor 3 license. Only users of the Tabular Editor 3 application need a license.

> [!TIP]
> Looking for the new cross-platform CLI? See @te-cli for the Tabular Editor CLI (Limited Public Preview), a successor that runs on Windows, macOS, and Linux.

Tabular Editor can be executed from the command-line to perform various tasks, which may be useful in Automated Build and Deployment scenarios, etc.
## TabularEditor.exe vs. the Tabular Editor CLI

The Tabular Editor CLI (`te`) is the cross-platform successor to `TabularEditor.exe`. It's not just a rewrite for macOS and Linux - it adds model editing, inspection, diffing, testing, refresh triggering, and VertiPaq analysis as first-class pipeline operations, none of which were possible with `TabularEditor.exe`. The `te` CLI is in Limited Public Preview (expires 2026-09-30); use `TabularEditor.exe` for production pipelines today.

| | TE2 CLI (`TabularEditor.exe`) | TE CLI (`te`) |
|---|---|---|
| Status | Stable, production-ready | Limited Public Preview (expires 2026-09-30) |
| Platform | Windows only | Windows, macOS, Linux |
| License required | No | No (preview); TBD at GA |
| Binary | WinForms app, requires `start /wait` wrapper | Purpose-built console binary, no wrapper needed |
| **Authentication** | | |
| Service Principal | Via MSOLAP connection string | Native `--auth spn`, `--auth env`, `--auth managed-identity`; credentials via env vars, stdin, or certificate; OS-native secure credential store |
| Managed identity | No | Yes (`--auth managed-identity`), for Azure-hosted runners |
| Interactive browser login | No | Yes (`te auth login`) |
| **CI/CD** | | |
| CI annotations | `-V` (Azure DevOps), `-G` (GitHub) | `--ci vsts`, `--ci github` on every command |
| Non-interactive mode | No explicit flag; errors may prompt | `--non-interactive` global flag - fails fast, no prompts |
| Predictable exit codes | Partial | `0` = success, `1` = failure, `2` = diff mismatch |
| Structured output | No | `--output-format json/csv/tmdl/tmsl` on every command |
| VSTEST results | `-T` flag | `--trx <file>` on `validate`, `bpa run`, `test run` |
| **Deployment** | | |
| Deploy model | `-D` flag | `te deploy` with fine-grained flags (`--deploy-roles`, `--deploy-partitions`, `--deploy-connections`, `--deploy-full`, etc.) |
| Generate XMLA/TMSL without deploying | `-X` flag | `te deploy --xmla <file>` or `--dry-run` |
| BPA gate before deploy | No | Built-in; `--skip-bpa` or `--fix-bpa` to override |
| Connection profiles | No | `te profile set/list/show` - reusable named profiles per environment |
| **Best Practice Analyzer** | | |
| Run BPA | `-A` / `-AX` flags | `te bpa run` with `--fail-on warning/error`, `--fix`, `--path` scoping, `--vpax` for VPA-aware rules |
| BPA rule management | No | `te bpa rules add/rm/set/list/disable/enable/init` |
| **Model editing in pipeline** | | |
| Run C# scripts | `-S` flag | `te script` - multiple scripts, inline code, stdin, `--dry-run`, preprocessor symbols (`TECLI`) |
| Run macros | No | `te macro run` with `--on <object>` context |
| Set/get properties | No | `te get`, `te set`, `te add`, `te rm`, `te mv`, `te replace` |
| DAX formatting | No | `te format` - all expressions or single object, DAX and M |
| **Inspection** | | |
| List model objects | No | `te ls` with wildcard path filters, `--type`, `--paths-only`, `--output-format bim` |
| Search expressions/names | No | `te find` with regex and scope (`--in expressions/names/descriptions`) |
| Diff two models | No | `te diff` - structural comparison with exit code `2` on any difference |
| Dependency analysis | No | `te deps` - upstream/downstream for any object; `--unused` to find dead code |
| **Refresh** | | |
| Trigger refresh | No | `te refresh` with `--type`, `--table`, `--partition`, `--apply-refresh-policy`, `--dry-run` |
| **Testing** | | |
| DAX assertion tests | No | `te test run` with `--tag`, `--trx`, `--ci`; `te test init/snapshot/compare` |
| **VertiPaq analysis** | | |
| Storage statistics | No | `te vertipaq` - columns, relationships, partitions; `--export`/`--import` VPAX |
| **Other** | | |
| Interactive REPL | No | `te interactive` - model-aware shell with tab completion |
| Shell tab completion | No | `te completion bash/zsh/pwsh` |
| TE2 backward compatibility | Native | Built-in compatibility layer - existing `TabularEditor.exe` invocations work unchanged |

For a flag-by-flag mapping from TE2 syntax to the new CLI, see @te-cli-migrate.

**Note:** Since TabularEditor.exe is a WinForms application, executing it directly from a windows command-prompt will cause the thread to return immediately to the prompt. This may cause issues in command scripts, etc. To wait for TabularEditor.exe to complete its command-line tasks, always execute it using: `start /wait TabularEditor ...`

Expand Down
14 changes: 11 additions & 3 deletions content/getting-started/editions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
uid: editions
title: Compare editions
author: Søren Toft Joensen
updated: 2025-02-07
updated: 2026-06-09
applies_to:
products:
- product: Tabular Editor 2
Expand Down Expand Up @@ -87,8 +87,6 @@ If you attempt to open a model that uses one or more of the modeling restriction

There are no other feature differences between the Tabular Editor 3 editions, than the ones listed above.

> [!NOTE]
> Please keep in mind that Power BI Desktop [currently does not support all Data modeling operations](xref:desktop-limitations). For this reason, Tabular Editor 3 by default blocks operations that are not supported by Power BI Desktop. However, this restriction can be removed under Tools > Preferences > Power BI.

> [!IMPORTANT]
> Tabular Editor can only be used as an external tool for Power BI Desktop when the Power BI report (.pbix, .pbip or .pbit) file contains a data model (Import, DirectQuery or Composite). **Reports using Live connection are not supported** since these reports do not contain a data model. [More information](xref:desktop-limitations).
Expand Down Expand Up @@ -138,3 +136,13 @@ Total $ 10,950.00
```

If you require more than 100 seats, please <a href="mailto:sales@tabulareditor.com">contact sales</a> for a quote.


## Command-line and CI/CD licensing

Tabular Editor 3 is a desktop application. It has no command-line interface of its own. For automated deployments and CI/CD pipelines, use either `TabularEditor.exe` (the [Tabular Editor 2 command line](xref:command-line-options)) or the cross-platform [Tabular Editor CLI](xref:te-cli) (`te`). Both are separate from the Tabular Editor 3 desktop application.

> **Do I need a license to run CI/CD pipelines?**
> No. `TabularEditor.exe` (TE2 CLI) and the Tabular Editor CLI (`te`, during preview) do not require a Tabular Editor 3 license. Only developers using the Tabular Editor 3 desktop application need a license.

At General Availability the Tabular Editor CLI will require a license; pricing is still being finalized and will be announced ahead of GA.
54 changes: 21 additions & 33 deletions content/getting-started/migrate-from-te2.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
uid: migrate-from-te2
title: Migrating from Tabular Editor 2.x
author: Daniel Otykier
updated: 2021-09-30
updated: 2026-06-10
applies_to:
products:
- product: Tabular Editor 2
Expand All @@ -29,37 +29,7 @@ Tabular Editor 3 has a different product code than Tabular Editor 2.x. This mean

In terms of features, Tabular Editor 3 is essentially a superset of Tabular Editor 2.x, with few exceptions. The table below compares all major features of the two tools:

||Tabular Editor 2.x|Tabular Editor 3|
|---|---|---|
|Edit all TOM objects and properties|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>|
|Batch editing and renaming|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>|
|Copy/paste and drag/drop support|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>|
|Undo/redo data modeling operations|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>|
|Load/save model metadata to disk|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>*|
|Save-to-folder|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>*|
|[daxformatter.com](https://daxformatter.com) integration|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>|
|Advanced data modeling (OLS, Perspectives, Calculation Groups, Metadata Translations, etc.)|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>*|
|Syntax highlighting and automatic formula fixup|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>|
|View DAX dependencies between objects|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>|
|Import Table Wizard|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>|
|Deployment Wizard|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>*|
|Best Practice Analyzer|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>|
|C# scripting and automation|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>|
|Use as External Tool for Power BI Desktop|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>|
|Connect to SSAS/Azure AS/Power BI Premium|<span class="emoji">&#10004;</span>|<span class="emoji">&#10004;</span>*|
|Command-line interface|<span class="emoji">&#10004;</span>|*[Coming soon](xref:roadmap)*|
|Premium, customizable user-interface with high-DPI, multi-monitor and theming support||<span class="emoji">&#10004;</span>|
|World-class DAX editor with IntelliSense<sup>TM</sup>-like features||<span class="emoji">&#10004;</span>|
|Offline DAX syntax checking and column/data type inference||<span class="emoji">&#10004;</span>|
|Improved Table Import Wizard and Table Schema Update check with Power Query support||<span class="emoji">&#10004;</span>|
|DAX querying, table preview and Pivot Grids||<span class="emoji">&#10004;</span>|
|Create diagrams for visualizing and editing table relationships||<span class="emoji">&#10004;</span>|
|Execute data refresh operations in the background||<span class="emoji">&#10004;</span>*|
|C# macro recorder||<span class="emoji">&#10004;</span>|
|Edit multiple DAX expressions in a single document using DAX scripting||<span class="emoji">&#10004;</span>|
|[VertiPaq Analyzer](https://www.sqlbi.com/tools/vertipaq-analyzer/) integration||<span class="emoji">&#10004;</span>|

\***Note:** Limitations apply depending on which [edition](xref:editions) of Tabular Editor 3 you are using.
[!include[feature-comparison](../includes/feature-comparison.partial.md)]

## Feature differences

Expand All @@ -71,7 +41,7 @@ The first thing you will notice when launching Tabular Editor 3, is the new Visu

In general, though, interface elements that exist in Tabular Editor 2.x have the same name in Tabular Editor 3, so it should be relatively easy to navigate the new interface. A few important differences are listed below:

- The **Advanced Scripting** tab in Tabular Editor 2.x is gone. In Tabular Editor 3, you instead create *C# Scripts** using the **File > New** menu. You are not limited to working on a single script at a time. In addition, **Custom actions** have been renamed to **Macros**.
- The **Advanced Scripting** tab in Tabular Editor 2.x is gone. In Tabular Editor 3, you instead create **C# Scripts** using the **File > New** menu. You are not limited to working on a single script at a time. In addition, **Custom actions** have been renamed to **Macros**.
- **Dynamic LINQ filtering** is not currently available within the TOM Explorer. Instead, if you want to find objects using [Dynamic LINQ](https://dynamic-linq.net/expression-language) you have to bring up the **Find and replace** dialog by pressing CTRL+F.
- If you close the **Expression Editor** you can bring it back by doubleclicking on the icon of an object in the **TOM Explorer**, or by choosing the **View > Expression Editor** menu option.
- When using the default layout in Tabular Editor 3, the **Best Practice Analyzer** will be located as a tab next to the **TOM Explorer**. Here, you will also find the new **Data Refresh** view (which lets you view the queue of background refresh operations) and the **Macros** view (which lets you manage any macros that were previously saved from C# scripts).
Expand Down Expand Up @@ -147,8 +117,26 @@ When working in **connected** or **workspace** mode, DAX scripting is an incredi

To learn more, see @dax-script-introduction.

## Major additions since 2021

Tabular Editor 3 has gained many features since this article was first written. The feature comparison table above is the canonical catalog. The highlights most relevant to developers coming from Tabular Editor 2.x are:

- [DAX User-Defined Functions (UDFs)](xref:udfs) with authoring assistance, code actions and namespaces
- [Calendar Editor](xref:calendars) for building date tables with enhanced time intelligence
- [DAX Package Manager](xref:dax-package-manager) for installing and sharing reusable DAX
- [Code Actions](xref:code-actions) for quick fixes and refactoring in the DAX editor
- [DAX debugger](xref:dax-debugger) for stepping through expression evaluation
- [DAX Optimizer integration](xref:dax-optimizer-integration) alongside VertiPaq Analyzer
- [Table Groups](xref:table-groups) for organizing large models
- [AI Assistant](xref:ai-assistant) for DAX and modeling help
- [TMDL](xref:tmdl) serialization, [Save to folder](xref:save-to-folder) and [Save with supporting files](xref:save-with-supporting-files) for Fabric Git integration
- Cross-platform [Tabular Editor CLI](xref:te-cli) (`te`, in Limited Public Preview) for automation and CI/CD
- [Semantic Bridge](xref:semantic-bridge) for Databricks Metric Views (Enterprise Edition)
- [Localization](xref:references-application-language) of the application interface

## Next steps

- @migrate-from-vs
- @te-cli-migrate
- @parallel-development
- @boosting-productivity-te3
Loading
Loading