Install WordPress plugins in Bedrock — lando composer require, Bedrock plugin management, composer.json for WP plugins, WP packagist, wpackagist-plugin, mu-plugins vs plugins, Bedrock plugin activation, composer.json repositories, lando wp plugin list, plugin compatibility, roots/wordpress-packagist
Scanned 9/11/2026
Install to Claude Code
npx -y skills add hekivo/superpowers-sage --skill install-plugin --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Install Plugin?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hekivo-install-plugin)More formats (shields.io, HTML) on the badges page.
---
name: superpowers-sage:install-plugin
description: >
Install WordPress plugins in Bedrock — lando composer require, Bedrock plugin
management, composer.json for WP plugins, WP packagist, wpackagist-plugin,
mu-plugins vs plugins, Bedrock plugin activation, composer.json repositories,
lando wp plugin list, plugin compatibility, roots/wordpress-packagist
user-invocable: true
argument-hint: "[plugin slug|composer package|/absolute/or/relative/path/to/plugin.zip]"
---
# Install Plugin (Composer + Lando)
Install WordPress plugins through Composer only.
Announce at start: "I'm using the install-plugin skill to install this plugin with Composer inside Lando."
## Inputs
$ARGUMENTS
## Rules
- Never use `wp plugin install` for new plugin installation.
- Always run `composer` through Lando: `lando composer ...`.
- Install at project root `composer.json` (WordPress/plugin level), not theme `composer.json`.
- If plugin activation is requested, use `lando wp plugin activate <slug>` after Composer install.
## Procedure
### 1) Validate context
1. Confirm this is a Lando WordPress project (`.lando.yml` and root `composer.json` exist).
2. Read `skills/sage-lando/references/wordpress-composer.md`.
3. Ensure `wp-packages.org` repository exists:
```bash
lando composer config repositories.wp-packages composer https://repo.wp-packages.org
```
### 2) Route by argument type
#### Case A: Local zip (`*.zip`)
1. Resolve path from `$ARGUMENTS`.
2. If zip is outside project root, copy to `./packages/<filename>.zip`.
3. Derive slug from filename:
- `plugin-name.zip` -> package `local/plugin-name`, type `wordpress-plugin`
- `mu-plugin-name.zip` -> package `local/plugin-name`, type `wordpress-muplugin`
4. Add/update a `type: package` repository entry in root `composer.json` pointing to `./packages/<filename>.zip`.
5. Install with Composer:
```bash
lando composer require local/plugin-name
```
#### Case B: Package name already provided (`vendor/name`)
1. If argument already matches `vendor/name`, install directly:
```bash
lando composer require vendor/name
```
2. If it starts with `wp-plugin/`, no extra conversion is needed.
#### Case C: Plugin slug or human name
1. Normalize to a slug candidate (lowercase, dashes).
2. Try package `wp-plugin/<slug>`.
3. If uncertain or missing, search on `https://wp-packages.org/` and map to the exact slug.
4. Install:
```bash
lando composer require wp-plugin/<slug>
```
### 3) Verify installation
```bash
# Composer package installed
lando composer show wp-plugin/<slug>
# WordPress sees plugin
lando wp plugin list
```
If user requested activation:
```bash
lando wp plugin activate <slug>
```
## Failure modes
### Package not found
- Cause: wrong slug or package namespace.
- Fix: search `wp-packages.org` and retry with exact package.
### Composer ran in wrong context
- Cause: command executed in theme folder.
- Fix: run from project root where WordPress `composer.json` lives.
### Zip package installs but plugin not recognized
- Cause: wrong package type (`wordpress-plugin` vs `wordpress-muplugin`) or invalid zip structure.
- Fix: correct repository metadata and ensure zip contains valid plugin root files.
## Completion
Report:
1. Which package was required
2. Whether repository config was added/updated
3. Whether plugin was activated
4. Any manual follow-up needed
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!