Headless runs
synoec -p "List the open TODOs" --output-format jsongit diff | synoec -p "Review this change" --mode ask --max-turns 8synoec -p "Summarize" --json-schema '{"type":"object","properties":{"summary":{"type":"string"}}}'A headless run reads piped stdin until it closes before starting the turn, even
when you also pass a prompt. When a script or agent starts Synoec with a stdin that
stays open, add </dev/null; otherwise the run prints a notice after five seconds
and keeps waiting.
| Flag | Effect |
|---|---|
-p, --print |
Run once without the interactive terminal |
--output-format text|json|stream-json |
Output shape; stream-json needs --verbose |
--mode agent|ask |
Ask is read-only exploration |
--profile, --connection, --model, --effort, --speed |
Choose the Profile, connection and model for this run |
--max-turns <n>, --max-budget-usd <amount> |
Bound provider turns and priced spend |
--json-schema <json> |
Request strict structured output |
--tools, --allowed-tools, --disallowed-tools |
Restrict the tool catalog (deny wins) |
--permission-mode <mode> |
auto (default, approve for me), strict, acceptEdits, plan, bypassPermissions, fullAccess, dontAsk |
--allow-shell-network |
Let confined Bash use the network in auto mode for this run |
--decision-connection <name> --decision-model <id> |
Give the agent a same-Profile decision companion (Decision models) |
--attach <path>, --add-dir <path> |
Attach a file or add a filesystem scope (repeatable) |
--system-prompt, --append-system-prompt (and -file forms) |
Replace or extend the system instruction |
--no-session-persistence |
Make the session volatile |
synoec --help prints the complete list.