Skip to content
imagewizePublic

About

Pull production into dev in one command, see who is hitting your server, and publish posts — for Trellis WordPress sites. CLI, trellis-cli plugin and MCP server.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

wp-ops wind rose logo

WP OPS

Homebrew Downloads Latest Release License

The day-to-day ops layer for Trellis sites.
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.

What it solves

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.

1. Get production into development in one step

wp-ops database-pull example.com production   # export, download, import, search-replace
wp-ops files-pull example.com production      # rsync the uploads directory

The 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 database-pull running the Ansible playbook from production to development, ending with the development home URL on the .test domain

2. See who is hitting your server

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 IPs

Reads 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.

3. Publish and verify content without opening wp-admin

wp-ops publish-post draft.html example.com production --image featured.jpg
wp-ops verify-post my-post-slug example.com production

Publishes 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.

4. Hand all of it to Claude

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.

Install

brew install imagewize/tap/wp-ops
wp-ops init      # shell completions (one-time)
wp-ops doctor    # check Ansible, WP-CLI, ssh and friends

Point 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 production
Build 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 init

The scripts, playbooks and guides are embedded in the binary — once it's on your PATH you can delete the clone.

Finding your way around

Running wp-ops with no arguments opens an interactive picker of every command:

The wp-ops interactive picker: categories with command counts, descriptions and a trellis/wp/any platform breakdown

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 guides

More in Using the CLI and the trellis-cli plugin guide.

Also in the box

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

Requirements

  • 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 doctor tells you what's missing

Wheel of Time Inspiration

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/.

License

MIT License. See LICENSE.md for details.


Copyright © Imagewize

About

Pull production into dev in one command, see who is hitting your server, and publish posts — for Trellis WordPress sites. CLI, trellis-cli plugin and MCP server.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages