MCPInstall

wp-env

Use when setting up, configuring, or troubleshooting local WordPress development environments with @wordpress/env (wp-env). Triggers on mentions of wp-env, local WordPress development, Docker-based WordPress, or requests to start/stop/configure a local WordPress instance.

Installs
704
Last 24h
+22
Trending rank
#5351
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/wordpress/agent-skills --skill wp-env
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads wp-env automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

@wordpress/env (wp-env)

Zero-config, Docker-based local WordPress development environment for plugins, themes, and core.

When to use

  • User asks to set up a local WordPress development environment
  • Project contains a .wp-env.json file
  • User mentions wp-env, @wordpress/env, or Docker-based WordPress development
  • User wants to run WP-CLI commands, PHPUnit tests, or debug with Xdebug locally
  • Triage detects a plugin or theme project that needs a local WordPress instance

wp-env or wp-playground? For a quick local WordPress, prefer the wp-playground skill by default — it's faster, disposable, and needs no Docker. Use wp-env when the task actually requires it:

  • the repo already contains a .wp-env.json
  • a real MySQL database is needed (PHPUnit against the DB, wp db commands, data that survives restarts)
  • arbitrary commands must run inside the environment (shell access, Composer, full WP-CLI via wp-env run)
  • this is a WordPress core or Gutenberg checkout
  • the user explicitly asks for wp-env or Docker

wp-env can also run without Docker by using Playground as its runtime (npx @wordpress/env start --runtime=playground, experimental). That is still wp-env, driven by the same .wp-env.json, so treat it as a Docker-free fallback for a project that already carries wp-env config, not as a third option. It swaps MySQL for SQLite and drops wp-env run and the separate tests environment, which are most of the reasons to pick wp-env in the first place. For a quick Docker-free WordPress with no wp-env config, use the wp-playground skill directly.

Inputs required

  1. Docker status -- verify Docker is installed and running: docker info
  2. Node.js version -- must be >= 18.12.0: node -v
  3. Project type -- plugin, theme, or full site (check for .wp-env.json, plugin headers, or style.css theme headers)
  4. Existing config -- read .wp-env.json and .wp-env.override.json if present

Procedure

1. Install wp-env

# Global (recommended)
npm -g install @wordpress/env

# Or project-local
npm i @wordpress/env --save-dev
# Then use: npx wp-env start

2. Start the environment

wp-env start

Default credentials:

Common start options:

  • wp-env start --update -- pull latest sources and reconfigure
  • wp-env start --xdebug -- enable Xdebug (debug mode)
  • wp-env start --xdebug=profile,trace -- multiple Xdebug modes
  • wp-env start --auto-port -- find available ports when defaults are busy

3. Auto-detection (no config file)

When no .wp-env.json exists, wp-env scans the current directory:

Detected typeHow detectedAuto-config
PluginPlugin Name: header in a root .php file{ "plugins": ["."] }
ThemeTheme Name: header in style.css{ "themes": ["."] }
Corewp-includes/version.php exists{ "core": "." }

4. Configure with .wp-env.json

Place at the project root. All fields are optional.

{
  "core": null,
  "phpVersion": "8.1",
  "plugins": [
    ".",
    "https://downloads.wordpress.org/plugin/akismet.zip",
    "WordPress/classic-editor"
  ],
  "themes": [],
  "port": 8888,
  "multisite": false,
  "phpmyadmin": false,
  "config": {
    "WP_DEBUG": true,
    "SCRIPT_DEBUG": true
  },
  "mappings": {
    "wp-content/mu-plugins": "./mu-plugins"
  },
  "lifecycleScripts": {
    "afterStart": "wp-env run cli wp rewrite structure /%postname%/"
  }
}

Source string formats (for core, plugins, themes, mappings)

FormatExample
Local path".", "./path", "../path"
GitHub shorthand"WordPress/classic-editor", "owner/repo#branch"
ZIP URL"https://downloads.wordpress.org/plugin/akismet.zip"
Git SSH"ssh://user@host/repo.git#ref"

GOTCHA: WordPress.org plugin/theme slugs (bare names like "akismet") do NOT work. Use the full ZIP URL.

Local overrides with .wp-env.override.json

Create .wp-env.override.json next to .wp-env.json for personal settings (gitignored). Only config and mappings are merged -- all other fields (including plugins and themes arrays) fully replace the base.

5. Run commands in containers

# WP-CLI commands
wp-env run cli wp user list
wp-env run cli wp plugin list
wp-env run cli wp option update blogname "My Site"
wp-env run cli "wp rewrite structure /%postname%/"

# Run commands in a specific directory
wp-env run cli --env-cwd=wp-content/plugins/my-plugin composer install

# PHPUnit tests
wp-env run cli --env-cwd=wp-content/plugins/my-plugin vendor/bin/phpunit

# Pass flags with -- separator
wp-env run cli php -- --version

# MySQL access
wp-env run mysql mysql -- --user=root --password=password wordpress

Available containers: mysql, wordpress, cli, composer, phpmyadmin.

6. Manage the environment

wp-env stop                    # Stop and free ports
wp-env reset development       # Reset dev database (keeps test)
wp-env reset all               # Reset all databases
wp-env logs                    # Stream PHP/Docker logs
wp-env logs --no-watch         # Print logs and exit
wp-env status                  # Show URLs, ports, config
wp-env status --json           # Machine-readable status
wp-env cleanup                 # Remove containers/volumes (keep images)
wp-env destroy                 # Remove everything including images

7. Xdebug setup

wp-env start --xdebug          # Enable debug mode
wp-env start --xdebug=coverage # For code coverage
wp-env start                   # Disable Xdebug (restart without flag)

Modes: debug, profile, trace, develop, coverage.

IDE listens on port 9003. VS Code launch.json needs:

{
  "type": "php",
  "request": "launch",
  "name": "Listen for Xdebug",
  "port": 9003,
  "pathMappings": {
    "/var/www/html/wp-content/plugins/your-plugin": "${workspaceFolder}"
  }
}

8. Multisite

{ "multisite": true, "plugins": ["."] }

Verification

  • wp-env status shows running containers with correct ports
  • http://localhost:8888/wp-admin/ loads the WordPress admin
  • wp-env run cli wp plugin list shows expected plugins
  • Plugin/theme under development appears in the WordPress admin
  • Database resets work: wp-env reset development

Failure modes / debugging

SymptomCauseFix
"Cannot connect to Docker daemon"Docker not runningStart Docker Desktop
"Port 8888 already in use"Port conflictUse --auto-port or set custom port in .wp-env.json
Plugin not appearingMissing Plugin Name: header in main PHP fileAdd standard plugin header comment
"Could not find a valid source"Invalid source string in configUse full ZIP URL for wp.org plugins, not bare slugs
Stale environment after source changesCached Docker volumeswp-env start --update or wp-env destroy && wp-env start
White screen / PHP errorsCorrupted databasewp-env reset all && wp-env start
Override not taking effectWrong merge behaviorplugins/themes in override replace base arrays; only config/mappings merge
Tests environment not accessibleWrong portTest environment runs on port 8889 by default
Xdebug not connectingIDE not listening or wrong portEnsure IDE listens on port 9003 with correct pathMappings
npm global install permission errorNode installed to a system pathUse nvm, or install locally: npm i -D @wordpress/env and run via npx wp-env

Escalation

  • Docker issues beyond wp-env scope (networking, disk space, WSL2 backend)
  • Custom Docker Compose configurations that conflict with wp-env
  • CI/CD pipeline integration requiring non-standard Docker setups
  • WordPress Playground runtime (--runtime=playground) is experimental and has limited feature parity

References

FAQ

What does the wp-env skill do?

Use when setting up, configuring, or troubleshooting local WordPress development environments with @wordpress/env (wp-env). Triggers on mentions of wp-env, local WordPress development, Docker-based WordPress, or requests to start/stop/configure a local WordPress instance.

How do I install wp-env?

Run npx skills add https://github.com/wordpress/agent-skills --skill wp-env in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/wp-env/ (personal) or .claude/skills/wp-env/ (project).

Which AI agents can use wp-env?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is wp-env safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains wp-env?

It is published by wordpress in wordpress/agent-skills. It has 704 recorded installs.

More from wordpress/agent-skills

View all →

wp-plugin-development

wordpress/agent-skills

Use when developing WordPress plugins: architecture and hooks, activation/deactivation/uninstall, admin UI and Settings API, data storage, cron/tasks, security (nonces/capabilities/sanitization/escaping), and release packaging.

OfficialFrontend & Design8.1K installs

wp-performance

wordpress/agent-skills

Use when investigating or improving WordPress performance (backend-only agent): profiling and measurement (WP-CLI profile/doctor, Server-Timing, Query Monitor via REST headers), database/query optimization, autoloaded options, object caching, cron, HTTP API calls, and safe verification.

OfficialCode Quality & Workflow6.2K installs

wp-rest-api

wordpress/agent-skills

Use when building, extending, or debugging WordPress REST API endpoints/routes: registerrestroute, WPRESTController/controller classes, schema/argument validation, permissioncallback/authentication, response shaping, registerrestfield/registermeta, or exposing CPTs/taxonomies via showinrest.

OfficialBackend & APIs5.9K installs

wp-block-themes

wordpress/agent-skills

Use when developing WordPress block themes: theme.json (global settings/styles), templates and template parts, patterns, style variations, and Site Editor troubleshooting (style hierarchy, overrides, caching).

OfficialFrontend & Design5.9K installs

wordpress-router

wordpress/agent-skills

Use when the user asks about WordPress codebases (plugins, themes, block themes, Gutenberg blocks, WP core checkouts) and you need to quickly classify the repo and route to the correct workflow/skill (blocks, theme.json, REST API, WP-CLI, performance, security, testing, release packaging).

OfficialBackend & APIs5.6K installs

wp-block-development

wordpress/agent-skills

Use when developing WordPress (Gutenberg) blocks: block.json metadata, registerblocktype(frommetadata), attributes/serialization, supports, dynamic rendering (render.php/rendercallback), deprecations/migrations, viewScript vs viewScriptModule, and @wordpress/scripts/@wordpress/create-block build and test workflows.

OfficialBackend & APIs5.6K installs

Popular ai & agents skills

View category →

google-agents-cli-publish

google/agents-cli

This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).

AI & Agents513.9K installs

google-agents-cli-eval

google/agents-cli

This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).

AI & Agents513.5K installs

skill-creator

anthropics/skills

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

OfficialAI & Agents416.4K installs

codex-pet

prime-skills/runcomfy-agent-skills

Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.

AI & Agents402.1K installs

full-output-enforcement

leonxlnx/taste-skill

Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.

AI & Agents401K installs

executing-plans

obra/superpowers

Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available

AI & Agents245.7K installs