Tabular Editor CLI 0.6.0 release

Written by Ruben Van de Voorde | Jul 6, 2026 7:00:00 AM

Key Takeaways

  • The Tabular Editor CLI 0.6.0 is now available in Limited Public Preview: We focused on improvements to existing commands and fixing bugs for this one. You can consider this a hardening release.
  • There is a breaking change: We removed the te-folder value of the --serialization option and replaced it with database.json to better align with TE2, TE3, and other tools that use this format.
  • The CLI behaves more predictably, for automation in particular: Errors are non-zero with cleaner messages, scripted use is safer, and format handling is less surprising.

This summary is produced by the author, and not by AI.

Since announcing the Tabular Editor CLI, we’ve been hard at work polishing the CLI and bashing the bugs we found, thanks to your help. We deeply appreciate all the input we received so far through GitHub, talking to you at events, comments on these blogs, and all other channels you engage with us (leave yours at the bottom of this page). Keep it coming!

We’re now at a point where we feel ready to share the updated version with you: version 0.6.0.

NOTE

The TE CLI is in limited public preview and offered for evaluation with a Tabular Editor account. We recommend against using the CLI in production CI/CD pipelines during preview, as commands, flags, and outputs may change before general availability. The preview build will stop functioning after September 30, 2026. After the preview period, a license will be required.

What changed in version 0.6.0

This is a hardening release aimed at making the CLI more robust for performing core tasks and using it in automated workflows. No flashy new features, just making sure the foundations are solid.

Breaking change: folder serialization

The te-folder value to serialize models to a folder has been renamed to database.json to better align with Tabular Editor 2, Tabular Editor 3, and pbi-tools, which also use a database.json file when a model is serialized to a folder. If you are using te init or te save in your automation, it’s worth double-checking that models are still opening and closing as expected.

More predictable CLI behavior

Invalid commands and options now fail with a non-zero exit code; this provides an unambiguous signal in scripts, automation pipelines, and to agents that a specific command invocation has failed. After an invalid command or option is entered, the CLI now returns a one-line error message that says whether it’s the command or the option that wasn’t recognized. Other command errors are shorter as well. When the CLI cannot interpret a command, it now reports the specific problem without also printing the full help output.

The short flags -d, -s, and -m are current CLI options for database, server, and model arguments. In the previous version, these same flags could be treated as older Tabular Editor 2 command-line syntax. In 0.6.0, they are handled as current CLI options unless older TE2-style syntax is used explicitly.

We also adjusted two existing commands for consistency:

  • te connect -s MyWorkspace -d MyModel now connects to the same server and database as te connect MyWorkspace MyModel. The -s and -d flags are optional.
  • te save -o <path> now picks the output format from <path> itself instead of reusing the source model’s format. For example -o MyModel.bim writes to a .bim file, while -o MyModel/database.json writes to the folder-based database.json format.

Better scripting with interactive mode

The CLI now enters interactive mode when you run bare te, without a command or option. This keeps the default terminal behavior close to the main use case for interactive mode: running several commands in one session. This also makes double-clicking te.exe less confusing on Windows: it now opens in interactive mode instead of immediately exiting.

te interactive can now also read commands from piped input. This makes it possible to prepare a short list of commands and pass them straight to the interactive mode to hit the ground running.

type check-names.txt | te interactive --no-banner --echo c:/spaceparts-co

Lines sent into te interactive that start with # are treated as comments. This means explanatory comments in command lists or scripts piped into interactive mode will not crash the run.

The new flags for te interactive control how interactive mode behaves when commands are piped in. This is useful when you want repeatable terminal output, readable logs, or a script that stops as soon as one command fails:

  • --no-banner hides our beautiful ASCII welcome banner.
  • --echo will print each input line before it runs so the output shows which command produced each result.
  • --batch exits with a failure code on the first failed command. A script will stop when one step fails. This is the default behavior when standard input is piped.
  • --no-batch, in contrast, continues after errors. This is useful for inspection scripts where you want as much output as possible, and are aware that after evaluation things may not be in the state you expect them to be since some were allowed to fail along the way.

Everyday command improvements

Core commands are more capable in 0.6.0:

  • te ls can now list relationships with the --type relationship option.
  • te query <dax> accepts the DAX query as a positional argument without requiring the -q flag. te query "EVALUATE { COUNTROWS ( 'MyTable' ) }" just works.
  • te bpa run (Best Practice Analyzer) now also prints the rule IDs so you can pass the results along to logs or other commands with stable keys.
  • te open can now start Tabular Editor 3 without naming a model so you can choose the model to connect with in the desktop app.
  • The --serialization option of the init and save commands now accepts tmsl as an alias for bim. Both write the same TMSL/.bim JSON format.
  • te init with the --output-format csv option now really returns CSV instead of plain text.
  • te add MyTable -t Table --save (adding an empty table) now works even when the model is live in Power BI Desktop or the Power BI service. A live model won’t accept a table with no data source, so the CLI now attaches a blank Power Query (M) placeholder automatically as an empty shell you can fill later, rather than failing. Tabular Editor 3 already did this, now the CLI does too.

Output and help cleanup

We polished what the CLI prints and shows in its built-in help:

  • Redirecting output to file with te vertipaq > out.txt no longer runs out of memory.
  • te vertipaq output written to file will have tables at full width instead of squeezed into narrow columns.
  • Each command’s --help now also lists the global flags that work with every command.
  • te help now shows the same overview as te --help. Either form works.
  • te diff --help now spells out the model formats it can compare, i.e., TMDL folder, .bim files database.json folder and .SemanticModel folder.
  • If you try to run te vertipaq on a table or column that’s not in the model, the error now says what wasn’t found and hints at what’s available.

Update checklist

  • If you use te init or te save with the option --serialization te-folder, update it to use --serialization database.json instead.
  • Test existing folder-format open and save workflows.
  • Review scripts that depend on exit codes or parse error text.
  • Update examples that use te save with the -o flag if they assumed the output would keep the source model’s format.

Further Reading

In conclusion

This hardening release tightens the core functioning of the CLI with predictable exit codes and more reliable format handling. Many of these improvements were a direct result of your preview feedback. Please continue sharing your experience with v0.6.0 through GitHub discussions and issues, or just drop a comment below.

Take your semantic models further with Tabular Editor.

Give Tabular Editor a spin
Plagiarism-freeScanned on July 6, 2026 Human-writtenScanned on July 6, 2026