Skip to content

Requirements

shipped 1.0.0

cwp shells out to these; it does not bundle them. cwp doctor checks them all at once, and every failure prints the command that fixes it.

ToolWhyInstall
Node.js ≥ 22cwp’s own runtimebrew install node
A Docker runtimeDDEV needs onebrew install --cask orbstack, then start it
DDEVthe local WordPress containerbrew install ddev/ddev/ddev
mkcertlocal HTTPSmkcert -install

Then whatever your host needs:

ProviderAlso needs
cloudronthe Cloudron CLI — npm i -g cloudron — and a login: cloudron login my.example.com
sshan ssh key that reaches the host, and wp on its PATH
localnothing further

cwp holds no ssh settings of its own. The ssh: value in .cwp.yml is passed to ssh and rsync exactly as written, so a port, an identity file or a jump host belong in ~/.ssh/config — where every other tool on your machine already looks, and where the two cannot disagree.

WordPress core is never committed, so a freshly cloned project has none. cwp doctor flags that before cwp pull runs into it; the fix is ddev wp core download.