Requirements
shipped 1.0.0cwp 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.
| Tool | Why | Install |
|---|---|---|
| Node.js ≥ 22 | cwp’s own runtime | brew install node |
| A Docker runtime | DDEV needs one | brew install --cask orbstack, then start it |
| DDEV | the local WordPress container | brew install ddev/ddev/ddev |
| mkcert | local HTTPS | mkcert -install |
Then whatever your host needs:
| Provider | Also needs |
|---|---|
cloudron | the Cloudron CLI (npm i -g cloudron) and a login: cloudron login my.example.com |
ssh | an ssh key that reaches the host, and wp on its PATH |
local | nothing further |
cwp holds no ssh settings of its own. It passes the ssh: value in
cwp.yml to ssh and rsync exactly as written. A port, an identity file or
a jump host therefore belong in ~/.ssh/config, where every other tool on your
machine already looks and where the two cannot disagree.
WordPress core never goes into git, so a freshly cloned project has none.
cwp doctor flags that before cwp db pull runs into it;
the fix is ddev wp core download.