What cwp is, and is not
shipped 1.0.0cwp 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.
The name is the argument. Moving a WordPress site between environments is normally an unpredictable sequence of half-remembered commands, run in whichever terminal tab is focused, whose failure modes are invisible until a client notices. cwp makes each of those movements controlled, and refuses the ones that are not.
It is middleware
DDEV owns the local container. WP-CLI owns WordPress. Your host owns the transport. cwp owns sequencing, safety and project conventions — and it reimplements none of the other three.
That is a constraint rather than a modesty. A tool that reimplemented
wp search-replace would have to be right about PHP serialisation, and it would
be wrong about it eventually; a tool that calls it inherits WordPress’s own
answer. The same reasoning covers the container, the transfer and the backup.
What it is for
If you build sites in a page builder and you are tired of hand-running
wp db export, search-replace, upload copies and mail-guard plugins every time
you refresh a local copy, this is that workflow with the footguns removed.
It is sharpest on Bricks 2.4, where it wires 145 AI abilities to your editor
and moves a design system as a committed tree of JSON. It is also correct on a
site with no page builder at all: builder: none is a supported configuration
rather than a degraded one.
Three hosts ship: cloudron, ssh and local. The ssh provider covers a
plain VPS and, by extension, most managed WordPress hosts that expose SSH.
What it is not
- It is not a deployment platform. There is no dashboard, no daemon, no hosted service and nothing to sign up for. It is a binary on your machine that runs commands you could have run yourself.
- It is not between an agent and WordPress. Once
cwp mcphas wired the connection, the agent talks to the site’s own MCP server directly, and no guard in this tool is in that path. What bounds an agent is which site its credentials point at — see Why cwp for the version of this that matters. - It does not push your database. Bulk database state flows downward. Named items may flow upward under the full guard set; a whole database may not.
- It runs no git commands. The repository is the record cwp reads; it never stages, commits or branches on your behalf.
- It phones home never. There is no telemetry, no analytics and no update check.
Where to go next
Requirements, then Install, then the Quickstart — which gets you from an empty directory to a working local copy of a production site.