Skip to main content
px0’s commands read as entity, then verb: px0 workflows new, px0 brain search, px0 guidelines edit. Once you know the entities, you can usually guess the command. The only flat commands are the ones that act on the install rather than on anything in your store: init, update, version, doctor, status, and completion. Add --help to any command for its own flags. px0 config get --help and px0 config set --help additionally list every settable key.

Global flags

Both work at the root (px0 --json runs list), and the subcommands that support --json accept it in place too.

Exit codes

Confirmations

Every command that removes or revokes something asks first, and every one of them takes --yes to skip the question. With stdin not a terminal and no --yes, the command stops rather than assuming: workflows rm, brain rm, guidelines rm, tools disconnect, and tools call on a write tool.

init

Scaffolds a store, asks for a Composio API key, and prints suggested next commands. Safe to run in a script: when stdin is not a terminal it skips the prompt and tells you to set the key later. Running against an existing store fills in anything missing and leaves the rest alone. See Installation.

workflows

new - --yes skips every prompt, --id <id> names it directly, --no-clarify skips the clarifying questions, --no-discover restricts it to curated tools, --from-file <path> reads the description from a file. See Build a workflow. run - --dry-run stubs write tools, --input KEY=VALUE (repeatable) passes named values, --stdin reads piped text, --output stdout|file overrides the destination, --timeout <duration> overrides the workflow’s own timeout, --no-retry attempts once regardless of the retry policy, --quiet suppresses decoration, --json prints the run record. See Run a workflow. edit - takes --yes, --no-clarify, and --no-discover. validate - --json prints one object per workflow with its errors. Exits 1 if anything is invalid, so it works in a pre-commit hook or CI. See Workflow files for the full frontmatter reference.

tools

list --status also asks Composio what is authorized, at one API call per toolkit. px0 --json tools list includes each tool’s parameter schema. search - --toolkit <slug> restricts to one toolkit, --toolkits lists toolkits instead of tools, --limit N caps the results. call - --arg KEY=VALUE (repeatable) passes arguments, --yes skips the confirmation a write tool asks for. connect - --reconnect drops the existing authorization first. disconnect - --yes skips the confirmation. refresh - --forget drops the cache instead of re-reading it. See Tools and Connections.

brain

add - --to <folder> overrides the destination folder, --from-file <path> ingests every source listed in a file, one per line. refresh - --all re-fetches everything with a recorded source, --stale re-fetches what has gone stale (plus every stub), --days N sets what counts as stale (default 30). export - --include-private includes the private folder, held back by default. search / ask - --k N sets how many passages to retrieve, --kind {blog,paper,doc,video,stub} narrows to one kind. ask also takes --sources to print citations. See The brain.

guidelines

A claim id is <file>#<slug>, for example commit-style.md#summary-line. There is no px0 guidelines new - a guideline is only ever created by px0 workflows new drafting one from a workflow. See Guidelines.

runs

list takes --workflow <id>, --failed, --since <age> (12h, 7d, 2w), --running, and --json. px0 runs with no terminal falls back to the plain listing, and only the current store’s runs are listed. See Browse runs.

daemon

install takes --fallback-cron to force cron over the native mechanism. See Schedules and the daemon.

changes

list takes --since <age> (12h, 7d, 2w), --actor <name> (builder, update, user:manual), and --json. See History.

store

export strips secrets: the Composio key is blanked in the exported config.toml, and its version history is dropped from the export so the key is not recoverable from the history blobs either. import takes --merge to add what is missing and keep everything already here, or --force to let the import win on a collision - without either, importing into an existing store stops rather than silently overwriting. See The store.

config

See Configuration.

status

Whether anything needs attention, in one screen: the daemon, workflow counts, upcoming fires, recent runs and failures, and the same problems doctor and runs list --failed would surface separately - assembled from local state, with no network or model call. --hours N sets how far back a failure still counts as news (default 24). See Status.

doctor

Runs every health check and prints a concrete fix for each failure. Exits 0 when all pass, 4 when any fail. --quick skips the slower checks that need a live subprocess or a filesystem walk. The checks are credentials, versions, locks, schema, connections, workflows, unreferenced_guidelines, update, daemon, harness, index, and private_folder. See Troubleshooting.

mcp

Exposes the brain and the workflow list over the Model Context Protocol, so a coding agent can discover and use them without being told how the CLI works. --allow-runs is required before a client can actually run a workflow. See MCP.

completion

Prints a shell completion script, generated from the command tree itself - workflow ids, config keys, and run ids complete too, read live from the store.

update and version

See Updating px0.

Environment variables