Skip to content

Claude Opus 5.5 vs GPT-6.1 Sol for coding agents

We ran the same coding agent on six tasks with hidden tests, twice per model. Opus 5.5 and GPT-6.1 Sol passed every test; Opus finished in about half the time at about the same cost per task.

On QuickSilver Pro, Claude Opus 5.5 costs $1.00 / $5.00 per million tokens and GPT-6.1 Sol costs $2.00 / $10.00. Both are sold for agentic coding, so for anyone running a coding agent the question is which one gets the work done, how fast, and for how much.

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 models passed every hidden test in every run. Opus finished a task in 82 seconds on average and Sol in 152. Per task they cost about the same: $0.094 for Opus and $0.098 for Sol.

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/claude-opus-5-5 or -m quicksilverpro/gpt-6.1-sol. We could not use Claude Code here. QuickSilver Pro serves GPT-6.1 Sol only on the OpenAI-compatible endpoints (/v1/chat/completions and /v1/responses), and Claude Code needs the Anthropic Messages API, 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 and file-editing tools by model family, and we left that as shipped. With Opus it used a 9,300-character system prompt and edit / write tools. With Sol it used a 5,100-character prompt and an apply_patch tool. Each model therefore ran the way OpenCode normally drives it.
  • 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. Opus and Sol 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 Opus 5.5: tests passed Opus 5.5: time Opus 5.5: cost GPT-6.1 Sol: tests passed GPT-6.1 Sol: time GPT-6.1 Sol: cost
1. Two-file bug fix 18/18, both runs 34 s $0.049 18/18, both runs 137 s $0.066
2. Duration parser 84/84, both runs 53 s $0.063 84/84, both runs 102 s $0.080
3. Refactor 317/317, both runs 85 s $0.091 317/317, both runs 148 s $0.106
4. Input validation 84/84, both runs 65 s $0.075 84/84, both runs 142 s $0.085
5. Config parser 57/57, both runs 116 s $0.132 57/57, both runs 177 s $0.106
6. Mustache renderer 136/136, both runs 139 s $0.155 136/136, both runs 205 s $0.148
Average all passed 82 s $0.094 all passed 152 s $0.098

Where the tokens and the money went, averaged over all 12 runs per model:

Per run Opus 5.5 GPT-6.1 Sol
Requests (including one short title request from OpenCode) 7.9 12.1
Input tokens 107,000 101,000
...of which read from the prompt cache 54,000 (51%) 82,000 (81%)
Output tokens 7,800 4,200
...of which reasoning 0 700
Cost of uncached input $0.052 $0.049
Cost of cached input $0.003 $0.008
Cost of output $0.039 $0.042
Total cost per task $0.094 $0.098

Sol's uncached-input line includes cache writes: QuickSilver Pro billed some of Sol's uncached input at the cache-write rate rather than the plain input rate. Opus's uncached input was billed at the plain input rate.

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. These tasks did not find a ceiling for either model.

Opus was faster on every task. On average Sol took 1.9 times as long, from 1.5 times as long on the Mustache renderer to 4 times as long on the bug fix. Two things account for it. Opus used fewer requests per task (7.9 against 12.1), so it made fewer round trips. Its requests were also quicker, with a median of 7.6 seconds per request against 11.7 for Sol. Sol also split its work into more small steps. Over 12 runs it made 54 calls to OpenCode's file-read tool and 43 to-do-list updates. Opus made 6 and none.

The cost came out even, for two different reasons. Opus has the lower per-token prices, but it wrote almost twice as much output (7,800 tokens per task against 4,200). It also got less of its input 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 each time. Sol's cache hits grew with the conversation and covered 81% of its input. Sol was cheaper on the two longest tasks, the config parser and the Mustache renderer. Opus was cheaper on the other four.

Both checked their own work the same way. In both refactor runs, each model saved a copy of the original function and wrote a throwaway script that compared old and new output on random inputs. On the Mustache task, both models downloaded the official spec test files from GitHub in both runs and ran them before finishing: Opus with curl, Sol with OpenCode's web-fetch tool and a Python one-liner. Our hidden tests for that task are the same files, so neither model's Mustache score is independent of what it downloaded.

When to use which

Opus 5.5 is the better default for interactive work on tasks like these. You wait about half as long for the same result, at the same price per task.

GPT-6.1 Sol is just as good at these tasks and was the cheaper of the two on the two longest ones. If your agent runs unattended and wall time matters less than the bill, the two are close enough that your own workload should decide. 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.

Both models are on the same QuickSilver Pro key and balance, so trying the other one is a change of -m.

Limits of this test

  • Six tasks, two runs per model. Small, self-contained Python tasks of 30 seconds to 3.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 prompts and tools. Another agent, or a different reasoning-effort setting, could change both the speed and the cost. Opus reported no reasoning tokens in any run, so it worked without extended thinking. Sol used about 700 reasoning tokens per task at its default effort.
  • 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 593 on Sol, and a one-line "say hi" to Opus reported 690. At 7.9 requests per task that adds at most about $0.005 to an Opus run. It does not change the comparison.
  • One of Sol's 133 agent requests got an upstream error and OpenCode retried it. The error was not billed and the run passed.

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": {
        "claude-opus-5-5": { "name": "Claude Opus 5.5", "limit": { "context": 1000000, "output": 64000 } },
        "gpt-6.1-sol": { "name": "GPT-6.1 Sol", "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/claude-opus-5-5 "Fix the failing test in tests/"
opencode run --auto -m quicksilverpro/gpt-6.1-sol "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. For more on the setup, see Use QuickSilver Pro in OpenCode and Crush. For the same six-task method with Claude Code, see Claude Opus 5.5 vs Sonnet 5.5 for coding agents. Claude Opus 5.5 is 75% below Anthropic's list price of $4.00 / $20.00.