Skip to main content
Configuration lives in one file, config.toml, at the root of your store. It is plain TOML you can read and edit - but going through px0 config gets you validation, so a typo is caught when you set the key rather than during a run at 5pm on a Friday.
set checks the value against the key’s type and allowed values before saving: px0 config unset <key> drops a stored override so it falls back to its default - not an error even if the key was never set, and the parent table is removed once it empties. px0 config get --help and px0 config set --help print the full key list.

Interactive helpers

Two settings have their own commands, because getting them wrong is expensive and worth verifying at the point of change.
Lists the harnesses px0 knows about with their PATH status, takes a model name, and actually invokes the result before saving - so a typo’d model name or a missing API key surfaces here rather than mid-workflow. It never asks for or stores a provider key; that stays with the harness CLI’s own login.
Verifies the key against the live Composio API before storing it, and detects a TLS-intercepting proxy on the way. See Connections.

Model

A known harness name (claude, gemini, pi, opencode) expands to its full command. Any other literal command works too - a wrapper script, a pinned path - and px0 appends the prompt as the final argument.

Brain

Reindex after changing brain.path, brain.private_folder, or brain.ignore. px0 init writes brain.path as an absolute path under the store it just created. See The brain.

Output

A workflow’s output.path is always resolved inside this directory, and a path that tries to escape it is rejected. See Workflow files.

Connectors

ca_bundle applies to every outbound request px0 makes, not just Composio - a brain fetch behind a TLS-inspecting proxy uses it too. An explicit SSL_CERT_FILE always wins over it, and px0 never silently disables verification.

Tools

See Tools.

Notify

What happens when a scheduled run fails. A workflow’s own on_failure block overrides all three. See Status.

Runs

How a failed run is retried. A workflow’s own retry block overrides both. Each attempt writes its own run record, so px0 runs list shows the failures that led to a success rather than hiding them. The per-workflow cap is 10.

Retrieval

See Retrieval backends.

Logs and retention

Failed logs are kept four times longer than successful ones, because those are the ones you come back to. Retention is applied by the daemon’s nightly pass, or on demand with px0 runs prune.

Updates

See Updating px0.

Keys that are declared but not yet wired

Named here so the list is honest about what the current build actually does:
  • connectors.provider - every toolkit routes through Composio regardless.
  • update.channel - not functionally checked; px0 update reports when no release manifest is configured.

Using config values in a workflow

Any key is readable from a workflow body or an input’s args:
More usefully, this lets a workflow reference a path or a tuning value without hardcoding it. See Workflow files.

Editing the file directly

Editing config.toml by hand is fine, and px0 versions the file like any other, so your edit shows up in history. The trade-off is that a hand edit skips validation - if px0 behaves oddly after you change the file directly, px0 config list shows what it actually parsed, and px0 doctor catches the categories of mistake that matter. What you save is checked for parseability; if it no longer parses, px0 says so and names the line to fix, and the edit is still recorded so px0 changes revert is there if you would rather drop it wholesale.