Skip to main content
Start a job. evolve run is the short form of evolve job start, and both take the same options.

What to run

name[@version]
Dataset to run. Repeatable. A bare name means the active version.
glob
Include filter over task names, applied to every dataset. Repeatable.
glob
Exclude filter over task names, applied to every dataset. Repeatable.
n
Cap the task count of each dataset after the filters.
name[@version]
Agent, built-in or registered.
name
Model. Repeatable; each model is one arm.
n
default:"1"
Attempts per task and arm.
n
default:"4"
Parallel trials, 1 to 150.
provider
default:"daytona"
Sandbox provider: e2b, daytona or modal.
name
User-facing label. Generated by the server when omitted.

The arm

Each of these applies to every arm of the job.
value
Reasoning effort for every arm, applied verbatim. The values each harness accepts are on the models page and in the capability document. An agent that cannot honor the value is refused, never silently skipped.
name
Named settings preset for every arm: no-internet turns the vendor’s server-side web tools off, pinned-context fixes the context window at 200000 tokens. Only claude and codex take one; a preset wins over --ak config where they disagree. An unknown name is refused with invalid_input, a preset the agent cannot guarantee with agent_preset_unsupported.
key=value
Agent kwarg for every arm, as key=value, repeatable. The delivered key is config: --ak 'config=<path|inline JSON>' becomes the harness’s native settings file, your document as the base and the platform’s routing on top; a path is read locally, as JSON or as TOML for a Codex config. Only claude and codex take a config. A key other than config is refused with agent_kwarg_unsupported, a config on another harness with agent_config_unsupported, and a key touching billing, base URL, routing or env with agent_config_key_refused.
ref | path
Skill for every agent arm. Repeatable. Accepts skills.sh/<owner>/<repo>[/<skill>], org/repo[@ref], an https git URL, upload:<id>, name:<skill-name> (your moving name pointer, resolved server-side), or a local folder, which is uploaded first and then referenced; --print-config still shows the path you typed.
KEY=VALUE
Environment for every verifier run. Repeatable. The server honors exactly REWARDKIT_JUDGE and REWARDKIT_MODEL, rewardkit’s judge override, and refuses any other key.
NAME[@LABEL][=ENVNAME]
Attach one of your stored env secrets to every agent run. Repeatable. NAME is the stored secret’s name.@LABEL picks a labeled row; omitted, the default row or the only row, and several labels with no default is refused as ambiguous. =ENVNAME renames the env var inside the sandbox. References only: the value never rides the command line or the wire.
NAME[@LABEL]:DELIVERY=VALUE
Save VALUE into your vault as an env secret and attach it to this job in one step. Repeatable. DELIVERY is brokered or direct and sits before =, so everything after the first = is the value, byte for byte. @LABEL defaults to default.Restating an existing secret exactly attaches it, so re-running the same command converges; a different value or delivery is refused as secret_exists. The job stores only the reference.

Spend and retries

usd
Model-spend cap for each trial. Defaults to the server’s, $200.
n
Max automatic retries per trial on infrastructure errors. Defaults to 2; 0 turns retries off. Each attempt carries the full trial cap. Over a -c file it overrides only its own field of retry.
exception
Exception types to retry on. Repeatable. The names are AgentAuthenticationError (a gateway credential refusal), ModelNotFoundError (a model that never served) and InfrastructureError (everything else). Defaults to everything --retry-exclude admits.
exception
Exception types not to retry on. Repeatable, and it wins over --retry-include. Defaults to the platform’s non-retryable set; an explicit null in a -c file’s retry turns exclusions off entirely.

Embedded analysis

Analyze each trial’s trace server-side as it settles. Cancelled trials are skipped. Bare, it uses the platform’s analyze model, rubric and prompt.
name
Model the analyzer runs. Must be on the claude roster. Implies --analyze.
path
Rubric file for the analyzer: TOML, YAML or JSON in the {criteria} shape. Implies --analyze.
path
Prompt file for the analyzer. Replaces the built-in prompt. Implies --analyze.
provider
Sandbox provider the analyzer runs on. Defaults to the platform’s analysis default. Implies --analyze.
value
Reasoning effort the analyzer runs at. Defaults to the per-model default: high on openrouter/deepseek/deepseek-v4.1-flash, max on glm-5.3-flash. Implies --analyze.

Timeouts

x
default:"1.0"
Multiplier for task timeouts, any finite number above 0; below 1 shrinks. It multiplies each task’s declared timeouts for this job only; the task is never rewritten. A product past 2,147,483,647 ms is refused at create. Resumed and retried jobs inherit the multipliers.
x
Multiplier for the agent execution timeout. Overrides --timeout-multiplier.
x
Multiplier for the verifier timeout. Overrides --timeout-multiplier.
x
Multiplier for the agent setup timeout. Overrides --timeout-multiplier.
x
Multiplier for the environment build timeout. Overrides --timeout-multiplier.

Config file and output

path
Job config file, YAML or JSON with the same field names jobs().start() takes. Explicit flags override its fields one at a time, inside the retry and analyze objects too. The file may be partial: -d and -a/-m can supply what it omits, but a selector inside it needs name and an arm needs name and model_name.YAML is read with the 1.1 schema (yes and on are booleans, 012 is octal), and a duplicate key, a second document or an unknown tag refuse with a line number. The body is checked before any request: an unknown key is refused by name, a string must be a string (quote version: "1.10"), n_attempts and n_tasks are at least 1, n_concurrent_trials is 1 to 150, job_name is at most 200 characters. A bare date or .inf is refused rather than rewritten.
Print the resolved job body as JSON and exit without running.
Stream events until the job finishes.
With --watch: suppress the event log and print the final block only.
Accepted for compatibility. Hosted runs have no prompt to confirm.

Global options

Machine-readable JSON output.
key
API key. Defaults to $EVOLVE_API_KEY.
url
API base URL. Defaults to the Evolve dashboard API.