Configure Modeler CLI

Modeler CLI uses the same syside.toml configuration as Modeler. The configuration file can be provided explicitly via --config <FILE> or inferred through Config File Discovery.

Config File Discovery

A single syside.toml serves an entire project: every command run in or below its directory finds the file automatically. The lookup order is as follows (highest wins):

  1. --config <FILE> on the command line

  2. A syside.toml found by searching upward from the current directory, up to and including the first directory that contains .git or sysand-lock.toml

  3. Built-in defaults

Note

Settings from syside.user.toml are merged on top of syside.toml. When both files define the same setting, the user file wins.

Shared Settings

The check and format commands behave exactly as Syside Modeler and read the same settings (e.g., [format] and [lint]). See Settings for details.

Visualization Settings

All visualization settings live under [viz]. Command-line flags override configuration values. See viz command for flag descriptions and which setting each flag overrides.

Some settings are set separately for each view kind. <kind> in a setting name stands for one of the following: general, interconnection, action_flow, state_transition, or sequence.

Group

Setting

Default

Meaning

[viz.style]

theme

light

Base color theme

group.<name>

Custom color groups

[viz.layout]

render_style.<kind>

nested

Layout style per view kind

view.default

general

View kind for viz element

[viz.expose]

mode

subtree

Filtered-element mapping strategy

[viz.compartments]

max_entries

-1

Per-compartment row cap

show_inherited_rows

true

Inherited compartment rows

show_annotation_rows

true

Annotation compartment rows

[viz.labels]

show_fork_join_labels

true

Labels on fork and join bars

show_decide_merge_labels

true

Labels on decision and merge diamonds

[viz.filters.<kind>]

show_node_heritage_edges

true

Specialization edges to node ancestors

show_port_heritage_edges

false

Specialization edges to port ancestors

show_inherited_nodes

true

Inherited-member nodes

show_attributes_as

Attribute rendering

[viz.render]

zoom_level

3.0

Raster scale multiplier

max_raster_memory_mb

256

Memory ceiling per raster image

Themes

Diagrams can be styled using four built-in themes: light, dark, light_mono, and dark_mono. Each option can be selected via viz.style.theme setting or the -t/--theme flag.

Custom Colors

Element node colors can be further customized using style groups. Group colors apply on top of the selected theme and always win. Each [viz.style.group.<name>] entry colors a specified set of element types, e.g.

[viz.style.group.part_usage]
members      = ["PartUsage"]
fill_header  = "#88b7e3ff"
fill_body    = "#f7f9ffff"
text_keyword = "#1f4373ff"

Rules:

  • members is required and non-empty. Entries are SysML metaclass names (PartUsage, PartDefinition, ActionUsage, RequirementDefinition, etc.)

  • Each group sets one to five of the following style settings:

    • fill_header - background of the node header

    • fill_body - background of the node body

    • stroke - node border line

    • text_primary - regular text (names and compartment rows)

    • text_keyword - keyword text (e.g., part def in the header)

  • Groups apply in declaration order. When several groups list the same type, later groups overwrite earlier ones attribute by attribute

  • Group names are free-form and only serve readability

  • Groups cannot be nested inside each other

Colors use hexadecimal notation: #rrggbb or #rrggbbaa (where aa is transparency).

The declaration order makes a broad-then-narrow palette possible: a first group sets an attribute for many types, and narrow groups after it override specific types.

[viz.style.group.uniform]
members = ["PartUsage", "PartDefinition", "ActionUsage", "ActionDefinition"]
stroke  = "#2c2c2eff"

[viz.style.group.parts]
members     = ["PartUsage", "PartDefinition"]
fill_header = "#88b7e3ff"
fill_body   = "#f7f9ffff"

[viz.style.group.actions]
members     = ["ActionUsage", "ActionDefinition"]
fill_header = "#80d6a7ff"
fill_body   = "#f6fcf8ff"

Settings Reference

viz.style.theme

Base color theme for all diagrams.

Values: light | dark | light_mono | dark_mono

Default: light

[viz.style]
theme = "dark"

viz.layout.render_style.<kind>

Default layout style, set separately for each view kind.

For viz view, a view’s render keyword and the -r flag take precedence over this setting.

Values: nested | tree

Default: nested

[viz.layout.render_style]
general = "tree"

viz.layout.view.default

View kind used by viz element when --view is not passed.

Values: general | interconnection | action_flow | state_transition | sequence

Default: general

[viz.layout.view]
default = "interconnection"

viz.expose.mode

How view filters interact with exposed elements. See expose modes for the semantics.

Values: subtree | promoted | flat

Default: subtree

[viz.expose]
mode = "promoted"

viz.compartments.max_entries

Per-compartment row cap: -1 shows all rows, 0 hides feature compartments, N shows the first N rows. Annotation compartments are unaffected by this setting.

Values: -1 | 0 | N

Default: -1

[viz.compartments]
max_entries = 5

viz.compartments.show_inherited_rows

Hides inherited (^) compartment rows when set to false.

Values: true | false

Default: true

[viz.compartments]
show_inherited_rows = false

viz.compartments.show_annotation_rows

Hides annotation (documentation and metadata) compartment rows when set to false.

Values: true | false

Default: true

[viz.compartments]
show_annotation_rows = false

viz.labels.show_fork_join_labels

Hides fork and join bar name labels when set to false.

Values: true | false

Default: true

[viz.labels]
show_fork_join_labels = false

viz.labels.show_decide_merge_labels

Hides decision and merge element name labels when set to false.

Values: true | false

Default: true

[viz.labels]
show_decide_merge_labels = false

viz.filters.<kind>.show_node_heritage_edges

Draws specialization edges to node ancestors. Set separately for each view kind.

Values: true | false

Default: true

[viz.filters.general]
show_node_heritage_edges = false

viz.filters.<kind>.show_port_heritage_edges

Draws specialization edges to port ancestors. Set separately for each view kind.

Values: true | false

Default: false

[viz.filters.interconnection]
show_port_heritage_edges = true

viz.filters.<kind>.show_inherited_nodes

Shows inherited member nodes. Set separately for each view kind.

Values: true | false

Default: true

[viz.filters.general]
show_inherited_nodes = false

viz.filters.<kind>.show_attributes_as

Defines how attribute usages are rendered. By default, attributes are rendered as compartments in the nested layout and as nodes in the tree layout. Set separately for each view kind.

Values: nodes | compartments | hidden

Default: unset

[viz.filters.state_transition]
show_attributes_as = "hidden"

viz.render.zoom_level

Sets raster scale multiplier. Applies to PNG and JPEG output only.

Values: number greater than 0

Default: 3.0

[viz.render]
zoom_level = 1.5

viz.render.max_raster_memory_mb

Sets memory ceiling per rasterized image (MB). Oversized diagrams are automatically downscaled to fit.

Values: number greater than 0

Default: 256

[viz.render]
max_raster_memory_mb = 512