Sync production into development, see who is hitting your server, and publish content — from the terminal, as
trellis ops, or through Claude and other MCP clients.
trellis-cli provisions and deploys. The work
that happens between deploys — getting a fresh copy of production, checking traffic
after a launch, pushing a post live — is left to you, usually as a string of ssh,
wp db export, rsync and wp search-replace commands. wp-ops turns each of those
into one command.
wp-ops database-pull example.com production # export, download, import, search-replace
wp-ops files-pull example.com production # rsync the uploads directoryThe database is exported on the server, imported into development, and every
production URL is rewritten to your .test domain. Your current development database
is backed up to database_backup/ first, so a pull is never a one-way trip.
database-push and files-push go the other way — and back up the remote first.
wp-ops quick-status example.com production # status codes, errors, services at a glance
wp-ops traffic-report example.com production # real visitors vs. bots, landing pages, referrals
wp-ops security-scan example.com production # wp-login/xmlrpc abuse, high-volume IPsReads the site's Nginx logs on the server — no analytics plugin, no third-party service. Pair it with the fail2ban setup to block what the scan finds.
wp-ops publish-post draft.html example.com production --image featured.jpg
wp-ops verify-post my-post-slug example.com productionPublishes an HTML draft with block markup (create or --update), uploads the featured
image, then checks that the blocks, JSON-LD and links survived the write and render on
the live page.
The same operations are exposed as MCP tools —
db_pull, files_pull, monitor, publish_post, verify_post, security_scan and
more — so you can ask "pull production into dev and tell me if anything looks off in
yesterday's traffic" and let the assistant run it. Setup and the full tool list:
mcp-server/README.md.
brew install imagewize/tap/wp-ops
wp-ops init # shell completions (one-time)
wp-ops doctor # check Ansible, WP-CLI, ssh and friendsPoint it at your Trellis project with TRELLIS_DIR (or run it from inside one).
Homebrew also installs trellis-ops, so every command is available as
trellis ops <...> from trellis-cli:
trellis ops database-pull example.com productionBuild from source instead (Go 1.26+)
git clone https://github.com/imagewize/wp-ops.git && cd wp-ops
go build -o wp-ops ./go
sudo mv wp-ops /usr/local/bin/ # or anywhere on your PATH
wp-ops initThe scripts, playbooks and guides are embedded in the binary — once it's on your PATH you can delete the clone.
Running wp-ops with no arguments opens an interactive picker of every command:
wp-ops search webp # find a command by name or description
wp-ops backup --help # every command in one category
wp-ops list --platform wordpress # only what works on any WordPress site, Trellis or not
wp-ops docs oom # search the guidesMore in Using the CLI and the trellis-cli plugin guide.
Beyond the core workflows above, the catalog carries the rest of the toolkit these sites are run with:
| Area | What's there | Docs |
|---|---|---|
| Trellis | Safe Trellis updates, provisioning reference, new-machine and project setup | updater · provision |
| Backups | Timestamped database and uploads backups from any environment | → |
| Monitoring | AI-crawler traffic, error surfacing, traffic by country, cron-scheduled reports | → |
| Security | Malware scanners with checksum verification, fail2ban, manual IP blocking, AbuseIPDB lookup | scanners · server |
| Content & SEO | Page creation, block pattern validation, redirect/schema/orphan-page audits | content · SEO |
| Migration | Moving single and multisite installs onto Trellis/Bedrock, URL update methods | → |
| Nginx | WebP/AVIF serving, browser caching and redirect templates for nginx-includes/ |
images · caching · redirects |
| Bedrock | Testing unreleased packages via Composer path repos, standard wp-cli.yml |
packages · wp-cli.yml |
| Troubleshooting | PHP-FPM, MariaDB, OOM and mail diagnostics | → |
| Scripts & snippets | Theme sync, image rendering, PR helpers, drop-in PHP snippets | scripts · snippets |
- Core: Git, Bash, rsync, SSH access to your Trellis servers
- Most Trellis commands: Ansible (already present if you use Trellis)
- Tool-specific: WP-CLI, ImageMagick,
cwebp, Node —wp-ops doctortells you what's missing
Imagewize's projects take their names from The Wheel of Time. wp-ops keeps a plain, descriptive name because it has to be typed, and takes its mark — an original wind rose — from the Windfinders, the Sea Folk channelers who find the wind and bring the ship to port. The reasoning and the alternates considered are in assets/logos/.
MIT License. See LICENSE.md for details.
Copyright © Imagewize

