All skills
automattic avatar

/wp-playground

@95e374f official
by automatticautomattic/agent-skills211 stars
37

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 WP/PHP versions, blueprints, and debugging (Xdebug).

Use this Skill: https://skilld.dev/gh/automattic/agent-skills/wp-playground

This session only. Nothing lands on disk.

SKILL.md

≈67 tokens always: the name and description. ≈1k when used: this file. ≈974 more on demand in 3 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/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.

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-setup and 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-install for 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-files when required.
  • See references/blueprints.md for 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-xdebug depending on CLI release) to expose an IDE key, then connect VS Code/PhpStorm to the host/port shown in CLI output.
  • Combine with --auto-mount for 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=debug to confirm steps executed.
  • Run targeted smoke (e.g., wp plugin list inside 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-worker if 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/

Source: SKILL.md on GitHub

1 warning17d4 checks · Risk SAFE
  • Gen Agent Trust Hub17d

    The skill provides instructions for using WordPress Playground, a tool for running ephemeral WordPress instances. It involves downloading official packages from Automattic via npm and interacting with official WordPress theme and plugin repositories. While the tool supports executing code via blueprints, this is a standard feature performed within an isolated environment.

  • Socket17d

    No alerts

  • Snyk17d

    Risk: LOW · No issues

  • Runlayer7mo

    4/4 files flagged

Signed by skilld at 95e374f. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 5 months ago.

Dormantupdated 9 months ago
Other metadata
compatibility
Targets WordPress 6.9+ (PHP 7.2.24+). Playground CLI requires Node.js 20.18+; runs WP in WebAssembly with SQLite.
  • Testing
  • wordpress
  • playground
  • webassembly
  • php
  • blueprints
  • xdebug
  • snapshots
  • sqlite

README badge

README badge for automattic/agent-skills/wp-playground

Spins up disposable WordPress instances in the browser or locally via @wp-playground/cli, with auto-mounting of plugins/themes, version switching, blueprints, and Xdebug debugging. Targets WordPress 6.9+ running in WebAssembly with SQLite, ideal for quick testing without full stack setup or reproducing issues across WP/PHP versions.

Generated from the current SKILL.md.

Does this work with WordPress versions older than 6.9?
No. The skill targets WordPress 6.9+ with PHP 7.2.24+. Older versions are not supported.
What Node.js version is required?
Node.js 20.18 or higher. The Playground CLI will not run on earlier versions.
Can I use this to test against production data?
No. Playground instances are ephemeral and SQLite-backed — they are designed for isolated testing only and should never point at production data.
Does this support database systems other than SQLite?
No. Playground runs WordPress in WebAssembly with SQLite. If you need native DB access or PHP extensions, you should use a full WP stack or wp-env instead.
Can I debug plugin and theme code with this skill?
Yes. Use the `--xdebug` flag when starting the server, then connect your IDE (VS Code or PhpStorm) to the exposed port for step-through debugging.

Generated from the current SKILL.md. These answers refresh after source changes.