oz0 run

Start a job for an agent and wait for its answer.

For: Operators and developers looking up a command.

Start a job for an agent and wait for its answer. AGENT is the agent's or flow's name, or its address, <plugin>/<agent> (the server checks that the plugin defines it). INPUT is text, or JSON for agents with an input schema; "-" reads it from stdin. What the job and each agent it delegated to cost goes to stderr.

While the job runs, what its agents write and the tools they call stream to stderr (--quiet stops that). Jobs are durable: if you stop waiting, the job keeps running; follow it with job watch or job get.

With --continue JOB or --conversation ID the job is a conversation's next turn: the agent gets the earlier turns with your message. Then AGENT may be left out, and the agent of the latest turn answers: run --continue job-1 "and in Paris?". chat AGENT does the same in a loop. Continuing a turn that is not its conversation's latest forks it: the job starts a new conversation that goes on from that turn.

FILE is a path that exists, written as a path, which tells it from an agent's name: an agent in one file (./triage.md, as agent new writes it) or a plugin's folder written as ./triage or triage/ (a bare word is an agent's name even where a folder of that name exists).

It runs once on a dev server and a node of its own, which run starts and stops: the plugin is installed as dev installs it, granted what it uses in the dev tenant (--with installs those plugins from their folders first), with the environment's model keys as the dev tenant's, and its agent (or its only agent or flow) answers INPUT. To run it in your cluster, install it (plugin install ./triage.md) and run it by name.

Usage

oz0 run AGENT|FILE [INPUT] [flags]

Flags

FlagTypeDefaultDescription
--budgetfloatthe agent's limits.max_cost_usdmost the job and the jobs it delegates to may spend on LLM calls, in US dollars
--cache-dirstringdev'swith a file or a folder: where the dev node keeps uv, Python and Node.js between runs
--candidatestringrun it on this private candidate (the ID dev --server prints) instead of the installed version
--constraintstringArraya restriction the job and every job it delegates to must follow, such as --constraint "no personal data leaves the EU"; copied word for word to each child, never summarised; repeat for several (at most 20 of 500 characters)
--continuejobcontinue the conversation of this job: the new job is its next turn and gets the earlier turns
--conversationIDcontinue the conversation of this ID, or start it under this ID when it has no turn yet
--data-subjectpersona person the job is about, such as an email address: its payloads are encrypted with a key wrapped by theirs, which subject erase destroys (repeatable, at most 8)
--detachboolprint the job ID and return without waiting
--idstringjob ID (default: one the server derives from a key this run sends, so a retry is the same job); the same run again under the ID answers with its job, running or ended, and another input, agent or option under it is refused: an ended job never runs again
--jsonboolprint JSON instead of a table
--node-binarystringas dev finds itwith a file or a folder: orchestrator-zero-node to run
--purposestringwhat the job is for, by the tenant's purpose ID: one of the purposes the agent's definition declares
--quiet (-q)booldo not stream what the agents do; print only the answer and the cost
--runtime-bundlestringas dev finds itwith a file or a folder: the dev node's runtime bundle
--tagstringstag the job, such as --tag incident-42; repeat for several; job search tag:<tag> finds them
--teamstringyour team, the first by name when you have severalteam the job is charged to, for quotas
--tenantstringdefaulttenant to run in
--timeoutdurationlongest the job may run, on top of the agent's own limits
--waitdurationuntil the job endslongest to wait for the answer
--withstringArraywith a file or a folder: a plugin it uses, from this folder, installed on the dev server first; repeatable

Inherited flags

FlagTypeDefaultDescription
--contextstring$OZ0_CONTEXT or <config dir>/orchestrator-zero/context.jsonCLI context file written by server init
--log-levelstringinfolog level: debug, info, warn or error

See all oz0 commands and the global flags.

On this page
Copyright © 2026