
Wp Playground
- 2.5k installs
- 1.9k repo stars
- Updated July 27, 2026
- wordpress/agent-skills
wp-playground is an agent skill that Use for WordPress Playground workflows: fast disposable WP instances in the browser or locally via @wp-playground/cli (s.
About
Spin up a disposable WordPress to test a plugin theme without full stack setup Run or iterate on Playground Blueprints JSON locally Build a reproducible snapshot of a site for sharing or CI Switch WP PHP versions quickly to reproduce issues Debug plugin theme code with Xdebug in an isolated Playground Host machine readiness Node js 20 18 npm npx available Project path to mount auto mount or explicit mount mapping Desired WP version PHP version optional defaults to latest WP PHP 8 3 Blueprint location URL if running a blueprint Port preference if 9400 conflicts Whether Xdebug is needed Playground instances are ephemeral and SQLite backed never point at production data Confirm Node 20 18 node v before running CLI If mounting local code ensure it is clean of secrets Playground copies files into an in memory FS bash cd plugin or theme root npx wp playground cli latest server auto mount Opens on http localhost 9400 by default Auto detects plugin theme and
- description: "Use for WordPress Playground workflows: fast disposable WP instances in the browser or locally via @wp-pla
- compatibility: "Targets WordPress 6.9+ (PHP 7.2.24+). Playground CLI requires Node.js 20.18+; runs WP in WebAssembly wit
- - Spin up a disposable WordPress to test a plugin/theme without full stack setup.
- See SKILL.md for wp-playground operational details.
- See SKILL.md for wp-playground operational details.
Wp Playground by the numbers
- 2,470 all-time installs (skills.sh)
- +165 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #320 of 16,659 AI & Agent Building skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
wp-playground capabilities & compatibility
- Capabilities
- description: "use for wordpress playground workf · compatibility: "targets wordpress 6.9+ (php 7.2. · spin up a disposable wordpress to test a plugi · see skill.md for wp playground operational detai
- Use cases
- orchestration
What wp-playground says it does
description: "Use for WordPress Playground workflows: fast disposable WP instances in the browser or locally via @wp-playground/cli (server, run-blueprint, build-snapshot), auto-mounting plugins/theme
compatibility: "Targets WordPress 6.9+ (PHP 7.2.24+). Playground CLI requires Node.js 20.18+; runs WP in WebAssembly with SQLite."
- Spin up a disposable WordPress to test a plugin/theme without full stack setup.
npx skills add https://github.com/wordpress/agent-skills --skill wp-playgroundAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2.5k |
|---|---|
| repo stars | ★ 1.9k |
| Security audit | 2 / 3 scanners passed |
| Last updated | July 27, 2026 |
| Repository | wordpress/agent-skills ↗ |
What does wp-playground help with and when should an agent load it?
Use for WordPress Playground workflows: fast disposable WP instances in the browser or locally via @wp-playground/cli (server, run-blueprint, build-snapshot), auto-mounting plugins/themes, switching W
Who is it for?
Developers using wp-playground as documented in the skill repository.
Skip if: Skip when the task falls outside the wp-playground documented scope.
When should I use this skill?
Use for WordPress Playground workflows: fast disposable WP instances in the browser or locally via @wp-playground/cli (server, run-blueprint, build-snapshot), auto-mounting plugins/themes, switching W
What you get
Agent actions aligned with the wp-playground SKILL.md workflow and documented deliverables.
- Disposable WP instances
- Blueprint run results
- Reproducible snapshots
By the numbers
- Targets WordPress 6.9+ and PHP 7.2.24+
- Playground CLI requires Node.js 20.18+
- Runs WordPress in WebAssembly with SQLite
Files
WordPress Playground
When to use
- Spin up a disposable WordPress to test a plugin/theme without full stack setup.
- Run or iterate on Playground Blueprints (JSON) locally.
- Build a reproducible snapshot of a site for sharing or CI.
- Switch WP/PHP versions quickly to reproduce issues.
- Debug plugin/theme code with Xdebug in an isolated Playground.
Inputs required
- Host machine readiness: Node.js ≥ 20.18,
npm/npxavailable. - Project path to mount (
--auto-mountor explicit mount mapping). - Desired WP version/PHP version (optional; defaults to latest WP, PHP 8.3).
- Blueprint location/URL if running a blueprint.
- Port preference if 9400 conflicts.
- Whether Xdebug is needed.
Procedure
0) Guardrails
- Playground instances are ephemeral and SQLite-backed; never point at production data.
- Confirm Node ≥ 20.18 (
node -v) before running CLI. - If mounting local code, ensure it is clean of secrets; Playground copies files into an in-memory FS.
1) Quick local spin-up (auto-mount)
cd <plugin-or-theme-root>
npx @wp-playground/cli@latest server --auto-mount- Opens on http://localhost:9400 by default. Auto-detects plugin/theme and installs it.
- Add
--wp=<version>/--php=<version>as needed. - For classic full installs already present, add
--skip-wordpress-setupand mount the whole tree.
2) Manual mounts or multiple mounts
- Use
--mount=/host/path:/vfs/path(repeatable) when auto-mount is insufficient (multi-plugin, mu-plugins, custom content). - Mount before install with
--mount-before-installfor bootstrapping installer flows. - Reference:
references/cli-commands.md
3) Run a Blueprint (no server needed)
npx @wp-playground/cli@latest run-blueprint --blueprint=<file-or-url>- Use for scripted setup/CI validation. Supports remote URLs and local files.
- Allow bundled assets in local blueprints with
--blueprint-may-read-adjacent-fileswhen required. - See
references/blueprints.mdfor structure and common flags.
4) Build a snapshot for sharing
npx @wp-playground/cli@latest build-snapshot --blueprint=<file> --outfile=./site.zip- Produces a ZIP you can load in Playground or attach to bug reports.
5) Debugging with Xdebug
- Start with
--xdebug(or--enable-xdebugdepending on CLI release) to expose an IDE key, then connect VS Code/PhpStorm to the host/port shown in CLI output. - Combine with
--auto-mountfor plugin/theme debugging. - Checklist:
references/debugging.md
6) Version switching
- Use
--wp=to pin WP (e.g., 6.9.0) and--php=to test compatibility. - If feature depends on Gutenberg trunk, prefer the latest WP release plus plugin if available; Playground images track stable WP plus bundled Gutenberg.
7) Browser-only workflows (no CLI)
- Launch quick previews with URL fragments or query params:
- Fragment:
https://playground.wordpress.net/#<base64-or-json-blueprint> - Query:
https://playground.wordpress.net/?blueprint-url=<public-url-or-zip> - Use the live Blueprint Editor (playground.wordpress.net) to author blueprints with schema help; paste JSON and copy a shareable link.
Verification
- Verify mounted code is active (plugin listed/active; theme selected).
- For blueprints/snapshots, re-run with
--verbosity=debugto confirm steps executed. - Run targeted smoke (e.g.,
wp plugin listinside Playground shell via browser terminal if exposed) or UI click-path.
Failure modes / debugging
- CLI exits complaining about Node: upgrade to ≥ 20.18.
- Mount not applied: check path, use absolute path, add
--verbosity=debug. - Blueprint cannot read local assets: add
--blueprint-may-read-adjacent-files. - Port already used:
--port=<free-port>. - Slow/locked UI: disable
--experimental-multi-workerif enabled; or enable it to improve throughput on CPU-bound runs.
Escalation
- If PHP extensions or native DB access are required, Playground may be unsuitable; fall back to full WP stack or wp-env/Docker.
- For browser-only embedding or VS Code extension specifics, consult the upstream docs: https://wordpress.github.io/wordpress-playground/
Blueprint quick reference
Blueprints are JSON recipes that describe how Playground should set up WordPress.
Minimal example
{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"steps": [
{ "step": "installTheme", "themeZipUrl": "https://downloads.wordpress.org/theme/twentytwentythree.zip" },
{ "step": "installPlugin", "pluginZipUrl": "https://downloads.wordpress.org/plugin/classic-editor.zip" }
]
}Common steps (non-exhaustive)
setSiteUrl,setHomeUrlinstallTheme,installPlugin(ZIP URLs or local paths when allowed)activateTheme,activatePluginrunPHP(inline PHP)applyPatches(filesystem patch)writeFile(create/update files)importFile(XML/WXR)wpConfigConstants(define constants)preferredVersions(pick WP/PHP; matches CLI--wp/--php)blueprintStepsthat includeextraLibraries(e.g., Jetpack) andfeatures.networkingwhen browser networking is required
Tips
- Use
--blueprint-may-read-adjacent-fileswhen the blueprint needs local files (e.g., custom plugin ZIP) duringrun-blueprintorbuild-snapshot. - For iterative authoring, keep blueprints small and compose via separate files.
- Validate against the published schema URL above to catch typos.
- For Gutenberg/nightly testing, set
--wp=<version>to align with target WP. - To share quickly, encode the blueprint as base64 in the Playground URL fragment or host the JSON/ZIP and pass
?blueprint-url=….
Playground CLI command cheatsheet
Requires Node.js 20.18+ and npm/npx.
Latest version: 3.0.20 (November 2025)
What's new in 2025
- PHP 8.3 is now the default (since July 2025).
- New PHP extensions: ImageMagick, SOAP, and AVIF GD support.
- OpCache enabled: 42% faster response times (185ms → 108ms average).
- Multi-worker default:
--experimental-multi-workernow defaults to CPU count minus one.
Install / run server
npx @wp-playground/cli@latest server [--port=9400] [--auto-mount] [--wp=<ver>] [--php=<ver>] [--verbosity=debug] [--blueprint=<url-or-path>]- Mounts:
--auto-mount(detect plugin/theme in CWD)--mount=/abs/host:/vfs/path(repeatable)--mount-before-install(apply mounts before WP install)
Run a blueprint
npx @wp-playground/cli@latest run-blueprint --blueprint=<file-or-url> [--blueprint-may-read-adjacent-files] [--wp=<ver>] [--php=<ver>] [--verbosity=debug]- Use for scripted setup; no persistent server.
Build a snapshot
npx @wp-playground/cli@latest build-snapshot --blueprint=<file-or-url> --outfile=./site.zip [--verbosity=debug]- Produces a sharable ZIP usable by Playground UI or other CLI commands.
Debugging flags
--xdebug/--enable-xdebug(depends on release) to start Xdebug listener.--experimental-multi-workerto speed multi-step blueprints; disable if unstable.
Version control
--wp=<version>to pick WordPress version (defaults to latest).--php=<version>to pick PHP version (defaults to 8.3 since July 2025).
Debugging WordPress Playground
- Start CLI with Xdebug:
server --auto-mount --xdebug(or--enable-xdebugdepending on release). The CLI prints host/port and IDE key to configure your debugger. - If breakpoints are not hit, confirm:
- IDE listens on the port shown by CLI.
- Path mappings include the mounted VFS path used by Playground.
- For slow or stuck runs:
- Add
--verbosity=debugto see step-level logs. - Disable
--experimental-multi-workerif it was enabled. - For mount issues:
- Prefer absolute paths in
--mount. - Use
--mount-before-installwhen installer steps need files present early. - To inspect runtime state:
- Open the Playground browser console; the Service Worker logs network/FS events.
- Use the “Terminal” tab (if available) to run WP-CLI inside the instance.
Related skills
How it compares
Pick wp-playground over full Docker WordPress stacks when you need seconds-fast disposable instances and blueprint-driven plugin tests via @wp-playground/cli.
FAQ
What is wp-playground?
Use for WordPress Playground workflows: fast disposable WP instances in the browser or locally via @wp-playground/cli (server, run-blueprint, build-snapshot), auto-mounting plugins
When should I use wp-playground?
Use for WordPress Playground workflows: fast disposable WP instances in the browser or locally via @wp-playground/cli (server, run-blueprint, build-snapshot), auto-mounting plugins
Is wp-playground safe to install?
Review the Security Audits panel on this page before installing in production.