Push a local site
Building WordPress on your machine in Cove, LocalWP, MAMP, XAMPP, or any local stack? Run sandywp push from inside the install to mirror it into a public SandyWP sandbox:
database, plugins, themes, and uploads, on a magic-login URL you can share.
Before you start
- A SandyWP account, logged in with the CLI (
sandywp auth login). - A local WordPress install with its database running the exact stack (Cove, LocalWP, MAMP, XAMPP…) doesn't matter.
- Either
wp(wp-cli) orphpavailable on yourPATH(used to export the database).
Install the CLI
# Install globally
npm install -g @sandywp/cli
# …or run without installing
npx @sandywp/cli push Requires Node.js 18+. See the CLI reference for authentication details.
Your first push
Change into your local site's folder anywhere inside it works, since push walks
up to find wp-config.php and run sandywp push:
$ cd ~/Sites/my-local-site
$ sandywp push
Found WordPress install at /Users/you/Sites/my-local-site
Exporting database...
Packaging wp-content...
Built archive (48.2 MB).
Restoring your site...
✓ Pushed to "my-local-site".
url: https://my-local-site.sandywp.dev
login: https://my-local-site.sandywp.dev/…
Wrote /Users/you/Sites/my-local-site/.sandywp
Tip: add `.sandywp` to your .gitignore it links this folder to a SandyWP site. The first push does three things:
- Exports your local database and packages
wp-content(skipping caches, VCS folders, and backup-plugin dumps). - Creates a new sandbox and restores your site into it.
- Writes a
.sandywplink file next towp-config.php, then prints the public URL and a magic-login link.
Add --open to launch the magic-login link in your browser automatically.
.sandywp to your .gitignore. It links this folder to a specific
SandyWP site and is specific to your machine not something to commit.Push again after a change
Made edits locally a new plugin, content, theme tweaks? Run sandywp push again
from the same folder. Because a .sandywp file now exists, it syncs into the same sandbox in place: the URL doesn't change and the site stays online. It
overwrites the sandbox's database and files, so it asks you to confirm first:
$ sandywp push
Found WordPress install at /Users/you/Sites/my-local-site
This will OVERWRITE my-local-site's database and files. Continue? [y/N] y
Exporting database...
Packaging wp-content...
Syncing into your existing site...
✓ Pushed to "my-local-site".
url: https://my-local-site.sandywp.dev To skip the prompt in scripts or a watch loop, pass --force:
sandywp push --force A push is atomic if anything fails partway, the existing sandbox is left exactly as it was.
And if you deleted the linked sandbox on SandyWP in the meantime, push offers to
create a fresh one and re-link the folder.
Good to know
- One-way sync.
pushgoes local → SandyWP only. Changes you make directly on the sandbox are overwritten by the next push. - Unlink a folder. Delete
.sandywpto stop repushing to that site the next push creates a new sandbox. - Big media. Uploads and existing backup archives can make the first push large; subsequent pushes send the full site again, not a diff.
Troubleshooting
“No wp-config.php found”
You're not inside a WordPress install. cd into your site's folder (the one
containing wp-config.php, or a parent of the WordPress root) and try again.
“Neither wp nor php is available”
push needs one of them to export the database. Install wp-cli, or make sure your stack's php binary is
on your PATH (LocalWP and MAMP ship their own PHP you may need to add it).
The database export fails or hangs
Your local database has to be running when you push start your local site in
Cove / LocalWP / MAMP / XAMPP first. The bundled PHP exporter reads wp-config.php directly, so socket-based stacks like LocalWP work without wp-cli.
“Subdomain multisite is not supported”
Subdomain multisite networks can't be pushed. Single-site installs and subdirectory multisite networks are fine.
Confirmation prompt in a script
When you don't want the interactive overwrite? prompt (CI, a file-watcher, a deploy
script), add --force.
Next steps
- CLI reference every command and flag, including
push. - Clone a site copy a live WordPress site into a sandbox instead of a local one.
- Git deployment deploy a plugin or theme straight from a repo.