ziro, which is the same entry point as
python -m app.main. Everything else is a module you run with python -m.
The main entry point
Subcommands
ziro setup and ziro flavour strip their subcommand and keep parsing the normal
flags, so ziro setup --theme nord works.Flags
All of these apply toziro and python -m app.main equally.
User ID. Scopes long-term memory. Omit it to reuse the last-used user, or to get
the first-run picker.
Agent ID to run. Omit it to pick interactively. An agent that is disabled, or that
falls outside the active flavour, is rejected or corrected to the flavour’s
default agent.
Flavour to launch. Scopes which agents are visible, which threads exist, and which
shared memory is used. Omit it to pick interactively when several are configured,
or to resume the last one. Bundled flavours are
chat, engineering, research,
and safe.Thread ID to resume a previous session. Alias:
--resume.Force the plain rich REPL instead of the Textual TUI.
Enable push-to-talk voice I/O. Requires the agent’s
voice_policy.yaml to have
enabled: true. Implies the rich REPL.Headless: run one turn and print the reply, then exit.
-p "message" sends that
message; a bare -p reads the message from stdin.With
-p, emit the chat_once JSON line instead of plain text.Path to an image to attach to the first message. Repeatable. A text-only model
receives a graceful notice instead of the image.
UI theme name for this launch, overriding the saved preference. Bundled themes are
ziro (the default), carbon, nord, and gruvbox.Seed the reasoning effort for this session:
high, medium, low, or off.
Change it live with /think.Which front end you get
The entry point picks one of three front ends. The rule is short:1
-p is present
Run exactly one turn headless, print the reply (or the JSON line with
--json), and exit. Textual is never imported. The wizard and pickers never
run: the user is resolved from --user or the last-used user, and a missing
user or missing API key fails fast to stderr.2
A TTY with Textual available
Launch the Textual TUI. The shell paints in roughly 1.6 seconds and is usable
immediately; anything you type before the engine finishes building is queued
and runs in order once it is ready.
3
Anything else
Fall back to the rich REPL. This is also what
--no-tui and --voice force,
and what you get when Textual is not installed or stdout is not a terminal.The TUI is import-guarded. No Textual, or no TTY, degrades to the REPL rather than
failing.
Examples
Other entry points
Supporting commands
Dev and prod modes
The runtime mode is selected by one environment variable, not a flag.
See environment variables for the full list.
Next steps
Slash commands
Everything you can do once a session is running.
Headless runs
The
-p and --json contracts in detail.Environment
Keys, providers, model tiers, and the runtime switches.