Agent plugins¶
wrapido ships one skill, wrapido (skills/wrapido/SKILL.md), packaged as a plugin for several AI coding tools. The skill teaches the agent to:
- start in the
wp/v2namespace and discover the API before acting; - always run in agent mode;
- authenticate with Application Passwords or OAuth2, and walk you through setting one up when a request needs it;
- fetch every item with
--per_page=-1; - make bulk changes with several ids (batched through
/batch/v1) and read partial failures; - upload files;
- keep output small;
- follow the safety rules (drafts by default, confirm before deleting) and avoid the common gotchas.
The skill is only knowledge: the agent still runs the real wrapido command, so install the CLI first. See AI agents for the full setup, including credentials and a site.
Supported tools¶
| Tool | Agent mode | Guide |
|---|---|---|
| Claude Code | Detected (CLAUDECODE) |
Claude Code |
| GitHub Copilot CLI | Detected (COPILOT_AGENT, COPILOT_ALLOW_ALL) |
GitHub Copilot |
| VS Code (Copilot chat) | Not detected, so set WRAPIDO_AGENT=1 |
GitHub Copilot |
| OpenAI Codex | Detected (CODEX_*) |
Codex |
| Gemini CLI | Not detected, so set WRAPIDO_AGENT=1 |
Gemini CLI |
| Cursor | Detected (CURSOR_AGENT) |
Cursor |
Where agent mode isn't detected, the skill also tells the agent to prefix its commands with WRAPIDO_AGENT=1 when wrapido --debug --help reports agent mode: off. In any tool, wrapido --debug --help shows whether it's on.
Other tools¶
Most other agents (OpenCode, Cline, Windsurf, Roo Code, Junie, Amp, Goose and more) read Agent Skills from a skills folder without a plugin. Copy skills/wrapido into that tool's skills folder (often .agents/skills/), or point the agent at AGENTS.md, which is the same guidance as a plain file. Set WRAPIDO_AGENT=1 unless the tool is listed under Agent mode → Turn it on.
How the plugins work¶
Every tool loads the same skill from skills/wrapido/SKILL.md, which follows the open Agent Skills format. Each tool reads a small manifest that names the plugin and points it at that folder:
| Tool | Manifest it reads |
|---|---|
| Claude Code | .claude-plugin/plugin.json + marketplace.json. This repository is a plugin and its own single-plugin marketplace. |
| GitHub Copilot (CLI and VS Code) | The Claude Code files, read directly. |
| OpenAI Codex | .claude-plugin/marketplace.json, plus a generated .codex-plugin/plugin.json that adds a display name, a category and example prompts for its plugin browser. |
| Gemini CLI | gemini-extension.json (generated). |
| Cursor | .cursor-plugin/plugin.json (generated). |
A skill is loaded only when a request is relevant (anything about a WordPress site), so it costs nothing in other conversations. Because every tool shares one skill, an update reaches all of them at once: update the plugin in your tool (each guide shows how) to pick it up.
For maintainers¶
.claude-plugin/plugin.json is the single source of truth.
- Edit only that file and
skills/. Then runnpm run sync:pluginsto regenerategemini-extension.json,.cursor-plugin/plugin.jsonand.codex-plugin/plugin.jsonfrom it. The Codex/Cursor-only extras (logo, example prompts) live inscripts/sync-agent-plugins.js. - Keep
versionin.claude-plugin/plugin.jsonequal topackage.json's. You don't bump it by hand for a release: publishing a GitHub Release with tagvX.Y.Zmakesrelease.ymlsetpackage.json,package-lock.jsonand every manifest toX.Y.Zand commit that. Claude Code only offers an update when the version changes. - CI runs
npm run check:plugins, which fails if any of these is true:- a generated file is stale;
- the two versions differ;
- a skill breaks the Agent Skills
name/descriptionrules (VS Code silently drops a skill whosenameis invalid).
- CI also runs
claude plugin validate .. - Never add a
plugin.jsonat the repository root. Copilot (and Codex, given a$schema) would prefer it over.claude-plugin/.