Harness choice, not lock-in: Trinity is going multi-harness

Lorenzo Wynberg11 min readCompany
Centered title "Harness choice." in white with "Not lock-in." in emerald, above neutral pill chips for Claude Code, Codex CLI, OpenCode, and Local

It started in April.

Anthropic pulled Claude subscription coverage for OpenClaw and similar third-party harnesses, citing power users burning through tokens at rates the subscriptions weren't designed for. The official line was "if you want to drive Claude that hard, pay API rates." The real-world impact, by some accounts, was 10× to 50× cost increases for developers whose workflows had been built around OpenClaw. Anthropic's own team admitted users were hitting Claude Code quotas faster than expected. The pushback was loud — the kind of pushback that gets a "we hear you" response.

On May 13, the response landed.

Starting June 15, Anthropic announced, all programmatic Claude usage — claude -p, the Agent SDK, Claude Code GitHub Actions, third-party tools built on the Agent SDK (Anthropic explicitly named OpenClaw and Conductor) — gets a brand-new dedicated monthly credit. Pro: $20. Max 5x: $100. Max 20x: $200. Team Standard: $20/seat. Team Premium: $100/seat. When the credit runs out, you either opt into API rates as overflow or programmatic usage pauses until next reset. Anthropic framed the change as a perk — "your subscription limits don't change, they're now reserved for interactive use" — but everyone reading the announcement saw the shape:

Framing this as a free credit instead of a regression for users is wild.

Theo Browne, t3.gg

That's the cleanest read of what happened. April's "OpenClaw subsidy" got "resolved" by giving every paid plan a small, capped, formalized programmatic budget — and calling it a benefit. The bandage and the bullet wound are the same shape.

I'm not writing this to dunk on Anthropic. They built the harness Trinity ships on. Their team is genuinely excellent and their models are right at the frontier. The point is narrower and more important than vendor blame: what just got formalized at the harness layer will eventually get formalized everywhere. OpenAI will do their own version. Google will do theirs. Every vendor that subsidizes a developer community to seed adoption eventually rationalizes the subsidy when the bill arrives. That's not a villain story. It's physics.

Which means if you're building a framework that has to survive vendor decisions, the abstraction you need isn't model portability. It's harness portability.

The FrameworkTrinity
PlanExecuteAuditShip
Harness

Claude Code

Anthropic's official CLI agent

Default
Harness

Codex CLI

OpenAI's open-source CLI agent

Coming Soon
Harness

OpenCode

Open-source multi-provider agent

Coming Soon
On the roadmapGemini CLIJunieLocal models

The harness is the actual lever

Quick definition, because the words get sloppy.

A model is the weights — Sonnet, Opus, GPT-5.3-Codex, o3, Gemini 2.5 Pro. A harness is everything wrapped around the weights to turn them into an agent: the CLI, the tool-calling layer, the read/write/edit loop, the OAuth or API-key story, the headless mode, the GitHub Actions integration, the rate limits, the billing model. Claude Code is a harness. Codex CLI is a harness. OpenCode is a harness. Each one talks to a fleet of models — Claude Code talks to Anthropic's, Codex CLI talks to OpenAI's, OpenCode is provider-pluggable.

Now look at what May 13 actually did and didn't touch. It didn't change Sonnet. It didn't change Opus. It didn't restrict which models you can talk to. What changed is how you can talk to them on a subscription — interactive Claude Code is fine, programmatic Claude Code (which is exactly the workload Trinity and every other agent IDE runs) now lives on a separate, smaller budget. Same weights. Different terms based on which harness configuration is moving the bytes.

Once you see that pattern, January's OAuth cutoff and April's OpenClaw removal resolve into the same shape: three changes, three different surfaces, one consistent thing being moved around. The harness.

So when a vendor decides to tighten the screws, that's the layer that moves. If your framework is glued to one harness, you absorb every move that vendor makes — pricing, policy, rate limits, deprecations, surprise reframings of features as credits. If your framework is above the harness layer, you absorb the same news as a setting change.

Trinity isn't a harness. Trinity uses harnesses.

Here's the distinction Trinity's architecture has been quietly built on since day one.

Trinity is the structured framework: planning, per-story worktree isolation, multi-agent audit loops, knowledge that compounds over time. The framework is where Trinity earns its keep. None of that cares which harness is driving the actual tokens.

The harness is an engine. Engines are meant to be swappable.

Structured framework. Swappable harness.

Trinity's pipeline — planning, execution, audit, knowledge — runs the same way regardless of which harness drives the model. The framework is the product. The harness is the engine. You pick the engine.

We built Trinity with Claude Code as the default harness because it's what we used to build Trinity itself. That's the only reason it's the default — origin, not pecking order. And in light of June 15, that origin choice picks up a meaningful asterisk: the $200 Max 20x plan that today gives Trinity users effectively unlimited programmatic headroom will, in a month, give them $200 of programmatic credit and then meter to API rates. The framework still works. The economics shift. That shift is exactly the platform risk single-harness frameworks have no answer to — and exactly what harness portability was built to absorb.

Three harnesses, on the way to more

Trinity's roadmap names three harnesses, plus a local-models track.

  • Claude Code — Anthropic's official harness. Default today, post-June 15 economics as described above. Strong models, the best agentic loop on the market at launch, and the harness Trinity itself was built with.
  • Codex CLI — OpenAI's open-source official harness, shipping fast. Talks to OpenAI's model fleet, including GPT-5.3-Codex and o3. On the relevant coding benchmarks today, OpenAI's models are not behind — and on some they're ahead. Trinity is working on Codex CLI as a first-class harness option.
  • OpenCode — open-source, multi-provider, the one Anthropic specifically cut off from Claude subscription OAuth tokens in January. The harness equivalent of a Linux distro: bring your own provider, bring your own keys, no single vendor controlling the terms. Trinity is working on OpenCode support in parallel with Codex CLI.

Beyond those three, local models (DeepSeek, Kimi, and others) keep getting more capable and more efficient with every release. Trinity supports running stories through local stacks today and we keep investing in that support. If you want to run your entire pipeline without sending a single token to a paid API, Trinity is going to keep working for you. That's a legitimate way to build software, and we're not going to gatekeep it behind a billing relationship with any provider.

AspectSingle-harness IDETrinity multi-harness
Harness layerWhatever the vendor shipsClaude Code today, Codex CLI + OpenCode next, more on the roadmap
Pricing riskWhatever the vendor chargesYou pick the harness; you own the bill
Policy riskOne ToS away from disruptionSwitch harness in a project setting
FrameworkCoupled to the modelPlanning, execution, audit — unchanged across harnesses
Upgrade pathWait for the vendorAdopt the best harness the moment it's competitive

The roadmap goes further than three. Google's coding-focused Gemini models have gone from "fine" to "legitimately competitive" in the last two quarters, and the price-per-token math is getting hard to ignore — a credible fourth harness if their CLI keeps the pace. JetBrains' Junie is interesting too: it sits closer to a full harness than a raw model, but if the IDE world keeps moving toward agents as first-class runtimes, it deserves a seat at the table. No timeline commitment on either, but they're on the whiteboard.

Four reasoning tiers, four independent harness choices

Here's the part most AI coding tools get wrong: they pick one model and throw every task at it. Architecture planning, variable rename, commit message — same model, same price, same overkill.

Trinity doesn't work that way. Every task routes through one of four reasoning tiers, and each tier picks its own harness and model independently:

  • Reasoning — the heavyweight. Architecture, complex planning, multi-file refactors.
  • Standard — the workhorse. Most implementation, code review, story execution.
  • Fast — quick delegation. Simple analysis, boilerplate, lightweight audits.
  • Micro — the cheapest possible token. Commit messages, file renames, trivial completions.

The framework auto-configures which tier handles which task based on complexity, surface area, and context. You're never burning Opus-priced tokens on a file rename.

And here's why this matters for multi-harness: each tier carries its own harness independently. You can run Reasoning on Claude Opus through Claude Code, Standard on an OpenAI model through Codex CLI, and Fast on a cheap Gemini or GLM model through OpenCode — in the same project, in the same pipeline run. Mix and match per tier based on what's best and what's cheapest for that class of work. Once the harness abstraction is in place, adding new providers — xAI, GLM, whatever ships next — is a drop-in addition, not a rewrite.

The storage format is straightforward: harness:provider:model per tier. Four tiers, four independent choices. Whatever optimization you arrive at travels with you regardless of which harnesses you end up using.

The ball is in every harness vendor's court

Here's the part that should matter to every team at every harness vendor reading this.

Trinity isn't a distribution channel for any one harness. Trinity is a structured framework that gets better every time any harness gets better — because the framework is what makes a harness's output actually shippable. Planning, isolation, audit loops, knowledge feedback. That work is the same whether your tokens come through Claude Code, Codex CLI, OpenCode, or Gemini CLI.

So the question for every vendor shipping a harness isn't "how do we lock developers in?" It's "do we want developers building inside a real framework using our harness, or someone else's?"

That's a competitive question. And it has a great answer.

Ship the best harness for structured, multi-agent coding work, and developers will choose you — not because they're stuck, but because you earned it.

Anthropic was the first to take agentic coding seriously, and that earned them a real lead. May 13 didn't blow that lead up — Claude Code is still excellent, the new Sonnet and Opus releases keep landing, and the post-June 15 economics will work fine for plenty of teams. But the lead is contestable now in a way it wasn't a year ago. OpenAI is right there. Google is closing in. And the harness layer is exactly where the contest plays out — pricing, policy, rate limits, deprecations, all decided at the engine, not the weights.

To every harness team reading this: the ball is genuinely in your court. The category is wide open. Ship better harnesses — faster, cheaper, more reliable, fewer policy whipsaws — and developers building inside Trinity will route their tokens to you. That's how this is supposed to work. Not by lock-in, by merit, every release.

What this means for you

If you're evaluating Trinity, here's what you need to know.

Claude Code is the default harness today. When Codex CLI and OpenCode land, you'll see them as harness options in your settings — same framework, different engine driving the tokens, your choice per project or per reasoning tier. Switch whenever you want. Your stories won't care.

On Claude subscriptions specifically, the June 15 numbers matter. The $200 Max 20x plan gives you $200 of programmatic credit a month before you're metered to API rates. That's plenty for an individual developer doing focused work; it's not plenty for a team running aggressive parallel pipelines all day. Pre-June 15, the answer for that team was "Max 20x is enough." Post-June 15, the answer is "Max 20x plus opt-in API overflow, or split your workload across harnesses." Trinity's multi-harness architecture is what makes the second option real.

If you've been on the fence about Trinity because you're worried about getting stuck inside someone else's pricing decisions: that's a reasonable fear. It's also the exact fear Trinity's architecture is being built to answer. Harness-agnostic from day one means harness-agnostic forever. We're not going to wake up in 2027 having accidentally built a single-vendor tool. The architecture won't let us.

The takeaway

April's OpenClaw drama and May 13's "resolution" tell the same story from two angles. The story is that the harness is where vendors apply pressure, and the harness is therefore where developers need optionality. Not because Anthropic is uniquely difficult — they're not — but because the harness layer is where every vendor's incentives eventually surface.

Trinity's bet is that the framework wins by being a good citizen of every harness, not the bag-holder for any one of them. Claude Code today. Codex CLI and OpenCode next. Gemini CLI, Junie, and whatever else ships after.

The ball is in the harness vendor's court. We can't wait to see who runs with it.

Lorenzo Wynberg

Founder

Share
#harness-portability#claude-code#codex-cli#opencode#trinity