This example runs the built-in software-change graph in the current Git worktree, with pull-request
and merge delivery disabled.
!!! warning "The worker edits the current worktree"
Commit or stash work you want to protect, and run the command from the repository you intend to
change.
The template expects an object with a task string:
{
"task": "Add JSON output to the status command and cover it with focused tests."
}A uniform runtime applies one agent configuration to every agent node. Replace the model placeholder with an identifier accepted by the selected provider.
{
"harness": "codex",
"provider": "openai",
"model": "YOUR_MODEL_ID",
"effort": "high"
}Zeroshot passes model identifiers to the provider unchanged and does not keep its own model catalog.
For this local run, Zeroshot reuses the installed Codex CLI's login and provider configuration; no
placeholder API key or openai connection is required. A Docker or cloud run instead derives the
canonical OPENAI_API_KEY requirement and resolves it from the submission environment or the
target's connection store because it cannot inherit host login state.
--validate-only materializes the template and uniform runtime, then admits the request with its
initial input. It does not contact a target or start a run.
zeroshot run \
--title "Add JSON status output" \
--template software-change \
--input input.json \
--uniform-runtime-config runtime.json \
--validate-onlySuccessful validation writes {"valid":true}. A rejected request names the input, graph, or runtime
problem; the selected target checks connection availability later, when it receives the submission.
Remove --validate-only:
zeroshot run \
--title "Add JSON status output" \
--template software-change \
--input input.json \
--uniform-runtime-config runtime.jsonThe foreground command streams newline-delimited JSON while the run advances. Ctrl-C closes that stream without stopping the controller; another terminal can read the durable state:
zeroshot list
zeroshot status RUN_ID
zeroshot logs RUN_IDFor a graph view with node transcripts, open zeroshot ui
and select the run in Runs.
Normal completion happens when the graph reaches a terminal node. An explicit
zeroshot force-stop RUN_ID also closes the run, while engine or target failures can produce a
terminal failure result.
single-worker has one agent node and no independent review loop:
zeroshot template show single-workerzeroshot template show software-change prints the exact graph behind the first example as the same
GraphSpec accepted by --graph and the Python SDK.
zeroshot template show auto-research prints the fixed ten-iteration research graph. It keeps
adopted, record-only, and aborted results under .zeroshot/research; add --push to a run when every
finalized iteration should be published.