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 has focus. Its failure modes stay 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. 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 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
You build sites in a page builder. You have had enough 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.
Four providers ship: cloudron, ssh, ftps/sftp and local. The ssh
provider covers a plain VPS and, by extension, most managed WordPress hosts
that expose SSH; ftps/sftp covers a host with no shell at all.
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, running 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. Why cwp has 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. The last gets you from an empty directory to a working local copy of a production site.