Gemini 4 Argon vs Claude Opus 5.5 for coding agents
We ran the same coding agent on six tasks with hidden tests, twice per model. Gemini 4 Argon and Claude Opus 5.5 passed every test; Gemini took 1.6 times as long and cost 1.5 times as much per task.
Gemini 4 Argon is Google's new flagship reasoning model. On QuickSilver Pro it costs $2.00 / $10.00 per million tokens, against $1.00 / $5.00 for Claude Opus 5.5. We wanted to know whether it can stand in for Opus in a coding agent, and what that costs.
We tested this on 2026-10-27. Both models ran in the same agent, OpenCode, on six small but real coding tasks, and we graded every run with tests the agent never saw. Short answer: both passed every hidden test in every run. Gemini 4 Argon was slower and more expensive on every task: 134 seconds and $0.142 per task on average, against 82 seconds and $0.094 for Opus.
How we tested
- Agent: OpenCode 1.19.4, non-interactive (
opencode run --auto), with QuickSilver Pro added as an OpenAI-compatible provider. The only thing that changed between runs was-m quicksilverpro/gemini-4-argonor-m quicksilverpro/claude-opus-5-5. QuickSilver Pro serves Gemini 4 Argon on the OpenAI-compatible endpoints (/v1/chat/completionsand/v1/responses), not on the Anthropic Messages API that Claude Code needs. So we used one agent that can drive both models. - Agent settings: a clean OpenCode config with no MCP servers, plugins or extra skills, and OpenCode's defaults otherwise. OpenCode sent no reasoning-effort setting, so each model ran at its default. OpenCode chooses its system prompt by model family, and we left that as shipped. Gemini got a 16,400-character system prompt and Opus a 9,300-character one. Both got the same tools.
- Tasks: six throwaway Python repositories, each with a one-paragraph prompt, a spec or bug report in the repo, and one visible test. Every task had a separate hidden test suite that we ran after the agent finished. We wrote five of the suites before any run and checked that each passed against our own reference solution and failed against the starting code. The sixth is the official Mustache spec suite.
- Runs: each task twice per model, same inputs, 24 runs in total. Both models ran each task at the same time, so both saw the same network and server conditions.
- Graded on: the share of hidden tests passing. We also recorded wall-clock time, number of API requests, input / cached / output tokens, and cost.
- Cost: the per-request cost that QuickSilver Pro returns in each response's usage block, summed over every request in a run, at QuickSilver Pro prices on 2026-10-27. We recorded it with a small local pass-through proxy. The same figures appear per request in the dashboard.
The tasks:
- Two-file bug fix. A shop module whose totals were off by a cent and whose discount was applied twice. The fix needed changes in both files, plus a rule from the README that the bug report did not mention: a minimum order for one discount code. 18 hidden tests.
- Implement from a spec. A duration parser (
"1h30m","2 hours and 5 min","PT1H30M") with a page of rules on separators, unit order and what must be rejected, including non-ASCII digits. 84 hidden tests. - Refactor without changing behaviour. Split a long function full of copy-pasted code into helpers. The hidden tests compared the new output with the original on 300 random inputs and 16 edge cases, including invalid options and missing fields. They also checked that the function shrank to at most half its original length. 317 hidden tests.
- Add input validation. A sign-up function with a written rule set: per-field error codes, rule order, and fields that interact. For example, a password must not contain the username, but only if the username is valid. 84 hidden tests.
- Parser for a config format. Sections, quoted values with escapes, inline comments, line continuation with correct error line numbers, and
${section.key}references with cycle detection. 57 hidden tests. - A Mustache template renderer from scratch, graded against the official Mustache spec test suite: interpolation, sections, inverted sections, comments, partials and delimiter changes. 136 hidden tests.
Results
Averages over two runs per model and task. Cost is per run, at QuickSilver Pro prices on 2026-10-27.
| Task | Gemini 4 Argon: tests passed | Gemini 4 Argon: time | Gemini 4 Argon: cost | Opus 5.5: tests passed | Opus 5.5: time | Opus 5.5: cost |
|---|---|---|---|---|---|---|
| 1. Two-file bug fix | 18/18, both runs | 73 s | $0.079 | 18/18, both runs | 34 s | $0.049 |
| 2. Duration parser | 84/84, both runs | 74 s | $0.100 | 84/84, both runs | 53 s | $0.063 |
| 3. Refactor | 317/317, both runs | 133 s | $0.131 | 317/317, both runs | 85 s | $0.091 |
| 4. Input validation | 84/84, both runs | 86 s | $0.104 | 84/84, both runs | 65 s | $0.075 |
| 5. Config parser | 57/57, both runs | 267 s | $0.267 | 57/57, both runs | 116 s | $0.132 |
| 6. Mustache renderer | 136/136, both runs | 173 s | $0.172 | 136/136, both runs | 139 s | $0.155 |
| Average | all passed | 134 s | $0.142 | all passed | 82 s | $0.094 |
Where the tokens and the money went, averaged over all 12 runs per model:
| Per run | Gemini 4 Argon | Opus 5.5 |
|---|---|---|
| Requests (including one short title request from OpenCode) | 10.2 | 7.9 |
| Input tokens | 124,000 | 107,000 |
| ...of which read from the prompt cache | 86,000 (69%) | 54,000 (51%) |
| Output tokens | 5,600 | 7,800 |
| ...of which reasoning | 900 | 0 |
| Cost of uncached input | $0.077 | $0.052 |
| Cost of cached input | $0.009 | $0.003 |
| Cost of output | $0.056 | $0.039 |
| Total cost per task | $0.142 | $0.094 |
What the numbers say
Quality was a tie. Neither model failed a hidden test in 24 runs. That includes all 136 cases of the official Mustache suite and the 316 comparisons with the original function in the refactor.
Gemini got there with less checking. On the refactor, both Opus runs saved a copy of the original function and compared old and new output on random inputs before finishing. Neither Gemini run did that; Gemini relied on the one visible test and still matched the original on all 316 hidden comparisons. On the Mustache task, both Opus runs downloaded the official spec test files from GitHub and ran them. Our hidden tests for that task are the same files, so Opus's score there is not independent. Gemini did not download them and passed all 136 anyway. What Gemini did instead was run the test suite more often: 24 pytest runs over its 12 runs, against 14 for Opus.
Gemini was slower on every task, from 1.2 times as long on the Mustache renderer to 2.3 times on the config parser. Its typical request was actually quicker than Opus's, with a median of 6.2 seconds against 7.6. But it made more requests (10.2 per task against 7.9), and its slow requests were slower: one in ten took over 34 seconds, and the slowest took 109. The config parser shows the effect most: the second Gemini run took 18 requests and almost five minutes.
Gemini cost more on every task, about 1.5 times as much on average. It has the higher per-token prices on QuickSilver Pro, and it sent more input per task because it made more requests. It wrote fewer output tokens than Opus, but at its output price they still cost more ($0.056 against $0.039 per task). Gemini's caching did better than Opus's: 69% of its input came from the prompt cache. On every Opus request the cache covered the same 8,028 tokens, about the size of OpenCode's system prompt and tool definitions. The rest of the conversation was billed at the full input rate. Even so, Opus came out cheaper.
When Gemini 4 Argon makes sense
On these tasks, Opus 5.5 is the better choice for a coding agent. It solved the same tasks, in about 60% of the time, for about two thirds of the cost.
Gemini 4 Argon solved every task too, so it is a workable second model. Use it if you want a non-Anthropic model in the loop, for example to cross-check a change, or if you are already building on Gemini elsewhere. We did not find a task in this set that either model failed, so we cannot tell you which one solves more on harder work. On this evidence, Gemini 4 Argon does not save you money over Opus 5.5.
Limits of this test
- Six tasks, two runs per model. Small, self-contained Python tasks of 30 seconds to 5 minutes each, not a multi-hour change in a large codebase.
- We wrote five of the six hidden test suites, so they reflect our reading of each spec. We checked each against a reference solution before running the agents.
- One agent, OpenCode, with its default per-model system prompts. Another agent, or a different reasoning-effort setting, could change both the speed and the cost. Gemini used about 900 reasoning tokens per task at its default effort. Opus reported none, so it worked without extended thinking.
- The prompt told the agents not to edit the existing tests. In four runs Gemini added its own tests to the end of the existing test file instead of creating a new one. It did not change or remove the existing test, and the hidden tests are separate, so this did not affect the scores.
- Wall time includes network and server time. Two runs of the same model on the same task differed by up to 47%, so read the time column as a rough guide.
- Every Claude request reported about 690 more input tokens than the text sent. OpenCode's short title request, which is the same text for every model, came to 1,593 input tokens on Opus against 639 on Gemini. At 7.9 requests per task that adds at most about $0.005 to an Opus run, which does not change the comparison.
Run it yourself
The OpenCode config we used, pointed at the public endpoint. Save it as opencode.json in your project:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"quicksilverpro": {
"npm": "@ai-sdk/openai-compatible",
"name": "QuickSilver Pro",
"options": {
"baseURL": "https://api.quicksilverpro.io/v1",
"apiKey": "{env:QSP_API_KEY}"
},
"models": {
"gemini-4-argon": { "name": "Gemini 4 Argon", "limit": { "context": 1000000, "output": 64000 } },
"claude-opus-5-5": { "name": "Claude Opus 5.5", "limit": { "context": 1000000, "output": 64000 } }
}
}
}
}
Then run the same prompt with each model:
export QSP_API_KEY=YOUR_QSP_KEY
opencode run --auto -m quicksilverpro/gemini-4-argon "Fix the failing test in tests/"
opencode run --auto -m quicksilverpro/claude-opus-5-5 "Fix the failing test in tests/"
--auto approves the agent's file edits and shell commands without asking, so use it only in a project you can reset. OpenCode shows a cost of 0 for a custom provider. The real cost of each request, with its model and token counts, is in your QuickSilver Pro dashboard. Model details are on the Gemini 4 Argon and Claude Opus 5.5 pages. For the OpenCode setup, see Use QuickSilver Pro in OpenCode and Crush. For Opus against GPT-6.1 Sol on the same tasks, see Claude Opus 5.5 vs GPT-6.1 Sol for coding agents.