Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.