CLI Usage
Prompts and output
zo joins positional arguments into one prompt, so quoting is optional unless the shell needs it:
zo What does cargo check do
zo 'Explain `cargo check` in two sentences'Text responses stream progressively. Terminals receive Markdown formatting and syntax-highlighted code; redirected stdout uses plain text:
zo 'Write a release note' > RELEASE_NOTE.txtSTDIN pipelines
Piped STDIN is appended after file references and prompt text:
git diff | zo 'Review these changes for bugs'
cargo test 2>&1 | zo /sonnet 'Explain the failures'
cat data.csv | zo @schema.json 'Check this data against the schema'STDIN and referenced files must be UTF-8. The prompt, STDIN, and referenced contents share the per-turn byte limit: 1 MiB by default. Oversized input is rejected rather than truncated.
Web search
--web adds OpenRouter's server-side web-search tool to text and chat requests:
zo --web 'What changed in the latest stable Rust release?'
zo --chat --web 'Help me research terminal UI libraries'Set web = true in the config to enable it by default. Web search cannot be combined with image mode.
Inspecting requests and tools
zo --verbose --files read 'Inspect this project'
zo --debug /sonnet @Cargo.toml 'Explain these dependencies'--verboseprints the resolved model and compact tool calls as they happen.--debugpreviews the resolved request and asks before sending; later tool calls include their full arguments.--debugand--non-interactiveconflict because debug requires confirmation.
Automation and safety controls
--accept-writesor-yapproves existing-file overwrites and edits without prompting.--non-interactivedisables prompts; anything still requiring approval is denied.--hiddenremoves the extra hidden-path gate for file/output tools, image output, and shell checks; normal write approvals and shell policies still apply.--max-input-bytesand--max-session-bytesoverride the configured byte limits for one invocation.
For unattended edits, both automation flags are normally needed:
zo --files write --non-interactive --accept-writes 'Apply the requested refactor'Options
| Option | Purpose |
|---|---|
-m, --model NAME | Override model selection |
--reasoning-effort LEVEL | Set auto, max, xhigh, high, medium, low, minimal, or none |
-c, --chat | Start a multi-turn session |
--image FILE | Generate one image at FILE |
--files read|write | Enable workspace file tools |
--shell | Enable shell tools |
--web | Enable server-side web search |
--policies NAME[,NAME] | Select shell policy files; requires --shell |
-y, --accept-writes | Auto-approve overwrites and edits |
--non-interactive | Deny anything that would prompt |
--hidden | Permit hidden tool/output paths |
-v, --verbose | Show model resolution and compact tool calls |
-d, --debug | Preview the request and confirm before sending |
--max-input-bytes BYTES | Override the aggregate turn-input limit |
--max-session-bytes BYTES | Override the retained-session limit |
Run zo --help for the authoritative command synopsis and option conflicts.
Actions
zo +list-models
zo +init-configActions use exact names and must stand alone. Running zo with no arguments also displays help.
Models & Customization → · Files & Workspace Tools → · Chat →