Claude Code, Codex or OpenCode for WordPress?
No AI vendor documents PHP or WordPress. Compare what Claude Code, Codex and OpenCode actually do against a theme or plugin codebase.
Devon Parker · @dparker
APIs and integrations
- Topic
- TOOL
- Section
- Tooling & Workflow
- Published
- 16 OCT 2026
- Reading time
- 9 MIN
- Words
- 2066W
There is no benchmark for this question, and that is not a gap in my research. It is the state of the field. The one widely quoted agent benchmark, Aider's polyglot set, covers C++, Go, Java, JavaScript, Python and Rust. PHP is not in it. No vendor publishes a defensible SWE-bench-style figure at all, and the vendors' own documentation contains no mention of WordPress, WooCommerce, WP-CLI or PHP anywhere I or the researcher could find.
So a comparison has to be built from something else: what each tool can do to a real WordPress install, how it treats a theme or plugin codebase, what it costs, and where it stops. This is that comparison, and it starts by removing two names from the shortlist that are still in most recent lists.
Windsurf is gone, and Gemini CLI was replaced
Windsurf is gone. windsurf.com returns a 308 redirect to
devin.ai/desktop, and the documentation domain redirects to Devin's docs. The
product was absorbed by Cognition and its pricing is now Devin's: Pro at $20 a month, Max at
$200, and a teams plan at $80 a month plus $40 per full developer seat. If you are reading an
article that quotes Windsurf at $15 a month, that article predates the absorption and you
should close the tab.
Gemini CLI was replaced. Google's own repository states that Gemini CLI stopped serving
requests for Google AI Pro and Ultra subscribers and for the free individual tier on 18 June
2026, and directs users to Antigravity CLI (agy), which was rewritten in Go. The
enterprise carve-out is real: organisations on Gemini Code Assist Standard or Enterprise, or
reaching Code Assist through Google Cloud, kept access, and Gemini CLI still works with paid
API keys. For an individual WordPress developer deciding what to install this week, that
distinction does not help. Antigravity is the successor, its Pro and Ultra prices are not
published on its pricing page, and whether it honours AGENTS.md is not documented
either way.
Devin still exists and is a legitimate product with cloud agents, but the thing that used to be Windsurf does not. Aider is a third case worth knowing about: it remains installable and its repo-map idea was good, but the last release was August 2025 and its README still leads with Claude 3.7 Sonnet. I would not start a WordPress project on it, and I would not describe it as maintained.
What actually separates the three that remain
Claude Code, Codex and OpenCode all read and edit files, all run shell commands, and all reach the same class of model. On the narrow question of writing PHP, the difference is mostly the model behind the harness, and you can change that in OpenCode and partly in the others. The differences that matter to WordPress work are elsewhere.
| Claude Code | Codex | OpenCode | |
|---|---|---|---|
| Entry cost | Pro $17/mo annual, $20 monthly. Not in Free. | Plus $20/mo. Go at $8 with limits. | Free and open source, plus your tokens |
| Models | Anthropic aliases; Bedrock, Vertex, Foundry | GPT-6.1 Sol on paid, GPT-6 Luna on Free/Go | Any provider you configure |
Reads AGENTS.md | Only when no CLAUDE.md or CLAUDE.local.md exists | Yes, co-author of the standard | Yes, primary convention |
| Runs commands | Sandboxed Bash tool, permission modes, hooks | Sandbox with writable roots, codex exec for CI | Plan and Build modes, per-tool permissions, LSP |
| WordPress evidence | WordPress.org MCP lists it as a supported client | Gutenberg's docs name it for skill discovery | One published run against WordPress 7.1.3 |
| Where it stops | Usage pool shared with chat; instruction-file precedence | Model churn; retired models appear in older guides | v1 and v2 cannot coexist; you build everything |
Read that table for what it does not say. None of the three has a WordPress-aware linter, a
PHP-specific benchmark, or any vendor guidance about hooks, escaping or theme.json.
What each one has is a way to run commands, and the gap between them is how much work you have
to do to point those commands at a real site.
OpenCode is the only one of the three with a full WordPress run behind it
The one piece of hard evidence in this comparison is a published run of OpenCode v1.18.30
driving DeepSeek's deepseek-flash model. One prompt, no corrections, a Gutenberg
block plugin called Acme Notice. It produced 14 files. The plugin activated in real WordPress
7.1.3, the block registered, the agent's own WP-CLI command returned the right database row,
and the front end rendered over HTTP. Escaping held: a CSS injection attempt was rejected and a
<script> tag was stripped while <strong> survived.
The caveats belong next to the result rather than in a footnote. It was one run, one model, one task type, and the task was a Gutenberg block with a dynamic render callback, which is about the most common WordPress pattern in public code. The editor was never opened in a browser and WordPress Coding Standards were never run. What that run proves is narrower than "OpenCode is best". It proves that a model-agnostic terminal agent with a cheap model can produce a working WordPress plugin when someone gives it a real install to test against. That is a meaningful thing to prove, and no equivalent published run exists for Claude Code or Codex.
Two further OpenCode facts decide whether it suits you. It is genuinely model-agnostic: any
provider, including local models through Ollama or LM Studio, plus LSP integration. And it is
mid-migration. OpenCode v2 is out, v1 and v2 share the opencode command, and they
cannot be installed side by side. If you have scripts or muscle memory around a version, budget
an afternoon for the move. OpenCode Enterprise is per-seat with no published price.
Claude Code and Codex each trade money for less setup
Claude Code is the most polished of the three and the one with the most WordPress-adjacent recognition: WordPress.org's official MCP server lists Claude Desktop, Claude Code, Cursor and VS Code as the clients it configures automatically. Anthropic also lists a PHP language-server plugin in its plugin directory, which is the mechanism by which an agent can see PHP type errors after an edit and navigate code by symbol rather than by grep. The researcher confirmed the plugin exists on Anthropic's plugin page but did not install or test it, so treat it as a documented option rather than a known quantity.
Two Claude Code behaviours catch people. It reads AGENTS.md only when no
CLAUDE.md or CLAUDE.local.md exists above the working directory,
unless you change the project instructions setting to read both, and direct
AGENTS.md reading needs version 2.1.277 or newer. WordPress's own pattern, a
one-line CLAUDE.md containing @AGENTS.md, therefore breaks the moment
someone adds a CLAUDE.local.md. The second is billing: Claude Code is included in
every paid plan, but your coding sessions and your chat share one usage pool with a rolling
five-hour window and weekly limits on top. A long agent run costs you conversation.
Codex is the direct alternative at a similar price, and it is the agent that helped define
the AGENTS.md convention, which it reads natively. Gutenberg's agent documentation
notes that Codex discovers the repository skill catalog without extra configuration, where
Claude Code needs a generated compatibility view. Beyond that, the WordPress case for Codex is
the same as for Claude Code: it will run commands in your repository, and the work of pointing
those commands at WordPress is yours. Its practical hazard is model churn. GPT-5.5 was retired
from Codex for signed-in ChatGPT users on 14 October 2026, two days before this was written,
with GPT-6.1 Sol and GPT-6 Luna as the migrations. Any walkthrough naming GPT-5.5 as the
current default is already wrong.
Cursor and Copilot are worth knowing, for narrower reasons
Cursor is no longer sold on its own. It is part of "The X Subscription", one subscription covering Grok, Cursor and X, and the pricing page reads like a social media plan with a code editor attached. The $8 Plus tier includes only Cursor's own models at fixed settings, with third-party models, cloud agents and your own API keys all excluded. Frontier third-party models need Premium at $30 a month or above and are billed at API list price from prepaid credit. It is a defensible product and WordPress.org's MCP server supports it. The pricing is the problem, not the editor.
GitHub Copilot is the cheapest paid entry at $10 a month for Pro, and it reads
AGENTS.md, CLAUDE.md and GEMINI.md as agent
instructions, with the documentation's own caveat that these are not supported by every
Copilot feature. Free covers 2,000 inline completions a month with automatic model selection
only. If you already pay for GitHub and want a low-commitment first step, Copilot Pro is a
reasonable one. It is not where I would build a WordPress plugin workflow.
Cursor's affiliate link is a soft 404
Cursor is the one tool in this set that looks like it has an affiliate programme.
cursor.com/affiliate returns HTTP 200, and so does a path that does not exist,
because the site serves a 200 shell for everything. Any commission rate you have seen quoted
for Cursor came from that shell. None of these tools has a programme, so nothing in this
article earns anything, and any page that tells you otherwise is guessing.
Judge an agent by the loop you can build around it
Here is the test I would apply instead of a feature table. Take a small plugin from your own site. Ask each candidate to add one setting to an existing admin screen. Then watch what it does when it needs to know whether the change works.
An agent with no route to a running WordPress will write a test harness with hand-rolled
stubs of WordPress functions. That is what happened in the OpenCode run before the researcher
tested it properly: the agent stubbed wp_kses_post() and
get_block_wrapper_attributes(), reported green, and admitted it could not run its
own CLI command because no WordPress was present. An agent with Playground, wp-env
or a local install will run the command and read the output. Everything else about the tool is
secondary to that difference. If you want the setup that closes the loop, including mounting a
site the agent can reach and giving it error output worth reading, that is what the course on
WordPress development with AI agents covers in
its second module.
The second thing to watch is what the agent does with your AGENTS.md. Start
from wp-cli/wp-cli's file, which is 140 lines and prescribes WPCS through
composer phpcs, PHPStan, PHPUnit with filters and Behat, and warns that the full
suite takes tens of minutes. An agent that reads that file and runs the cheap command for the
file it changed is doing more for your codebase than a better model would. An agent that
ignores it will happily report success on a build that never checked anything.
What it costs, and what nobody has measured
Monthly subscription is the smaller number. Claude Code Pro is $17 a month billed annually or $20 monthly, and coding draws on the same pool as chat. Codex Plus is $20, with Go at $8 and Pro tiers at $100, $200 or $500 depending on how much you want. Copilot Pro is $10, Pro+ $39, Max $100. Cursor Plus is $8 for Cursor's own models only, and Premium is $30 before any third-party model usage.
OpenCode is free and you pay for tokens, which is where the comparison gets strange. DeepSeek charges $0.15 per million input tokens and $0.60 per million output tokens at peak for the Flash model, and half that off-peak, with cache hits at a fraction of a cent. A day of heavy agent work on a small plugin costs less than a coffee. The trade is configuration time and the absence of a support contract.
What nobody has measured is which agent writes better WordPress code. There is no PHP benchmark, no vendor figure worth quoting, and no published comparison beyond a single run. I would rather say that plainly than invent a ranking. The three tools here are all capable of the work, none of them knows anything about WordPress by default, and the deciding factor is almost always whether you built the feedback loop. Pick the one whose instruction-file behaviour and billing you can live with, then spend the real effort on the WordPress side of the fence, where the tooling actually exists.
Devon Parker · @dparker
APIs and integrations
Works through REST contract design, webhook reliability, idempotency keys, retry policy and the unglamorous edge cases that appear when two systems disagree about what happened.
Continue