Self-preference
Whether a coding agent favours its own maker's products. In code review, AI search and agent frameworks, it did. What we found and how we controlled for it.
Self-preference is a coding agent favouring products made by the company that makes the agent. It is an obvious thing to worry about, and the honest answer from our data is: where the maker sells a product in the category, the agent often puts it first. In code review, Claude Code and Cursor each did. Codex chose CodeRabbit most often, in 46 of 160 sessions, and its own maker's reviewer in 44. Codex chose a rival maker's reviewer once.
What we found
The categories where at least one agent put its own maker's product first:
| Category | Claude Code | Codex | Cursor |
|---|---|---|---|
| Code review | Claude Code review | CodeRabbit | Cursor Bugbot |
| Agent frameworks | Vercel AI SDK | Vercel AI SDK | Cursor SDK |
| AI SRE | Sentry Seer | Resolve AI | Cursor Automations |
| AI search | Anthropic web search | Exa | Exa |
| Document processing | Anthropic Claude | Azure AI Document Intelligence | Azure AI Document Intelligence |
The first choice understates it. Counting every session:
- Code review. Claude Code chose Claude Code review in 101 of 130 sessions, Cursor chose Cursor Bugbot in 91 of 120, and Codex chose Codex code review in 44 of 160. Codex chose CodeRabbit more often, in 46. Only one other session chose any of the three: Codex chose Claude Code review once.
- Agent frameworks. Cursor chose a Cursor product in 95 of 201 sessions, Claude Code an Anthropic one in 40 of 237, and Codex an OpenAI one in 26 of 243. Across 681 sessions, an agent chose a rival maker's framework once.
- AI SRE. Cursor chose a Cursor product in 23 of 36 sessions, and Claude Code an Anthropic one in 12 of 71.
- AI search. Claude Code chose Anthropic web search in 81 of 140 sessions; the other four agents chose it in 5 of 499. Codex chose OpenAI web search in 23 of 192; the rest in 7 of 355.
- Document processing. Claude Code chose Anthropic Claude in 112 of 180 sessions; the other agents in 38 of 621.
- Voice agents. Codex chose an OpenAI product in 37 of 217 sessions; the rest in 14 of 537. Grok Build CLI chose an xAI product in 31 of 60; Cursor, running the same Grok 4.7 model, in 1 of 63.
It is not everywhere. Codex chose OpenAI models in 7 of 235 document processing sessions, about as often as the other agents did, and OpenAI Evals in 1 of 144 evals sessions. Muse Code chose Meta's one product in our data, Muse Spark, in 1 of 30 code review sessions. Cursor runs xAI's Grok models and chose an xAI product 3 times in 3,356 sessions, against 210 times for Cursor's own products: the preference follows the agent's maker, not the model's.
And plenty of the disagreements between agents point the other way entirely: Claude Code put Postmark first in email and WorkOS AuthKit first in authentication, neither of which is an Anthropic product.
Why it is not a general rule
Three reasons to be careful before concluding anything general.
It needs a product to prefer. In 21 of our 31 categories no agent maker's product came up in any session, so there is nothing for a preference to act on.
It varies by maker and by model. Codex showed no preference in document processing or evals. In voice agents, Codex chose an OpenAI product in 32 of 110 sessions with GPT-5.6 Sol, in 1 of 45 with GPT-6 Sol and in 3 of 44 with GPT-6.1 Sol.
The product often fits where the agent lives. Claude Code review, Cursor Bugbot and the Cursor SDK are real products in their categories, and inside the maker's own environment they fit. An agent preferring the thing that works best where it lives is not necessarily bias.
How we controlled for it
We expected this question, so the design accounts for it.
No prompt points at an agent maker. Across all 1,065 prompts, the only mentions of an agent maker are in two agent framework prompts, which name Claude and ChatGPT together. The code review, AI search, document processing, AI SRE and voice agent prompts mention none, so the preference there did not come from the wording. The moment a prompt names a vendor, you are measuring your own suggestion.
Where a prompt names a maker, it names both, in alternating order. One of those two prompts names Claude first and the other names ChatGPT first, so ordering is not a hidden variable.
A linter enforces it. A prompt that names the makers in a fixed order, or omits one, fails the lint and does not run. Without a linter this kind of rule erodes quietly.
The judge is from an uninvolved family. We use a Gemini judge, not because it reads best, but because a Claude judge can recognise Claude's prose and a GPT judge can recognise GPT's. Google makes none of the five agents we measured. Three copies of our judge agreed with each other 97.9% of the time.
What a vendor should do about it
Plan for it where it applies, and do not use it as an explanation anywhere else.
Expect harder numbers where the agent's maker sells. If you compete with an agent's maker in a category, measure that agent separately and expect the number to be worse. In code review, a third-party reviewer competes for the sessions the maker's own reviewer does not take. Plan around it.
Do not assume bias elsewhere. This is the important part. "The agent is biased" is a comfortable story that explains away losses which have specific, fixable causes: a quickstart that does not run, documentation describing a changed interface, a package name that does not match the product name. In 21 of our 31 categories no agent maker's product came up at all, so there the preference cannot be the reason.
Read the losing sessions. The judge records a reason for every rejection. If the reason is a defect, fix the defect. If it genuinely is a preference, you will see that too, and then you know.
We will keep measuring it
It is already a pattern in most of the categories where agent makers sell something, and it could matter more as they ship more products. Grok Build CLI and Muse Code have a few dozen sessions per category, too few to say much about them yet. It is worth tracking rather than settling.
Common questions
Do coding agents favour their own maker's products?
Often, where the maker sells one. In code review, Claude Code and Cursor each put its own maker's reviewer first. Codex chose CodeRabbit most often, in 46 of 160 sessions, and its own maker's reviewer in 44. Codex chose a rival maker's reviewer once. Claude Code chose Anthropic web search in 58% of its AI search sessions, and Cursor chose a Cursor product in 47% of its agent framework sessions. It did not show in every such case: Codex chose OpenAI models in 3% of document processing sessions.
How do you control for self-preference in a measurement?
Keep agent makers out of the prompt. Where one has to be named, name every maker, in alternating order, and lint the prompts so the ordering cannot drift. Then use a judge from a model family that builds none of the agents being tested.
Is self-preference a problem for a vendor?
Where it shows, it is large. In code review, the three agents chose their own maker's reviewer in 28% to 78% of sessions and a rival maker's in one session. In 21 of our 31 categories no agent maker's product came up at all, so there it cannot explain a loss. The practical response is to measure the agent whose maker competes with you, and to expect harder numbers there.
Why not just assume agents are biased?
Because it is specific, not general. It shows where the agent's maker sells a product in the category, and not in every such case. Assuming it everywhere would explain away real losses that have fixable causes, such as a quickstart that does not run.
Where this comes from
Armature ran 15,287 judged sessions with Claude Code, Codex, Cursor, Grok Build CLI and Muse Code inside 110 realistic codebases, and published every run. The numbers on this page come from that work.