Modeler CLI
Syside Modeler CLI is a standalone command-line tool for validating and formatting SysML v2 models. It provides fast, lightweight model checking without requiring VS Code or any editor, making it ideal for CI/CD pipelines, git hooks, and team workflows.
Prerequisites
To run and use Syside Modeler CLI, you need:
Valid Modeler license (available on Sensmetry.com or directly at syside@sensmetry.com).
System requirements: compatible with Windows, macOS, and Linux
Download CLI
Download Syside Modeler CLI for your platform:
Install CLI
Option A: Manual Installation
Extract the
.zipfile to%LOCALAPPDATA%\Programs\SysideAdd to PATH via Environment Variables:
Open “Environment Variables” (search in Start menu)
Under “User variables”, select “Path” and click “Edit”
Click “New” and add
%LOCALAPPDATA%\Programs\SysideClick “OK” to save
Option B: PowerShell Installation
Run these commands in PowerShell:
# Create directory and extract
mkdir "$env:LOCALAPPDATA\Programs\Syside" -Force
tar -xf syside-0.8.1-x86_64-windows.zip -C "$env:LOCALAPPDATA\Programs\Syside"
# Add to PATH
$currentPath = [Environment]::GetEnvironmentVariable("Path", "User")
$newPath = "$env:LOCALAPPDATA\Programs\Syside"
if ($currentPath -notlike "*$newPath*") {
[Environment]::SetEnvironmentVariable("Path", "$currentPath;$newPath", "User")
}
Note
Restart your terminal after installation for PATH changes to take effect.
Version History
v0.8.2: Syside bundle was renamed from
SysIDE.apptoSyside.app.
Open the downloaded
.dmgfile and dragSyside.appto~/Applications/Create a symlink to run
sysidefrom anywhere:mkdir -p ~/.local/bin ln -s ~/Applications/Syside.app/Contents/MacOS/syside ~/.local/bin/syside
Add
~/.local/binto your PATH by adding this line to~/.zshrc:export PATH="$HOME/.local/bin:$PATH"
Reload your shell configuration:
source ~/.zshrc
Extract the downloaded
.tar.xzfile to~/.local:mkdir -p ~/.local tar -xJf syside-<version>-x86_64-linux-glibc.tar.xz --directory ~/.local
Add
~/.local/binto your PATH by adding this line to~/.bashrc:export PATH="$HOME/.local/bin:$PATH"
Reload your shell configuration:
source ~/.bashrc
Verify Installation
Once Syside Modeler CLI is installed, quickly verify it is working as expected.
Open a terminal
Run the following command:
syside --versionYou should see output similar to:
0.8.1 (4bb41581f62d5fe422a57c1c381aa42cb41203b3)
Commands
Command |
Description |
|---|---|
Validate models for semantic errors and warnings |
|
Format SysML v2 models according to a consistent style |
Check command
Validates models for semantic errors and warnings.
Basic Usage
Validate specific files
syside check /path/to/analyzed_model.sysml /path/to/analyzed_model_2.sysml
Validate all files in current directory recursively
syside checkNote
When using
syside checkwithout explicitly listing out the files, Syside ignores hidden files and files from hidden directories (starting with., e.g..venvor.git). To analyze files from these directories, list them explicitly.
Output
If Syside does not find any errors or warnings, there will be no output. If Syside does find anything, the output will look similar to this:
/path/to/analyzed_model.sysml:5:28: error (type-error): 'Non-Conforming Types 1'::a does not conform to ScalarValues::String
5 | attribute b : String = a;
| ^
/path/to/analyzed_model.sysml:12:30: error (type-error): ScalarValues::Integer does not conform to ScalarValues::Positive
12 | attribute b : Positive = -42;
| ^^^
/path/to/analyzed_model.sysml:30:27: error (type-error): Collect::A does not conform to Collect::B
30 | attribute b : B [*] = (1..10)->collect { in attribute x : Positive; new A(x) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/path/to/analyzed_model.sysml:38:34: error (type-error): ScalarValues::Integer does not conform to ScalarValues::Positive
38 | attribute b : Positive [*] = (-1..10)->select { true };
| ^^^^^^^^^^^^^^^^^^^^^^^^^
The output contains the source file path, line number, character number, diagnostic code, message, and code snippet.
Available Options
Option |
Description |
|---|---|
|
Display the help message with all available flags and short descriptions |
|
Display the version number of Syside |
|
The level of concurrency to use. Allowed values depend on the machine Syside is used on: from 1 to the number of logical threads. Default value: number of logical threads divided by 2 |
|
The path to the |
|
Additional paths to be included as external libraries for analysis |
|
Paths or files that should be omitted from analysis |
|
Choose which files should be analyzed. Options: |
|
Suppress main output |
|
Print all the files analyzed and the number of diagnostics found in each |
|
Print all the files analyzed and how long the analysis took for each file. Needs
to be combined with |
|
Controls whether to colorize the output. Options: |
|
Output results of |
|
Controls whether to send automatic crash reports or not. More information at Telemetry. |
Usage Examples
Run validation in CI/CD pipeline:
syside check --quiet
if [ $? -ne 0 ]; then
echo "Model validation failed"
exit 1
fi
Format command
Formats SysML v2 models according to a consistent style. Useful when working in a team and using version control systems to prevent whitespace-only changes in history.
Basic Usage
Format specific files
syside format /path/to/formatted_model.sysml /path/to/formatted_model_2.sysml
Format all files in current directory recursively
syside formatNote
When using
syside formatwithout explicitly listing out the files, Syside ignores hidden files and files from hidden directories (starting with., e.g..venvor.git). To format files from these directories, either list them explicitly or use--includeCLI option.
Output
After running the format command, you should see output similar to:
$ syside format
/path/to/formatted_model.sysml: formatted
1 file reformatted, 0 files left unchanged
The output shows the path of the file(s) that were reformatted, as well as the number of files that did not need reformatting.
Check Mode
The syside format --check command can act as a quality gate without editing the
files:
If none of the files need reformatting, Syside outputs
<num> file[s] already formattedand exits with code 0 (success)If at least one file needs reformatting, Syside exits with code 1 (failure) and outputs:
/path/to/formatted_model.sysml: would be formatted 1 file would be reformatted, 0 files already formatted
If syntax errors are found, Syside exits with code 2 (failure)
Note
For semantic validation, use syside check command. The format command only
checks syntax errors.
Available Options
Option |
Description |
|---|---|
|
Display the help message with all available flags and short descriptions |
|
Display the version number of Syside |
|
The level of concurrency to use. Values allowed: from 1 to 8. Default value: 4 |
|
Paths or files that should be omitted from analysis |
|
Suppress main output |
|
Check whether the files can be reformatted without editing them |
|
Set the maximum acceptable line length. Default value: 100 |
|
Use tabs for indentations instead of spaces |
|
Number of spaces to use for indentation. Only applies if not using |
Usage Examples
Use in Git pre-commit hooks to prevent commits with bad formatting:
#!/bin/bash
# .git/hooks/pre-commit
syside format --check
if [ $? -ne 0 ]; then
echo "Please run 'syside format' before committing"
exit 1
fi
For more information about Git hooks, see Git documentation.
Update CLI
Syside Modeler CLI does not have a built-in updater. To update to a new version:
Download the latest version from Download CLI section above
Repeat the Install CLI steps to install the new version
Verify the update:
syside --version
Tip
Your license activation will be preserved during the update.