WP-CLI is a set of command-line tools for managing WordPress installations. You can update plugins, set up multisite installs and much more, without using a web browser.
- UNIX-like environment (OS X, Linux, FreeBSD, Cygwin)
- PHP 5.3.2 or later
- WordPress 3.5.2 or later
First, download wp-cli.phar using
curl. For example:
curl -L https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar > wp-cli.phar
Then, check if it works:
php wp-cli.phar --info
To be able to type just
wp, instead of
php wp-cli.phar, you need to make the file executable and move it to somewhere in your PATH. For example:
chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/bin/wp
Now try running
If you’re using MAMP, you will probably get a MySQL error, because the
php found in your PATH is not the same as the PHP used by MAMP. Here is one way to fix it.
WP-CLI also comes with a tab completion script for Bash. Just download wp-completion.bash and load it from
(Don’t forget to run
source ~/.bash_profile afterwards)
Go into a WordPress root folder:
wp should show you output similar to this:
Available commands: wp blog create|delete wp cache add|decr|delete|flush|get|incr|replace|set|type wp comment create|delete|trash|untrash|spam|unspam|approve|unapprove|count|status|last wp core download|config|is-installed|install|install-network|version|update|update-db wp db create|drop|reset|optimize|repair|connect|cli|query|export|import wp eval-file ... See 'wp help <command>' for more information on a specific command.
Let’s try to install the Hello Dolly plugin from wordpress.org:
wp plugin install hello-dolly
Installing Hello Dolly (1.5) Downloading install package from http://downloads.WordPress.org/plugin/hello-dolly.1.5.zip ... Unpacking the package ... Installing the plugin ... Plugin installed successfully.
On a multisite installation, you need to pass a
--url parameter, so that WP-CLI knows which site it’s supposed to be operating on:
wp theme status --url=localhost/wp/test
If you have a subdomain installation, it would look like this:
wp theme status --url=test.example.com
If you’re usually working on the same site most of the time, you can create a
wp-cli.yml file in the root directory:
Then, you can call
wp without the
--url parameter again:
wp theme status
Adding commands to WP-CLI is as easy as creating a PHP class. See the Commands Cookbook for more info.
Please share the commands you make by adding them to the List of community commands.