Every command, as agent-local help prints it. Every site-facing command is also an MCP tool with the same name; the machine-level ones (sudo, alias, connect, update, the daemon) are run by hand.
Sites
agent-local open the dashboard
create NAME [--domain d] [--php v] [--repo url] create and install a WordPress site
attach DIR [--name n] [--domain d] [--php v] serve a directory you already have, with an empty database
import SOURCE [--copy] [--sql FILE] [--serve-only] [--keep-ddev]
import a LocalWP site, DDEV project or docroot
localwp-sites LocalWP sites available to import
ddev-projects DDEV projects available to import
list every site, its state and URL
start | stop | restart SLUG control one site
delete SLUG [--yes] [--keep-files] [--keep-db] remove a site; a snapshot is saved first
open SLUG open the site in your browser
domain SLUG NAME change a site's domain; hosts entry and cert follow
move SLUG DIR move a site's files to another directory
php SLUG VERSION [--tap] switch PHP version, installing it if needed
resolve [PATH] which site owns a path (default: cwd)
Database
db SLUG connection details
db SLUG "SQL" run a statement
db SLUG import FILE.sql[.gz] [--keep-urls] load a dump; URLs rewritten (WordPress), snapshot saved first
db SLUG export [FILE] dump to a file
db SLUG reset | tables | gui empty it, list tables, or open Adminer
db SLUG search NEEDLE where a string still lives: table, column, count
db SLUG search-replace OLD NEW [--apply] replace across every table; a dry run unless --apply
db SLUG snapshot [NAME] save a restore point
db SLUG snapshots list restore points
db SLUG restore [NAME] restore one (default: newest)
Develop
worktree SLUG BRANCH [--remove] serve a git branch on its own URL
worktrees SLUG list branch previews
branches SLUG branches of the site's repo
wp SLUG -- ARGS run wp-cli against the site
wpdebug SLUG [on|off] WP_DEBUG, logged to ~/.agent-local/logs/wp-SLUG.log
wpconst SLUG [NAME VALUE | NAME --remove] read, set or remove wp-config constants
logs NAME [LINES] tail a log: mysql, apache, daemon, fpm-SLUG, wp-SLUG
mail SLUG [ID] [--open] [--clear] emails the site has sent
media SLUG [URL | --auto | --off] send missing uploads to a production origin
share SLUG [--minutes N] [--off] public URL through a Cloudflare tunnel
cert DOMAIN [--trust] TLS state for a domain; --trust issues and trusts it
probe SLUG [PATH] [--follow] request the site like a browser would; PHP errors and a verdict
errors SLUG [--since 1h] PHP errors from the pool and debug logs, deduplicated
wpinfo SLUG the WordPress install in one JSON document
checkpoint SLUG [LABEL] [--scope all] [--list] save a restore point: database + wp-content
rollback SLUG CHECKPOINT put the site back; what was there is kept aside
login SLUG [USER] [--open] one-time URL straight into wp-admin
Agents
connect [--list | --all | --remove] [HARNESS...] register the MCP server in Claude Code, Codex, Cursor and friends
mcp the MCP server itself (stdio); clients launch this
mcp --config the client config block, for a client connect doesn't know
api-token bearer token for the HTTP API
jobs recent long-running jobs
job ID one job's progress
Machine
setup [--no-harnesses] one-time: root, certs, hosts, bare URLs, harnesses
doctor [--fix] health checks; --fix applies every repair
install brew | php VERSION | mariadb | apache install a dependency (wp-cli too)
front [router | apache] show or switch the HTTP front
yield [SECONDS] free :80/:443 briefly so another app can start
alias [--off] bare URLs: the 127.0.0.2 alias and its root front daemon
sudo one-time allowlist so root steps never prompt again
autostart [--off] start the daemon at login (on by default)
sites-dir [PATH] where new sites are created
suffix [.test] default domain suffix
daemon [--background] run the daemon by hand
restart-daemon hand over to a freshly installed binary
update [--check] install the latest release
version what build this is