Why Harness Lock-In Costs Engineering Teams More Than Model Lock-In
Configuration files and memory accumulate faster than teams can switch harnesses.

Model lock-in has largely ceased to function as a serious enterprise risk, and the reason is straightforward: models commoditize with remarkable speed, customers demand portability, and every major platform now advertises model choice as a baseline feature. The vendors, having conceded that particular battleground, simply relocated the lock-in one layer deeper, into the harness that coordinates configuration, memory, and orchestration. That layer does not commoditize at the same pace, and its switching costs accumulate over months of daily use rather than the days it takes to swap one model endpoint for another.
The artifacts that carry this lock-in are unglamorous and mostly invisible until a migration forces them into view. Configuration files such as CLAUDE.md and.cursorrules, agent memory and session history, and orchestration pipelines all quietly absorb the assumptions of whichever harness a team happened to standardize on first. None of these artifacts prevents a team from switching models tomorrow. Collectively, they make switching harnesses expensive enough that few teams will try.
The scale at which this is happening makes the risk concrete rather than speculative. Claude Code, Codex, Cursor, and Copilot are all in active enterprise use simultaneously, which means thousands of engineering organizations are accumulating harness-specific artifacts right now without necessarily recognizing the switching cost they represent. The question is no longer whether teams should care about harness lock-in, but how much of it they have already accumulated without a deliberate decision to do so.
How fast adoption has grown and what that means for switching costs that are already accumulating
Adoption of AI coding agents has moved from experiment to operating norm with unusual speed, and the consequence is that harness-specific artifacts are compounding inside production codebases faster than most governance frameworks can respond. The JetBrains Developer Ecosystem Survey 2026 found that 68% of professional developers were using AI coding agents at work daily. That figure matters less as a headline than as a statement about cumulative exposure: every one of those daily sessions writes something to a configuration file, extends a memory, or reinforces an orchestration pattern that belongs to a particular vendor's tool.
The volatility of the current market compounds the problem. Harness market share has shifted substantially within months, not years, as new entrants gain enterprise traction and established players respond with rapid feature releases. When a team has locked its configuration and memory into a single harness, every shift in the competitive rankings becomes a potential migration problem. The team that standardized on last quarter's leading harness may find itself maintaining a tool that no longer reflects the best available option, yet unable to move without rebuilding weeks of accumulated context.
What makes this particularly difficult is the asymmetry between adoption speed and switching speed. A team can adopt a new harness in an afternoon. It cannot rebuild months of session history, tuned configuration, and pipeline integration in anything like that time. The switching costs are therefore already real for most teams even if no one has attempted a migration yet. They are latent, embedded in the daily artifacts of normal work, and they grow with every session regardless of whether the team ever evaluates an alternative.
The three specific mechanisms that make harness lock-in sticky in ways model lock-in never was
Harness lock-in operates through three distinct mechanisms, each of which accumulates independently and compounds over time. Understanding them separately is essential, because each requires a different mitigation strategy and each carries a different kind of switching cost. Configuration lock-in is the most visible of the three and the one teams most readily recognize. A CLAUDE.md file, a set of.cursorrules, or harness-specific agent configuration represents weeks of accumulated codebase knowledge: the conventions, constraints, and institutional preferences that make an agent productive in a particular repository. A skill written for Claude Code will not run natively on Codex without translation, because the underlying tool-calling conventions and configuration formats differ between harnesses. Every hour invested in tuning that configuration is therefore a sunk cost that must be rebuilt on migration. The enterprise routing research names this directly: skills and connectors fragmented across harnesses are one of four named risks that closed defaults hand to enterprises.
Memory lock-in is the most underappreciated vector, and the one with the longest tail. Agent memory, meaning conversation history, learned preferences, and codebase context built across hundreds of sessions, accumulates in the harness vendor's storage rather than the team's own infrastructure. This memory feels like an asset, and in daily use it is one: it is what lets an agent pick up where a previous session left off. But it is also a liability that grows with session count. A 2026 long-term memory benchmark, Memora, found that memory agents can reuse invalid or obsolete memories when user facts change. In an enterprise, changed facts include retired policies, deprecated metrics, and tables that no longer feed certified dashboards. The longer the memory runs, the more of this stale context it carries, and the harder it becomes to extract the genuinely useful portion from the accumulated noise.
The third mechanism is the subtle compounding effect that ties the first two together. The more tokens a team burns building context, the higher the per-session value of that context becomes, and therefore the higher the cost of abandoning it. This is the tokenmaxxing pattern in its least flattering light: the same investment that makes a harness feel indispensable is the investment that makes migration feel impossible. Teams that have spent months building context inside one harness have, in effect, purchased their switching costs in installments, one session at a time.
What harness lock-in actually costs when teams try to route around it or migrate away from it
The cost of harness lock-in appears in two distinct places: ongoing overspend on model routing that a closed harness prevents, and one-time migration costs when a team eventually needs to move. The two have different textures, but they share a root cause: the team has ceded control of a decision that should remain theirs. The ongoing routing cost is the less dramatic of the two, but it compounds every month. The enterprise routing research emulated a large enterprise and found that sending each task to the cheapest capable model, without disturbing work in progress, recovers $3.3M to $5.0M a year from a spend that runs into the tens of millions annually. A closed platform that routes every task at frontier rates forecloses this entirely, because the routing decision belongs to the vendor rather than the team. The team pays the frontier price for every task, including the routine ones that a mid-tier model could handle just as well.
The one-time migration cost is the more visible burden, and the one that security and legal teams tend to notice first. When platform lock-in forces a migration, average project losses are substantial, and a majority of IT leaders report spending over a million dollars on platform migrations in a single year. Those costs span far more than engineering effort: retraining, contract renegotiation, and rebuilding cost visibility and reporting are all part of the bill. The governance gap compounds both figures. A strong majority of engineering teams are already running AI coding agents, yet a large share of companies are deploying them on infrastructure never designed to support them. Source code, prompts, and model interactions flowing to third-party cloud services create compliance gaps that security and legal teams are only beginning to address, and a harness migration tends to expose those gaps rather than close them.
What teams that avoided lock-in actually did, and what it cost them to build it themselves
The teams that have avoided harness lock-in did so by building or adopting environments that separate the execution layer from the harness layer. The distinction is subtle but consequential: the harness is where the agent runs, while the environment is where configuration, memory, and orchestration live. Keeping those concerns separate is what makes harness choice a reversible decision. But the teams that built this separation themselves paid a real engineering tax to do it.
The most instructive case is the harness engineering experiment in which a team of three engineers, later seven, built a product of roughly a million lines of code entirely through Codex. Application logic, tests, CI configuration, documentation, observability, and internal tooling were all agent-generated, and the team opened and merged pull requests at a high rate per engineer per day. The lesson from this case is not primarily about throughput. It is about environment design: early progress was slow not because the model was incapable but because the environment was underspecified. The team's primary job became building the scaffolding, abstractions, and feedback loops that let agents do reliable work. That is the engineering tax in its clearest form: the environment had to be built before the harness could be productive, and building it took real effort.
The Microsoft enterprise rollout reinforces the point from the organizational side. Studying tens of thousands of engineers, researchers found that first use spread primarily through social networks, retention correlated more with engineers' coding activity than demographics, and adopters merged roughly 24% more pull requests. The study also illustrates how fast organizational-scale rollouts create harness-specific dependencies before governance catches up. Adoption spreads through peer influence and produces measurable gains within weeks, while the institutional machinery for managing the resulting configuration and memory debt lags well behind.
Why the environment layer is the right place to enforce harness-agnosticism, not the harness itself
The harness-agnostic environment is the correct architectural response to harness lock-in because it places the switching cost at the environment layer, where it can be managed, rather than inside the harness, where it compounds invisibly. This is not a matter of preference but of control surface: a team that owns its environment can make harness choice a recurring optimization decision, while a team that does not has ceded that decision to whichever vendor's defaults it adopted first. What this means in practice is that agents need isolated, fully configured execution environments, not shared infrastructure, in which they can install packages, run services, drive a browser, and verify their own work. Pre-warmed sandboxes are the execution primitive that makes this reliable, and it is notable that Stripe, Ramp, and Coinbase each converged on this pattern independently. When three organizations with different codebases, different regulatory constraints, and different engineering cultures arrive at the same architectural primitive, the pattern has earned attention. It is also a pattern that a cloud platform can provide as infrastructure rather than a project each team must build.
Context management, permissions, MCP tools, sandboxes, audit logs, and cost controls now matter as much as model quality, which inverts the standard assumption about where the strategic value sits. The environment is not a commodity layer underneath the harness. It is the strategic layer above it. Replicas was built explicitly around this insight: as a harness-agnostic cloud platform supporting Claude Code, Codex, Cursor, and Opencode, it lets teams route tasks to whichever agent makes sense for the job without accumulating configuration or memory lock-in to a single vendor's orchestration layer. The coupling of multi-agent pipelines to one vendor's workflow system is particularly hard to escape once teams have built their integrations, which is why triggering agent runs from existing team workflows, a messaging platform, an issue tracker, and Git forges, rather than rebuilding orchestration inside a proprietary harness, sidesteps that coupling entirely. Replicas takes the latter approach.
How to evaluate whether your team's current setup creates harness lock-in risk
Teams that carry harness lock-in risk typically show one or more of three patterns: configuration that lives inside harness-specific files with no portable equivalent, agent memory that is stored and managed by the harness vendor rather than by the team, and orchestration pipelines built on vendor-specific workflow primitives with no cross-harness abstraction. Each pattern is checkable with a focused audit, and the audits together give a team a defensible picture of its exposure. The configuration audit is the fastest check. If a CLAUDE.md or.cursorrules file contains logic that assumes a specific harness's tool-calling convention, that file is not portable, and the value it encodes will be lost on migration. The research finding that human-written context files improve task success while auto-generated ones reduce it adds a sharper edge: configuration quality matters, but quality that is harness-specific is a liability rather than an asset, because it binds the team to the harness that understands it. A portable configuration file, by contrast, encodes the same codebase knowledge in a form any harness can consume.
The memory audit is slower but more revealing. The key question is how many sessions of context the primary agent has accumulated about the team's most important repositories. That number is a rough proxy for switching cost, and the Memora finding that memory agents reuse invalid or obsolete memories when facts change means long-running memory is also a correctness risk, not just a switching cost. Memory that the team cannot export, audit, or correct is a liability wearing an asset's clothes.
The governance audit is the final signal. If source code, prompts, and model interactions are flowing to third-party cloud services without audit trails that security and legal teams can access, the team is already operating outside the infrastructure that was designed to support it, and a harness migration will expose that gap rather than close it. Orchestration pipelines that invoke vendor-specific workflow primitives without a cross-harness abstraction represent the same problem in a different layer: the team has built its automation on a foundation it does not control. Teams that pass all four audits cleanly, portable configuration, team-controlled memory, cross-harness cost attribution, and auditable execution, are positioned to treat harness selection as a recurring optimization decision rather than a one-time architectural commitment. That posture is not a hedge against a hypothetical future risk. It is the operating stance that lets a team benefit from the model and harness improvements that ship on a months-long cycle, rather than watching them from the wrong side of a migration it cannot afford to make.


