Skip to main content

What is the Symphony CLI?

The Symphony CLI is an escript entrypoint that allows you to run Symphony with an explicit WORKFLOW.md path. It provides a command-line interface for starting the Symphony orchestration engine with configurable options for logging, server ports, and workflow files.

Basic Usage

The Symphony CLI accepts an optional workflow file path and several configuration flags:
symphony [--logs-root <path>] [--port <port>] [path-to-WORKFLOW.md]
If no workflow path is provided, Symphony will look for WORKFLOW.md in the current directory.

Simple Example

Run Symphony with the default WORKFLOW.md in the current directory:
symphony --i-understand-that-this-will-be-running-without-the-usual-guardrails

Custom Workflow Path

Run Symphony with a specific workflow file:
symphony --i-understand-that-this-will-be-running-without-the-usual-guardrails ./workflows/my-workflow.md

With Custom Configuration

Combine multiple options to customize your Symphony instance:
symphony --logs-root ./logs --port 4000 --i-understand-that-this-will-be-running-without-the-usual-guardrails ./workflows/production.md

Required Acknowledgement

Symphony requires explicit acknowledgement to run. You must include the --i-understand-that-this-will-be-running-without-the-usual-guardrails flag.
This requirement exists because:
  • Symphony is a low-key engineering preview
  • Codex will run without any guardrails
  • SymphonyElixir is not a supported product and is presented as-is
Without this flag, Symphony will display an acknowledgement banner and exit:
╭────────────────────────────────────────────────────────────────────────────╮
│                                                                            │
│ This Symphony implementation is a low key engineering preview.             │
│ Codex will run without any guardrails.                                     │
│ SymphonyElixir is not a supported product and is presented as-is.          │
│ To proceed, start with `--i-understand-that-this-will-be-running-without-  │
│ the-usual-guardrails` CLI argument                                         │
│                                                                            │
╰────────────────────────────────────────────────────────────────────────────╯

Workflow File Resolution

When you provide a workflow path, Symphony:
  1. Expands the path to an absolute path using Path.expand/1
  2. Validates that the file exists and is a regular file
  3. Sets the workflow file path in the application configuration
  4. Starts the Symphony application with the configured workflow
If the workflow file is not found, Symphony will exit with an error message: Workflow file not found: /absolute/path/to/file

Application Startup

Once configured, Symphony:
  1. Starts all required Elixir applications
  2. Initializes the workflow engine with your WORKFLOW.md configuration
  3. Runs until the Symphony supervisor process terminates
  4. Exits with code 0 on normal shutdown, or code 1 on errors

Next Steps

Build docs developers (and LLMs) love