FAQ¶
Does wpt change my site without asking?¶
No. Mutating commands print a dry-run plan. They execute only with --apply;
--yes skips the interactive confirmation, not the plan. FTP mutations also
require a successful snapshot first.
Can I use it on a live site?¶
Yes, with authorization. Start with audit and doctor, then run a mutating
command without --apply and read the plan. For DNS migrations, use
--override-ip or the local proxy. Rehearse against a local copy when you can.
Does it store my password?¶
No. Passwords normally come from environment variables (--password-env,
--db-password-env) or prompts. An inline password in --db-uri is accepted
for compatibility, but it is visible in shell history and must be avoided on a
shared machine. Passwords are redacted by the logging path and are never
written to a plan, report, receipt, or exception.
Which WordPress, PHP, and MySQL versions are supported?¶
The bridge is verified against WordPress 6.0–7.1 and PHP 8.3+ is the supported
runtime. MySQL and MariaDB are supported through the pure-Python PyMySQL driver
for --db-uri; the FTP/bridge path talks to WordPress rather than the database
directly.
Does it support multisite?¶
Not in v1. Multisite is out of scope, along with a direct SSH connector and panel APIs.
Can it update plugins and themes?¶
Not in v1. Core updates ship as update-core; plugin/theme updates are on the
roadmap. The audit's updates command reports what is available without
applying it.
Why does local mode not take a snapshot?¶
Local mode mutates an in-memory overlay and writes a new rehearsed archive. The original zip is the rollback, so a second copy would be redundant. FTP mode has no original archive to fall back on, so it snapshots the affected scope before applying.
How do I restore a change?¶
Use restore to list snapshots and restore one. --undo-last rolls back the
newest; --file, --path-prefix, --table, --config, and --media select a
scope. Applying a restore is FTP-only. Local mode restores by using the
original archive.
Where are snapshots and reports written?¶
Snapshots land outside the webroot under .wpt-backup/ by default. Reports go
where --report PATH points and get a JSON twin. Keep both out of source
control.
Why does park-backups not delete backups?¶
It moves full-site backup payloads out of the document root so they are no
longer web-exposed. Deletion is deliberately not its job. clean-files is the
command that can remove junk and stale backup-shaped files, and it shows them in
a plan first.
Why is Windows only smoke-tested?¶
The full suite depends on POSIX paths, FIFOs, /proc, O_DIRECTORY, and Unix
signal semantics. Windows gets a wheel/CLI smoke test so installation and the
entry point stay healthy without pretending the full behavioral suite is
portable.
Why does the proxy show a certificate warning?¶
It uses a throwaway self-signed certificate for localhost (CN=localhost;
SAN localhost, 127.0.0.1, ::1). It is reused while usable, not
regenerated per run, and is not a trust anchor. In Chrome, type thisisunsafe
while the page has focus to bypass the interstitial for this certificate. See
the safety model.
Does it need a live database?¶
No. An offline audit uses a SQL dump. clean-db --db-uri can read a direct
database when the db extra and a driver are installed, but it is not required
for the rest of the toolkit.
How do I report a security issue?¶
Follow SECURITY.md. Do not open a public issue with credentials, client data, or an exploitable reproduction.
What is the license?¶
MIT. Copyright © 2026 The wpt authors. See LICENSE.