Open Source · Shell Script · Zero Dependencies

Local WordPress,
no Docker. no bloat.

A single shell script that spins up WordPress sites locally using PHP's built-in server and MySQL. No containers, no config files, no GUI.

$ curl -fsSL https://raw.githubusercontent.com/NaveenKharwar/wp-local/main/install.sh | bash

Requires PHP, MySQL, and optionally WP-CLI

Why wp-local

Built for devs who just want it to work

Most local WordPress tools are either too heavy or too complex to set up. wp-local is a single bash script that does exactly what you need.

One command to start

Install once, create sites instantly. No GUI, no Docker daemon, no YAML config.

Zero overhead

Uses PHP's built-in server and your system MySQL. No containers eating your RAM.

Auto-login links

Every site gets a one-click login URL. No remembering passwords during dev.

WP-CLI passthrough

Run any WP-CLI command against any site with wp-local wp <name>.

DB management built-in

Creates and drops databases automatically. List all DBs with a single command.

Self-healing

doctor checks your environment and fixes common issues automatically.

Reference

All commands

Everything you need. Nothing you don't.

Command Description Example
new
Create a new WordPress site
Downloads WordPress, creates DB, configures wp-config.php, installs, and generates an auto-login link.
wp-local new
start
Start the local server
Launches PHP's built-in server. All sites served from a single port.
wp-local start
list
List all local sites
Shows every site directory under ~/wp-sites.
wp-local list
info [name]
Show site details
Displays URL, admin credentials, and a fresh auto-login link.
wp-local info mysite
wp <name> ...
Run WP-CLI against a site
Passes any WP-CLI command directly to the specified site.
wp-local wp mysite plugin list
delete [name]
Delete a site
Removes site files and drops the database. Asks for confirmation.
wp-local delete mysite
doctor
Check environment
Verifies PHP, MySQL, and WP-CLI. Offers to fix issues automatically.
wp-local doctor
db:list
List all MySQL databases
Shows all databases in your MySQL instance.
wp-local db:list
regen-login [name]
Regenerate auto-login URL
Creates a fresh one-click login link for the site.
wp-local regen-login mysite
repair [name]
Rebuild site metadata
Reconstructs missing .meta file for sites. Run without a name to repair all sites.
wp-local repair mysite
update
Update wp-local
Pulls the latest version from GitHub automatically.
wp-local update
Workflow

From install to login in under a minute

This is what a typical first session looks like.

bash
# Install wp-local
$ curl -fsSL https://raw.githubusercontent.com/NaveenKharwar/wp-local/main/install.sh | bash
✔ Installation complete!

# Create a new site
$ wp-local new
Enter Site Name: myproject
Admin Username: admin
Admin Password: ••••••••
→ Setting up WordPress files...
→ Provisioning database...
✔ WordPress is ready!
[url] http://127.0.0.1:9000/myproject
[login] http://127.0.0.1:9000/myproject/?auto_login=xK9mPqR3...

# Start the server
$ wp-local start
Server running on http://127.0.0.1:9000

# Install a plugin via WP-CLI
$ wp-local wp myproject plugin install woocommerce --activate
✔ Plugin installed and activated.
Requirements

What you need

wp-local uses tools you likely already have on your machine.

PHP (built-in server)
MySQL
curl
WP-CLI (optional but recommended)