Skip to content

Headless runs

Terminal window
synoec -p "List the open TODOs" --output-format json
git diff | synoec -p "Review this change" --mode ask --max-turns 8
synoec -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.