Content type: Handbook

  • Sharing WP-CLI Packages

    By default, WP-CLI places installed packages in ~/.wp-cli/packages/, a hidden subdirectory for the user’s home directory. Because the home directory is different for each user, this naturally means each system user will have a separate directory of installed packages. If you have multiple active shell users on a server, and want to share installed WP-CLI…

  • Roadmap

    WP-CLI is released every 3-4 months, typically around the beta period of WordPress’s release cycle: Current: v2.12.0 (May 7th, 2025) Patch versions are released on an as-needed basis, usually to address bugs or regressions. The current version of WP-CLI is the only officially supported version. The current longer-term goals of the project are: Improve contributor…

  • Shell Friends

    As you advance upon your use of WP-CLI, you’ll find that a little bit of command line knowledge can have a huge impact on your workflow. Here are some of our favorite shell helper utilities. You Should Know Search through your bash history Did you know that every command you run on your shell is…

  • Repository Management

    Package Names Package names for the official wp-cli GitHub organization need to be discussed upfront with the maintainers. Before creating a new repository, it’s important to discuss the repository first. This discussion helps establish consensus on what purpose the codebase serves, and where it lives best in the WP-CLI ecosystem. Package names for WP-CLI commands…

  • Identify a Plugin or Theme Conflict

    Is WP-CLI not working with your WordPress install, but you don’t know why? It might be a plugin or theme conflicting with the WP-CLI load process. To verify, first run wp –skip-plugins –skip-themes to execute WP-CLI without loading plugins or themes. If WP-CLI runs as expected with plugins and themes skipped, then the problem is…

  • Implementation Details

    This page contains some history on various implementation details of WP-CLI. Bootstrapping WordPress On a normal web request, your web server calls the index.php file in the root of the web directory to bootstrap the WordPress load process: <?php /** * Front to the WordPress application. This file doesn’t do anything, but loads * wp-blog-header.php…

  • Pull Requests

    WP-CLI follows a pull request workflow for changes to its code (and documentation). Whether you want to fix a bug or implement a new feature, the process is pretty much the same: Search existing issues; if you can’t find anything related to what you want to work on, open a new issue in the appropriate…

  • Philosophy

    WP-CLI is the command-line interface for WordPress. It provides commands for actions that can be performed in the WordPress backend (e.g. wp theme activate and wp user create), as well as commands for actions that don’t have an equivalent web UI (e.g. wp cron event run, wp search-replace, and wp scaffold child-theme). WP-CLI’s guiding principle…

  • Governance

    This document describes the governance structure of the WP-CLI project. Who’s in charge? WP-CLI has one maintainer: schlessera. On a day to day basis, final decision-making authority resides with him. The project roadmap is an organic, evolving vision developed between the project’s maintainers, committers, and contributors. Generally, we try to make decisions in alignment with…

  • Plugin Integration Tests

    This guide demonstrates how to run integration tests on both Travis CI and locally. The scaffolding uses the WordPress Core “unit tests” that serve to unit-test WordPress Core. Unit tests are useful for testing plugins and themes as well, but if they are used in that way, it turns those tests into “integration tests” –…