Commands
| Command | Purpose |
|---|---|
flow (no args) | Open the TUI on an interactive terminal; prints help on a pipe |
flow run <file|slug> ... | Execute .flow / .flow.json files or saved-template slugs; multiple targets run concurrently |
flow generate <prompt> | AI-draft a flow from text prompt; DSL to stdout. --auto runs the autonomous loop; --run / --save <name> / --out <path> post-steps |
flow validate <file> | Parse a .flow file; report the first error as path:line:col |
flow fmt <file> | Canonicalize DSL - --check (CI, non-zero if not canonical) or --write |
flow export <file|slug> | Transpile a flow into a standalone Bash / PowerShell script - --format, -o/--out, --executable, --strict |
flow ls | List saved templates |
flow nodes [--installed] | List the built-in node catalog (or installed schemes) |
flow template show|save|rm | Manage saved templates |
flow history [<id>] | Recent runs, or one run’s steps |
flow schedule list|add|rm|daemon | Manage recurring schedules; daemon runs the scheduler loop |
flow tui | The full-screen app: new → templates → run → monitor → history |
flow run
Section titled “flow run”A target that contains a / or ., or that is an existing file, loads from
disk. A .json target loads as a canonical flow graph, and anything else is
parsed as DSL. Any other target is treated as a saved-template slug. Runs are
recorded to history unless you pass --no-record.
Concurrent runs: flow run a.flow b.flow c.flow runs every target at once
on the shared core, each with its own execution id and run control. Human
output is line-prefixed with the flow name so that interleaved logs stay
attributable, and --json carries a per-event executionId. The process exits
with the worst of the runs’ codes. On an interactive terminal, a single
flow run opens the TUI monitor automatically. To stay headless, pass
--no-tui, pass --json, or pipe the output.
flow generate
Section titled “flow generate”Turns a plain-English prompt into Flow DSL on the same agentic path the desktop
drives. The generator model is picked automatically. It uses a local model if
one is loaded, otherwise it uses the first cloud provider with a key. You can
also set --provider or --model.
Generation is prompt-only. It never reads the working directory or any
local data. The natural-language plan prints to stderr. The DSL prints to
stdout, so flow generate ... > flow.flow works, or it prints to --out. The
--save <name> option stores a template, and --run executes the result.
--workspace <dir> sets the execution workspace for --run and --auto.
Shell, CLI, and filesystem nodes run there. It defaults to the launch directory
and is not a generation input.
--auto runs the autonomous loop. It generates, runs, observes failures,
and re-plans, up to a safety cap, and it stops at the first clean run. It exits
0 on convergence and 1 if the cap was hit. --json emits a final
loop-summary object.
flow export
Section titled “flow export”Transpiles a flow into a standalone Bash or PowerShell script that runs without the Flow runtime (the Flow export / Code Generator). The script preserves node ordering, retry policies, and conditional routing.
flow export my-flow.flow --format bash > run.sh && bash run.shflow export my-flow.flow --format powershell -o run.ps1The script goes to stdout, or to --out <path>. The export report goes to
stderr, and it lists the required inputs and any downgraded nodes.
--executable marks the output file runnable (chmod +x, Unix). --strict
exits non-zero if any node could not be transpiled faithfully.
When run, the script prints the flow as readable numbered steps and prompts
for any required inputs. These inputs are the ${name} placeholders used in
node config, such as paths, HLQs, and job ids, along with any {{memory.<key>}}
references that the flow does not itself produce. Each one is read into the
matching variable and expanded where it is used, and in CI you can feed the
answers on stdin. Service and cron nodes become documented manual stubs.
Flows with AI or agentic nodes cannot be exported. Model inference and
engine-enforced governance need the Flow runtime, so run those with flow run.
Cyclic flows are not exportable. The generated script does not reproduce the
runtime sandbox, including the workspace jail and env scrubbing, and it runs
with your privileges.
flow schedule
Section titled “flow schedule”Manages recurring runs for saved templates. It shares the desktop’s schedule store.
flow schedule listflow schedule add my-flow --frequency dailyflow schedule add my-flow --frequency cron --cron "0 9 * * 1-5"flow schedule add my-flow --frequency every_n_minutes --every-minutes 15flow schedule rm my-flowflow schedule daemon # run the scheduler loop hereadd takes --frequency (hourly / daily / weekly / monthly /
yearly / cron / every_n_minutes / once), plus --start (RFC3339
anchor), --timezone (IANA, default UTC), --cron, --every-minutes, and
--catchup (skip / run-once / run-all). The daemon polls on the settings
interval and fires due flows with the destructive-confirm gate off, since it
runs headless. It records each run to history, and it is the same loop that the
desktop and server run in-process. See Scheduling.
Related
Section titled “Related”- CI integration covers exit codes, NDJSON, and format checks.
- The TUI