Skip to content

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-argon or -m quicksilverpro/claude-opus-5-5. QuickSilver Pro serves Gemini 4 Argon on the OpenAI-compatible endpoints (/v1/chat/completions and /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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.