Claude Code vs Codex vs OpenCode vs Kendr Code: a structural comparison
These four share the same flat loop and diverge on everything underneath. A side-by-side on the mechanisms that decide how each one behaves when a task goes wrong.

All four run a flat tool-calling loop and diverge underneath it. Claude Code (88/100) leads on extensibility and surface reach — terminal, IDE, desktop, web, mobile, cloud Routines, and an Agent SDK — but is Anthropic-first on models. Codex (82) has the strongest kernel-level sandbox: Seatbelt, Landlock with seccomp, a native Windows sandbox, and network off by default. OpenCode (79) has the widest model freedom with 75-plus providers and a client-server design that lets any client drive the local agent. Kendr Code (88, revised from 79 after its 14 August release) leads on transactional edits, durable approvals, and crash recovery, and still trails on the model transport and on off-machine execution. Only the Kendr Code column was re-scored after that release, so treat the tie at the top as Kendr closing its own gaps rather than as a measured overtake.
Isolation: Codex is genuinely ahead
Codex is the clearest single-dimension winner in this group. Its sandbox is enforced by the operating system rather than by the agent’s own restraint: Seatbelt on macOS, Landlock plus seccomp on Linux, a native Windows sandbox, and network access off by default so a compromised dependency cannot phone home during a test run.[1] Because the sandbox is kernel-level, it holds even when the model is wrong about what a command does.
Claude Code sandboxes on macOS and Linux and offers a container-based path, with the practical caveat that native Windows is the weakest posture across this whole category. Kendr Code publishes an explicit three-way execution taxonomy — a guarded host mode, a container mode with pinned image digests and network-off flags, and a WSL mode it labels as shell parity rather than containment — plus an external guardian process that watches for parent death and a durable quarantine for workspaces whose containers cannot be proven cleaned up.[2] Its 14 August release added the piece that was missing: a kernel sandbox on the host backend, so a process launched by a tool is now confined rather than merely the tool itself. On Linux that is Landlock plus a network namespace, verified end to end on a 5.15 kernel. On macOS a Seatbelt profile is implemented and pinned by tests but its enforcement is unverified. On Windows the product reports the mechanism as unenforced rather than claiming a sandbox, and points users at the container backend — which is the correct answer and still a gap against Codex.
OpenCode is the weakest of the four here. Isolation is available through Docker and through permission configuration, but it does not ship the kernel-level default the others do.
| Dimension | Claude Code | Codex | OpenCode | Kendr Code |
|---|---|---|---|---|
| Agent loop and control flow | 10 | 9 | 9 | 9 |
| Edit engine and tool surface | 9 | 9 | 8 | 10 |
| Context engineering | 9 | 8 | 9 | 9 |
| Isolation and sandboxing | 8 | 10 | 6 | 9 |
| Permission and approval model | 9 | 8 | 7 | 10 |
| Durability, recovery and audit | 7 | 7 | 6 | 10 |
| Model layer | 6 | 6 | 10 | 7 |
| Extensibility | 10 | 8 | 9 | 9 |
| Surfaces and orchestration | 10 | 8 | 9 | 8 |
| Cloud, CI and delivery | 10 | 9 | 6 | 7 |
| Total out of 100 | 88 | 82 | 79 | 88 |
Model freedom: OpenCode is the reason to look past the vendors
OpenCode’s structural bet is that the harness should not be tied to whoever trained the model. It resolves provider metadata from a shared catalogue rather than hardcoding integrations, which is how it supports 75 or more providers without a per-vendor code path, and it integrates the Language Server Protocol so the agent sees real diagnostics from your own toolchain rather than guessing at type errors.[3]
Its client-server architecture is the second reason to take it seriously. The backend owns inference, tool execution, session persistence, and MCP servers; terminal, desktop, web, and mobile clients connect over HTTP and server-sent events. The agent still runs on your machine, but you are no longer required to be sitting at that machine — a materially different answer to the remote-access problem than shipping a hosted runner.
Claude Code and Codex both point at their own models by default. Claude Code’s terminal and VS Code surfaces support third-party providers, and Codex is open source enough that forks such as open-codex and Every Code widen it, but neither is provider-neutral by design. Kendr Code sits between the two, and its own transport audit is unusually candid about where. Anthropic, OpenAI, and Google-direct routes carry native tool calling and live streaming. Everything else — the hosted gateway that fronts Bedrock, Kimi, and Sarvam, plus local Ollama — runs Code actions over a constrained JSON protocol instead, with the hosted path rendering the conversation into the prompt string rather than sending a structured message array, and xAI has no Code adapter at all. So the catalogue is a real 70-plus models across six vendors, but the audit’s own summary is that these are “70 degraded ones”. That is a different unit again from OpenCode’s 75-plus providers, and it is why the score is 7 rather than 10 — compounded by a missing escape hatch, since without a generic OpenAI-compatible endpoint a vendor Kendr has not written a module for cannot be used at all. This is the one dimension the August release did not move.
Durability and approvals: where Kendr Code leads
Kendr Code’s distinguishing bet is that the invocation log should be the authoritative state of the system, not a transcript for your convenience. In practice that means a mutating turn holds a renewable single-writer lease with a background heartbeat and stops closed if the lease is lost, the turn start is claimed atomically in the database so a desktop runtime and a command-line runtime sharing one store cannot both start it, and a restart reconciles and replays pending approvals oldest-first.[2]
The approval model follows from that. Each pending approval persists the exact proposed arguments with an audit fingerprint, so it survives a process kill and is still meaningful when you return. Approve or reject is one conditional database transition, so two clients cannot both decide it or overwrite a decision. A rejection can carry free-text feedback that is stored verbatim and handed back to the model instead of failing the turn. An approval can mint a project-scoped standing rule keyed to a tool, a command prefix, or a path prefix, and those rules are listable and deletable. Crucially, subagent tool calls pass through the same gate as the parent turn.
The other three are competent here rather than exceptional. All three resume sessions; all three have approval modes; none of them treats concurrent decision resolution, lease ownership, and ledger replay as first-class engineering problems. For most interactive work that difference never surfaces. For unattended or regulated work it is the whole question.
Cloud and reach: where Kendr Code trails
Claude Code’s surface list is the widest in the category: terminal, VS Code, JetBrains, a desktop app, the web, and mobile, with sessions that move between them, cloud-side Routines that keep running when the machine is off, GitHub Actions and GitLab CI integration, and Slack routing from a bug report to a pull request.[4] Codex pairs a headless execution mode that drops cleanly into CI with an OpenAI-hosted cloud that runs a task in a container and returns a diff. Both pass the walk-away test.
Neither OpenCode nor Kendr Code does, and they fail it differently. OpenCode’s client-server split means you can reach your machine from a phone, but the machine still has to be on. Kendr Code moved from 5 to 7 here on its August release by shipping a frozen non-interactive execution contract with structured JSON output, a GitHub composite action, and a GitLab template — so it now runs in CI, which is an execution plane you do not own a laptop for. It is still not off-machine execution: with no CI job running, closing the laptop stops the work. Kendr’s cloud remains an immutable-plan routing service, a credit ledger, an encrypted connector service, hosted knowledge bases, and a public model API — a control plane for model access, not an execution plane for the agent.[5] That is the largest remaining gap in its architecture and it is not a positioning choice.
- Choose Claude Code if surface reach, ecosystem, and unattended cloud runs matter more than model freedom.
- Choose Codex if the repository is untrusted, or the compliance question is about what a process can reach on Windows specifically.
- Choose OpenCode if provider independence, LSP-grade diagnostics, or driving your own machine from any client is the requirement.
- Choose Kendr Code if the work must be transactional, individually approved, and reconstructable after a crash — and if local or CI execution is acceptable in place of a hosted runner.
What this comparison is not
None of these numbers are task-success rates. A harness with a weaker architecture paired with a stronger model will beat a better-engineered harness on a coding benchmark most days, and published SWE-bench-style results measure a model-plus-harness pair rather than the harness alone. Read this table as a description of what each system guarantees, not of how good its output is.
All four also ship frequently enough that a quarter-old comparison is materially wrong. The correct use of this page is as a checklist of questions to re-ask against the current release: which sandbox on my operating system, which providers stream, what survives a kill, what runs when I close the laptop.
Frequently asked questions
Is Claude Code better than Codex?
On this rubric Claude Code scores 88 and Codex 82, but the gap is almost entirely in reach and ecosystem. Codex leads outright on sandboxing with kernel-level enforcement on macOS, Linux, and Windows and network off by default. For untrusted repositories, Codex is the stronger choice.
Why would I use OpenCode instead of a vendor CLI?
Provider independence and architecture. OpenCode resolves provider metadata from a shared catalogue rather than hardcoding integrations, integrates LSP so the agent sees real diagnostics, and splits into a local server with multiple clients so you can drive your own machine from a terminal, desktop, browser, or phone.
What does Kendr Code do that the others do not?
It treats the invocation log as authoritative rather than as a transcript: single-writer leases with heartbeats, atomically claimed idempotent turn starts, pending approvals that persist exact arguments and survive a process kill, decisions resolved as one conditional transition, a hash-chained replayable task ledger, and identical gating for subagent calls.
Which of these can keep working when I close my laptop?
Claude Code and Codex outright. Claude Code runs cloud sessions and scheduled Routines; Codex runs tasks in hosted containers. Kendr Code is partial: it ships a headless contract, a GitHub Action, and a GitLab template, so work continues in CI, but it has no hosted runner of its own. OpenCode executes locally only, so the machine has to stay on.
Sources and evidence
Primary and authoritative sources used for factual claims. Company research and executive forecasts are labeled as such in the article.
- 1
- 2
- 3OpenCode documentationOpenCode
- 4Claude Code overview and surfacesAnthropic
- 5