Skip to content

The cwp manual

shipped 1.0.0

cwp is Controlled WordPress: a command-line tool that moves a WordPress site between a local DDEV container and its host, and guards every write that goes upward.

It is middleware. DDEV runs the local container, WP-CLI talks to WordPress, and your host moves the files. cwp decides what may move, in which direction, and what has to be true before and after. It reimplements none of them.

What this manual is

Every page carries a status badge, and the badge matters. A documentation page is a promise about software. The characteristic one is not an invention: it is a sentence that was true on the day somebody wrote it. shipped 1.0.0 says the thing exists in the released binary; planned, deferred and not built say exactly what they say.

The pages describe the released v1.0 surface. Where a page lists a command’s flags or arguments, they come from the CLI’s own manifest rather than from typing. Where a page shows terminal output, the real binary produced it.

Where to go

  • What do I do when … — the commands filed by situation rather than by name: page-builder work, production content you need locally, tags to clean up, your state onto an environment. It also says what cwp deliberately leaves alone.
  • Start here — what cwp is and is not, what it needs, how to install it, and a quickstart that ends in a working local copy of a production site.
  • Concepts — the two-layer config, the asymmetric data flow, reproducibility, the safety model, the output contract, and the two seams.
  • Commands — every command, its arguments and its flags, read from the CLI’s own manifest rather than written by hand.
  • The design documents describe cwp as it is: the five layers, the seven-step spine, the two seams and the invariant catalogue with the test that holds each rule.

README.md keeps only what a reader needs before deciding to click through: what cwp is, how to install it, a quickstart and the safety model. Everything else is here.