OpenStation vs WPVibe: codebase comparison and opportunities

Date: July 31, 2026

Compared: OpenStation 0.9.7 (trunk @ 34cc720f, Jul 31) vs WPVibe 1.13.3 (~/github/wpvibe-ai-mcp, main @ 713e22e).

Companion doc: WPVibe growth analysis (why their downloads grew).

Source: openstation/competitive/wpvibe-code-comparison.md

TL;DR

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".

Architecture at a glance

OpenStation 0.9.7WPVibe 1.13.3
VendorAutomatticSeedProd / Awesome Motive
DirectionAI inside wp-admin (Cmd+K Copilot, agents)WordPress inside AI clients (Claude/ChatGPT/Cursor)
MCPNo transport; abilities pre-annotated mcp: publicNo MCP code in plugin; closed-source Worker relay is the MCP server
AI providerWP Core AI Client (WP 7.0 Connectors), no keys in pluginBYO AI client subscription; app password relayed via SaaS
SaaS dependencyNoneTotal: auth, tool schemas, approvals, skills, metering all at wpvibe.ai
Write accessCopilot 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 modelRead-only ability boundary; agents: per-agent ability allowlist + invoker capability ceiling + agents-as-WP-usersDestructive classifier → 409 approval → re-invoke; blocked-options hard list; audit log table; anti-jailbreak error directives
Abilities APIRegisters 13 abilities (8 copilot + 5 agent), consumes all site-registered onesRegisters none; consumption is Worker-side via Core REST
CodebaseTS + Vite, 33 bundles, vitest + PHPUnit, docs/ public contract15.7k LOC procedural PHP, no tests, no build tooling, one 6,323-line CLI class
MonetizationNoneServer-side metering at wpvibe.ai (plugin is clean; cannot tell free from paid)
SurfaceHuge UX product (~100 REST routes, windows, files, games, presence, PWA)Almost no UI (2 admin screens); chat lives in the AI client

Similarities

  1. Same bet on the Abilities API as the interop layer for AI × WordPress (OpenStation in code, WPVibe in marketing plus Worker-side consumption).
  2. Application passwords as the credential. WPVibe connects through them; OpenStation already ships issuance/revocation UI (includes/user-edit-window/rest.php).
  3. Draft-first safety instinct. WPVibe: draft themes, posts default to draft, trash-first deletes. OpenStation: agent create-post is hard-wired to draft and can never publish.
  4. Human-in-the-loop as a design value. WPVibe: destructive classifier + approval log. OpenStation: read-only Copilot boundary, agent allowlists, registerDestructiveAdminAction, os-confirm-dialog.
  5. Prompt-injection awareness in both codebases, with opposite mitigations: OpenStation never hands the model a mutating tool in attacker-influenced turns; WPVibe embeds anti-jailbreak directives in error payloads and gates the white-label toggle so an injected assistant can't hide its own audit trail.
  6. Free + GPL on wordpress.org as the distribution base.

Key differences

  1. Open vs closed core value. WPVibe markets "no vendor lock-in" while its entire MCP layer, approval UI, and skills system are closed-source SaaS; if wpvibe.ai disappears, the plugin is inert. OpenStation is fully self-contained and Core-aligned. This is an honesty gap worth exploiting in positioning, not just noting.
  2. Distribution physics. WPVibe inherits the AI clients' user bases (listed in the ChatGPT app store). OpenStation must earn wordpress.org visits. This, more than any feature, explains the install-count gap.
  3. Write capability today. WPVibe does real site mutations now, with 95 allowlisted WP-CLI-emulated commands, theme file editing, and deep Elementor/Beaver/SeedProd/WPCode paths. OpenStation's mutating surface exists (agents) but is default-off, undocumented in the readme, and reachable only in-shell.
  4. Engineering rigor inverted from what you'd expect. OpenStation has typecheck/lint/vitest/PHPUnit/docs-contract discipline. WPVibe has zero automated tests and a 267 KB god class, but its inline comments are exceptional: nearly every guard documents the production incident that produced it (host WAFs, stripped Authorization headers, PHP-WASM, Site Kit init order). Their changelog credibility ("we used to report success for work we didn't do") is a trust asset built from those scars.
  5. WPVibe's integrations are narrower than marketed. Elementor (769 lines) and Beaver (457) are real; WooCommerce and ACF have literally zero integration code (generic REST/meta paths do the work). The "integrates with everything" story is mostly the Abilities/REST surface plus marketing.

What WPVibe does well (worth stealing)

Where OpenStation is already ahead

Opportunities (ranked)

  1. Ship the MCP transport; it is the missing 10%. The abilities already carry 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.
  2. Take the agents framework out of hiding. It is default-off, absent from readme.txt, and unnamed in the changelog while being precisely what the market is buying. Even keeping it opt-in, it should headline the listing: seeded agents (tl;dr, SEO Medic, Alt Text Librarian, Localizer, Comment Concierge) are demo-able, screenshot-able, and directly comparable to WPVibe's "recipes".
  3. Fix the listing metadata. Tags are 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.
  4. Build the approval/audit surface as a native window. Combine 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.
  5. Expose OpenStation features as abilities. Recycle-bin restore, notes, file placements, comment moderation could each register abilities (mutating ones gated for agents, read-only ones for MCP). Every ability makes an OpenStation install more valuable to ANY MCP client, including WPVibe's own users.
  6. Adopt their error contract and host-compat hardening wherever OpenStation's REST surface meets AI callers (cause enums, auth diagnostics, WAF armoring if external writes ever ship).
  7. Consider a white-label / agency story. WPVibe made it free on all plans because agencies drive multi-site adoption; OpenStation's per-user opt-in model is already agency-friendly but unmarketed.
  8. WooCommerce is an open flank. WPVibe markets it heavily with zero dedicated code. Modest real WooCommerce abilities (read-only sales/product tools for the Copilot) would out-substance them.

Verification notes