Command Line Interface
The CLI is self-documenting. Run specforge --help to see all available commands, and specforge <command> --help for detailed usage of any command.
$ specforge --help
Usage: specforge COMMAND [--verbose VERBOSITY]
Available commands:
parse Check if the Lilo files in a project parse correctly.
check Typecheck the Lilo files in a project.
format Format the Lilo files in a project.
monitor Monitor a spec on a data file, producing an output signal.
eval Evaluate a spec at the first timestamp of a data file.
streammon Monitor a spec in streaming mode from standard input.
export Export a spec to another formalism (Lilo, JSON, RTAMT).
schema Generate a schema or data template for a system.
init Initialize a new Lilo project.
flatten Flatten hierarchical components in a system.
serve Start the SpecForge server (for the VS Code extension / Python SDK).
Record encoding
Several commands accept a RECORD_ENCODING subcommand (flat or nested) that controls how record-typed signals and parameters are represented. The flat encoding accepts -s / --separator SEPARATOR to set the field separator (default: "_").
When no encoding is specified, the default depends on the file format: flat for CSV, nested for JSON/JSONL.
See Record encoding in the Data Files chapter for a full explanation with examples.