Command Syntax
Arguments
Path to the workflow definition file. If not provided, Symphony looks for
WORKFLOW.md in the current directory.The path will be expanded to an absolute path automatically.Example:Options
Required Flag
Acknowledgement flag that must be provided to run Symphony.This flag confirms that you understand:
- Symphony is an engineering preview
- Codex will run without guardrails
- SymphonyElixir is not a supported product
Configuration Flags
Sets the root directory for Symphony log files.The path will be expanded to an absolute path and trimmed of whitespace. Empty strings are not allowed.This configures the
:log_file application environment variable for :symphony_elixir.If
--logs-root is provided multiple times, the last value wins.Overrides the default server port for the Symphony HTTP server.Must be a non-negative integer (0-65535). The value is validated before being set.This configures the
:server_port_override application environment variable for :symphony_elixir.If
--port is provided multiple times, the last value wins.Usage Examples
Default Workflow
Run withWORKFLOW.md in the current directory:
Custom Workflow File
Run with a specific workflow file:Full Configuration
Combine all options:Error Handling
Missing Acknowledgement Flag
If you forget the required acknowledgement flag:Workflow File Not Found
If the specified workflow file doesn’t exist:Invalid Usage
If you provide invalid arguments:Application Start Failure
If Symphony fails to start:Exit Codes
Normal shutdown - Symphony supervisor terminated successfully
Error occurred:
- Missing required acknowledgement flag
- Workflow file not found
- Invalid command-line arguments
- Application failed to start
- Supervisor crashed or terminated abnormally
Implementation Details
Option Parsing
Symphony uses strict option parsing with the following switches:Workflow Path Expansion
The workflow path is expanded usingPath.expand/1 before validation:
- Relative paths are resolved from the current working directory
~is expanded to the user’s home directory- The expanded path must point to a regular file
Configuration Application
CLI options configure the Elixir application environment:| CLI Flag | Application Config | Module |
|---|---|---|
--logs-root | :symphony_elixir, :log_file | SymphonyElixir.LogFile |
--port | :symphony_elixir, :server_port_override | SymphonyElixir.CLI |
| Workflow path | Set via SymphonyElixir.Workflow | SymphonyElixir.Workflow |
Process Lifecycle
After successful startup:- Symphony monitors the
SymphonyElixir.Supervisorprocess - Waits for the supervisor to terminate
- Exits with appropriate code based on termination reason:
:normal→ exit code 0- Any other reason → exit code 1