~/.px0 by default.
Prerequisites
- Python 3.11 or newer.
- A coding agent CLI that px0 uses as its model backend:
claude,gemini,pi, oropencode. px0 reuses that CLI’s own login, so pick whichever one you already sign into. - A Composio API key, for workflows that reach other apps. You can skip this and add it later.
Install
px0 init, and offers to install the scheduler daemon.
Four environment variables change what it does:
Piping into
sh leaves no terminal on stdin, so the daemon prompt is skipped automatically. Run px0 daemon install yourself afterwards.Install from a clone
Initialize a store
~/.px0 (or $PX0_HOME if set): workflows/, guidelines/, brain/, output/, tools/, plus config.toml and a set of starter guideline files you can read, edit, or delete like any other file. Nothing here is hidden or binary.
init also asks for your Composio API key, which is what px0 uses to reach Gmail, Slack, GitHub, Calendar, and every other toolkit. Pass it directly, or skip it and set it later:
px0 init is safe in scripts and installers - it creates the store and tells you to run px0 config composio when you have a key.
That key is all the connection setup there is. Individual apps authorize themselves the first time a workflow needs one, so you never connect a service you turn out not to use. See Connections.
Pick a model backend
By default the model backend isclaude -p. If you use a different coding agent CLI, pass --harness at init time:
model.harness_cmd in config.toml.
To switch later, or to pick a specific model rather than just the harness:
PATH status, takes a model name to select, and actually invokes the result before saving - so a typo’d model name or a missing API key is caught there instead of mid-workflow. px0 never asks for or stores a provider key itself; that stays with the harness CLI’s own login.
Confirm it is wired up
✓. doctor exits 0 when everything passes and 4 when any check fails, so it works in a health-check script. On a freshly initialized store you will see something like:
harness harness responded means px0 actually invoked your coding agent CLI and got something back; if that line fails, fix it before anything else, because every workflow depends on it.
See Troubleshooting for what each check means and how to clear a failure.
Colour, animation, and pipes
On a terminal px0 uses colour sparingly (a failure, a value you can act on) and shows a spinner while something slow is happening. Pipe it anywhere and all of that disappears: no escape sequences, no spinner redraws, and status glyphs become[OK] / [FAIL] so output stays greppable.
--json implies plain output everywhere - machine-readable data is never decorated.
Uninstall
~/.px0) and all your workflows, guidelines, brain, and history are preserved.
To remove px0 and delete all your store data at the same time:
Next steps
Quickstart
Get a real output end to end.
Core concepts
What lives in the store, and why.
px0 status is the fastest way to check whether anything needs attention - the daemon, recent failures, and the install itself, in one screen with no network call. See Status.
