Skip to content

TethysL CLI

The TethysL Command-Line Interface (CLI) is the core program that supports all major operations on .tethysl script files, including: full validation, translation to XML, TethysL source reformatting, and markdown page generation. It also features an LSP Language Server, which supports smart editing capabilities for LSP enabled editors and IDEs. (Currently, only VS Code is supported, but we plan to enable other editors in the future as needed.)

The TethysL CLI program is available from the Install page.


The general usage of the program is displayed with the --help option:

$ tethysl --help

TethysL System 2.0.5

tethysl - TethysL CLI

  tethysl [-h|--help] [SUBCOMMAND] [OPTION]...

      --log  <level>   Minimum logging level (default, info)
  -h, --help           Show help message
  -v, --version        Show version of this program

  compile      Compile a .tethysl source file
  prettify     Prettify .tethysl sources
  markdown     Generate markdown from .tethysl sources
  info         Show base information extracted from lrauv-application files
  lsp-server   Run TethysL LSP server

For more details and all other tricks, consult the documentation.

As can be seen, the program comprises a number of subcommands. You can use --help after a subcommand to get more details about the particular subcommand.

LRAUV Application Resources

A representation of relevant LRAUV application resources (including behaviors, settings, units, etc.) are used by the TethysL CLI program to support its functionality, in particular, to properly validate mission scripts.

For convenience, a version of such representation is embedded in the TethysL CLI program itself. The embedded resources (which are captured at time of creating the distribution) are mainly intended to facilitate the use of the tool even when a local LRAUV application codebase is not available on the system, for example, to still be able to use the CLI under a clone of the lrauv-mission repository.

On the other hand, if the LRAUV application codebase is available on the system, the CLI can be instructed to use it to fetch the necessary information instead of using the embedded resources. There are two possible ways to indicate this location:

  • Via option --lrauv, accepted by each of the subcommands;
  • Via environment variable LRAUV_APP_DIR.



This subcommand performs full validation of a given .tethysl script.

As an example, the following command:

tethysl compile Missions/_examples/WithInsertExample.tethysl

will compile and, if valid, generate the corresponding XML version Missions/_examples/WithInsertExample.tx.


Although being a regular XML file, the associated .tx file extension has been designated to denote a "TethysL compiled XML version." These .tx mission files will be recognized and handled appropriately by the LRAUV application for loading and execution.

Run tethysl compile --help for more details.


This subcommand re-formats the given set of .tethysl script files.

Run tethysl prettify --help for more details.


This subcommand generates markdown files of various kinds, including mission pages from a given set of .tethysl script files, as well as behavior, unit, and universal pages (with corresponding information extracted from relevant lrauv-application resources).

Run tethysl markdown --help for more details.


This subcommand shows the information (extracted from LRAUV application resources) that the CLI uses to support most of its functionality.

Run tethysl info --help for more details.


The lsp-server subcommand, only to be invoked automatically by LSP clients, launches the LSP server, which supports smart editing features, see the VSCode section.