The two plugins attack the same thesis (AI should operate WordPress) from opposite directions. WPVibe brings WordPress into the AI client: its open-source plugin is a thin, hardened REST backend, and everything MCP (protocol, OAuth, tool schemas, approval UI, metering) lives in a closed-source Cloudflare Worker at mcp.wpvibe.ai. OpenStation brings AI into WordPress: a fully self-contained Copilot on the WP Core AI Client plus an opt-in durable-agents framework, with no SaaS, no API keys, and no metering.
The strategic surprise from reading both codebases: OpenStation already has most of what WPVibe sells, and WPVibe lacks most of what it markets. OpenStation's abilities are already annotated with mcp => public metadata, application-password issuance is already implemented, and the agents framework already has a stronger governance model than WPVibe's approval loop. What's missing is only the MCP transport and the packaging/positioning. Conversely, WPVibe registers zero abilities, has zero WooCommerce/ACF integration code despite marketing both, and ships zero tests for a product whose pitch is "safely give AI write access to production".
| OpenStation 0.9.7 | WPVibe 1.13.3 | |
|---|---|---|
| Vendor | Automattic | SeedProd / Awesome Motive |
| Direction | AI inside wp-admin (Cmd+K Copilot, agents) | WordPress inside AI clients (Claude/ChatGPT/Cursor) |
| MCP | No transport; abilities pre-annotated mcp: public | No MCP code in plugin; closed-source Worker relay is the MCP server |
| AI provider | WP Core AI Client (WP 7.0 Connectors), no keys in plugin | BYO AI client subscription; app password relayed via SaaS |
| SaaS dependency | None | Total: auth, tool schemas, approvals, skills, metering all at wpvibe.ai |
| Write access | Copilot read-only by design; writes only via opt-in agents (default off) | Full write surface (95 CLI commands, theme files, builders) behind approval flow |
| Safety model | Read-only ability boundary; agents: per-agent ability allowlist + invoker capability ceiling + agents-as-WP-users | Destructive classifier → 409 approval → re-invoke; blocked-options hard list; audit log table; anti-jailbreak error directives |
| Abilities API | Registers 13 abilities (8 copilot + 5 agent), consumes all site-registered ones | Registers none; consumption is Worker-side via Core REST |
| Codebase | TS + Vite, 33 bundles, vitest + PHPUnit, docs/ public contract | 15.7k LOC procedural PHP, no tests, no build tooling, one 6,323-line CLI class |
| Monetization | None | Server-side metering at wpvibe.ai (plugin is clean; cannot tell free from paid) |
| Surface | Huge UX product (~100 REST routes, windows, files, games, presence, PWA) | Almost no UI (2 admin screens); chat lives in the AI client |
includes/user-edit-window/rest.php).create-post is hard-wired to draft and can never publish.registerDestructiveAdminAction, os-confirm-dialog.WP_Error carries cause (11-value enum), retry_ok, user_is_admin, and auth diagnostics on 401s, so the AI gets facts instead of guessing. OpenStation's /ai/search tool errors could adopt this shape.application_password_is_api_request timing fix. Required reading if OpenStation ever exposes writes to external agents.mcp => array( 'public' => true, 'type' => 'tool' ) metadata waiting for an adapter, app-password plumbing exists, and the read-only boundary maps cleanly onto an MCP tool surface. Integrating with the WordPress MCP adapter effort (rather than building a proprietary relay) would make OpenStation connectable from Claude/ChatGPT/Cursor and eligible for the AI-client directories that fueled WPVibe's growth, with the differentiator that the whole chain is open and self-hosted.admin, dashboard, desktop, productivity, ai; WPVibe owns mcp, mcp-server, ChatGPT, Claude, ai-assistant. Searchers on wordpress.org looking for AI-agent functionality cannot find OpenStation today. Also: WPVibe ships a release every 1–3 days and each one lifts its downloads chart; OpenStation merges daily but releases rarely, which reads as less momentum on the listing.registerDestructiveAdminAction, the agents runner, and a persistent audit trail into a visible "Approvals" desktop surface. It converts OpenStation's UX advantage into a trust feature WPVibe can only render inside someone else's chat client.cause enums, auth diagnostics, WAF armoring if external writes ever ship).~/github/wpvibe-ai-mcp source (key files: vibe-ai.php, includes/class-wpvibe-cli.php 6,323 lines with the 95-command ALLOWLIST, class-wpvibe-rest.php with 37 route registrations, class-wpvibe-audit-log.php, class-wpvibe-white-label.php, README.md:24 for the closed Worker).34cc720f (key files: includes/ai-copilot/abilities.php:174-185 for the mcp meta profiles, includes/agents/ 4,995 LOC, includes/user-edit-window/rest.php:182-200 for app-password issuance, readme.txt for tags/positioning, tests/phpunit/tests/aiAbilities.php for the MCP-exposure test).