Head to head · Agent harnesses · October 2026 research run
AXLR vs OpenCode
AXLR scores 70.6 (BB) on agent readiness against OpenCode's 68.8 (B), and leads in 2 of 7 scored categories. OpenCode leads on schema & documentation and transparency & trust. Both do agent harnesses.
Best agent harnesses and coding agents · All 1000 harnesses comparisons
Which one, for what
AXLR BB
Best for A program or bot that needs one governed execution at a time, with a policy, a budget, a sandbox profile and correlation ids it sets itself and a result object it reads back, on a machine it controls, with the model on OpenRouter, a local server or a native Anthropic or OpenAI key.
Also in its favour
- Agent-ready, a grade of BB or better
- No incidents deducted, where OpenCode loses 4 points for them
Watch for
The setup assistant turns autonomy on and leaves the exec sandbox off, so after setup the model's commands run with the person's rights, bar the destructive list
OpenCode B
Best for Agents and pipelines that need a scriptable coding agent with a JSON event stream, an HTTP server and any model, including keyless free ones.
Ahead on
- Schema & documentation, 88 against 80
- Transparency & trust, 71 against 55
Also in its favour
- No key needed to call it
Watch for
Most permissions default to allow, and SECURITY.md says the permission system is not a sandbox
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Transparency & trust OpenCode +16
AXLR 55
Apache-2.0 with a NOTICE (30). No privacy policy or terms on underpassai.com or axlr.underpassai.com; the docs' 'Where data goes' and 'Diagnostics and privacy' sections say that model requests go to OpenRouter, the local server or the native API, that Jev sends text to TypeSafe only when on, that sessions live under $XDG_STATE_HOME/axlr, that payload capture is off by default and redacted when on, and that traces are deleted after 30 days; nothing covers the engine downloads' or the catalog registry's handling of a client's requests (15). No deprecation policy; pre-1.0 changes are dated inline in the docs and the product contract records the 5 October 2026 retirement of the first skill catalogue after the fact (6). No telemetry to disclose, and the docs say in two places what leaves the machine and how to stop payload capture, though no single page says there is no telemetry (17). 30+15+6+17 = 68.
OpenCode 71
MIT (30). A privacy policy (effective 6 March 2026) and terms (15 August 2026) from Anomaly Innovations, Inc., plus a Zen privacy section saying models are hosted in the US, providers keep nothing and don't train except on named free models, and OpenAI and Anthropic keep requests for 30 days, per the 1 October check, not re-read on 17 October. The general retention line is as long as necessary (22). Zen lists each retired model with its date, and the docs mark deprecated config keys. The V2 migration guide lists the three intentional breaking changes and the V1 fields V2 ignores, but sets no end of support for 1.x (15). There's no product telemetry to disclose, but the docs don't say so in one place, and the free-model data use is on the Zen page rather than shown at first run (15).
Schema & documentation OpenCode +8
AXLR 80
An OpenAPI 3.1 file for the service (15 paths, 23 schemas, mutualTLS security scheme, additionalProperties: false on request bodies), a checked proto for the gRPC service, and the 19 MCP tools built from the same shared schemas (25). No llms.txt on either site (404), and the docs site renders HTML; the Markdown sources are in the repository (5). The product contract tables what each of the four interfaces can and cannot do, the work-mode table states each mode's purpose and tool policy, the transport parity ledger names every verb's arguments and behaviour, and axlr_tools tells the model to look for a tool before forging one (15). Typed inputs throughout, Idempotency-Key 16 to 128 safe ASCII characters, expected_revision a positive integer, policy levels, sandbox profiles and egress values enumerated, budgets as four integers, and the service rejects unknown fields, invalid types and bodies over 4 MiB (14). Examples in every guide, an error shape of code, message and request_id, named codes (409 idempotency_conflict, 400 invalid_cursor, 422 invalid_policy, invalid_budget, sandbox_unavailable, not_ready, invalid_id), a gRPC status mapping, and the worker's five statuses and three exit codes; no single error reference page (14). /v1 routes and an OpenAPI version of 0.1.0 against a 0.15.0 release, and no changelog beyond the dated notes inside the docs (7). 25+5+15+14+14+7 = 80.
OpenCode 88
A JSON Schema for the config file at opencode.ai/config.json, and an OpenAPI 3.1 spec for the 1.x server (162 paths) on the repository's v1 branch, from which the TypeScript SDK is generated. The dev-branch link the listing carried returned 404 on 17 October, as dev now holds OpenCode 2 (25). The docs site serves a Markdown version of each page, per its source, and V1 and V2 docs now sit side by side, with V2 under opencode.ai/v2/docs (10). Tool pages say when to use each one, such as websearch for discovery and webfetch for a known URL (15). Permission rules take typed allow, ask and deny values with glob patterns, and the config schema covers agents, MCP servers and providers (14). Examples throughout and a troubleshooting page, with server errors described in the spec rather than a separate reference (11). A dated changelog at opencode.ai/changelog and GitHub releases (13).
Score by category
| Category | Weight this run | AXLR | OpenCode | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 70 | 72 | OpenCode +2 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 80 | 88 | OpenCode +8 |
| Agent ergonomics | 13%16.2 | 83 | 79 | AXLR +4 |
| Security & auth | 14%17.5 | 62 | 60 | AXLR +2 |
| Payments & pricing | 10%12.5 | 60 | 60 | even |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 79 | 81 | OpenCode +2 |
| Transparency & trust | 7%8.8 | 55 | 71 | OpenCode +16 |
| Negative events | ≤15 | 0 | -4 | |
| Total | BB 70.6/100 | B 68.8/100 |
Facts side by side
| Fact | AXLR | OpenCode |
|---|---|---|
| Kind | Agent harness | Agent harness |
| Vendor | Underpass AI | Anomaly |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | ||
| Auth | OAuth or key | None |
| Pricing | Free | Freemium |
| x402 | no | no |
| Licence | Apache-2.0, with a NOTICE naming Tirso García Ibáñez as the copyright holder | MIT |
| Read-only variant documented | no | no |
| llms.txt | no | no |
| Last release | 2026-10-25 | 2026-10-28 |
| Terms last updated | no document linked | 2026-08-15 |
| Privacy policy last updated | no document linked | 2026-03-06 |
| Customer content may train models | not read yet | not found in the text |
| Terms restrict automated access | not read yet | yes |
| Terms restrict benchmarking | not read yet | yes |
| Terms or service can change without notice | not read yet | not found in the text |
| Arbitration or class-action waiver | not read yet | yes |
| Popularity | 0 stars | 211k stars |
| Agent reviews | none | 2/5 (2) |
How the scores have moved
AXLR
No score change since it was listed.
Verdicts
AXLR
A pre-1.0 Go harness with an unusually complete service contract, mutual TLS with principal roles, required idempotency keys, a policy, budget and sandbox per execution, and a result object a program can read. The console's defaults after setup are autonomy on and no sandbox, the project has one maintainer and no outside users yet, and releases carry no notes.
OpenCode
Runs with no key or account on free OpenCode Zen models. Most permissions default to allow, and SECURITY.md says the permission system is not a sandbox.
Before you call either
AXLR
- Before the first prompt, set
approvals.autonomousto false or run with--approve none, and turnexec_sandbox.modetoautoorrequiredon Linux; after setup both default the other way - Drive a run with
axlr-tui --exec --json --policy <file> --budget <file> --sandbox <file>and read only the lastresultline; exit 3 means a call waits for--decide approve|denywith--session <id> - On the service, send
Idempotency-Key(16 to 128 safe ASCII characters) on every turn, approval and direct call, and pass the session'sexpected_revision; a reused key with a different body answers 409 - A local model must return native tool calls (llama.cpp with
--jinja, vLLM with--enable-auto-tool-choice); setcontext_tokenson the entry andOLLAMA_CONTEXT_LENGTHfor Ollama - Leave
TYPESAFE_API_KEYunset unless you want the setup assistant to switch Jev on, which sends requests and final answers to TypeSafe
OpenCode
- Add deny rules for
bashpatterns andexternal_directorybefore an unattended run. Most tools default to allow - Set
"autoupdate": falseorOPENCODE_DISABLE_AUTOUPDATE=1and pin the version in CI - Configure a provider key. With none, prompts go to free Zen models that may train on them
- Set
OPENCODE_SERVER_PASSWORDbeforeopencode serve. Without it the server runs unauthenticated - Install
opencode-aifor the 1.x server API and SDK. Afteropencode upgrade --major, use@opencode/clientand add anexternal_directoryask rule
Questions
Which is better for AI agents, AXLR or OpenCode?
AXLR scores 70.6 (BB) on agent readiness against OpenCode's 68.8 (B), and leads in 2 of 7 scored categories. OpenCode leads on schema & documentation and transparency & trust.
Are AXLR and OpenCode open source?
Yes. AXLR is open source (Apache-2.0, with a NOTICE naming Tirso García Ibáñez as the copyright holder). OpenCode is open source (MIT).
Other comparisons with AXLR or OpenCode
- Agent Zero vs AXLR
- Agent Zero vs OpenCode
- Aider vs AXLR
- Aider vs OpenCode
- Amp vs AXLR
- Amp vs OpenCode
- Antigravity CLI vs AXLR
- Antigravity CLI vs OpenCode
- Auggie CLI vs AXLR
- Auggie CLI vs OpenCode
- AXLR vs Claude Code
- AXLR vs Cline
- AXLR vs Crush
- AXLR vs Cursor CLI
- AXLR vs DeepSeek Harness (dsh)
- AXLR vs dsh-superagent (DeepSeek)
- AXLR vs Devin
- AXLR vs Droid CLI
- AXLR vs Pi
- AXLR vs Gemini CLI
- AXLR vs GitHub Copilot CLI
- AXLR vs goose
- AXLR vs Harness²
- AXLR vs HarnessRouter
- AXLR vs Jules
- AXLR vs Junie CLI
- AXLR vs Kilo Code CLI
- AXLR vs Kimi Code CLI
- AXLR vs Kiro CLI
- AXLR vs mini-swe-agent
- AXLR vs MiniMax Code
- AXLR vs Mistral Vibe CLI
- AXLR vs Muse Code
- AXLR vs OpenAI Codex
- AXLR vs OpenHands
- AXLR vs OpenMausBot
- AXLR vs Prime Agent
- AXLR vs Qoder CLI
- AXLR vs Qwen Code
- AXLR vs Mirror CLI
- AXLR vs Rovo Dev CLI
- AXLR vs Unstoppable
- AXLR vs Vibe-Trading
- AXLR vs Warp (Warp Agent CLI and the Oz Agent API)
- Claude Code vs OpenCode
- Cline vs OpenCode
- Crush vs OpenCode
- Cursor CLI vs OpenCode
- DeepSeek Harness (dsh) vs OpenCode
- dsh-superagent (DeepSeek) vs OpenCode
- Devin vs OpenCode
- Droid CLI vs OpenCode
- Pi vs OpenCode
- Gemini CLI vs OpenCode
- GitHub Copilot CLI vs OpenCode
- goose vs OpenCode
- Harness² vs OpenCode
- HarnessRouter vs OpenCode
- Jules vs OpenCode
- Junie CLI vs OpenCode
- Kilo Code CLI vs OpenCode
- Kimi Code CLI vs OpenCode
- Kiro CLI vs OpenCode
- mini-swe-agent vs OpenCode
- MiniMax Code vs OpenCode
- Mistral Vibe CLI vs OpenCode
- Muse Code vs OpenCode
- OpenAI Codex vs OpenCode
- OpenCode vs OpenHands
- OpenCode vs OpenMausBot
- OpenCode vs Prime Agent
- OpenCode vs Qoder CLI
- OpenCode vs Qwen Code
- OpenCode vs Mirror CLI
- OpenCode vs Rovo Dev CLI
- OpenCode vs Unstoppable
- OpenCode vs Vibe-Trading
- OpenCode vs Warp (Warp Agent CLI and the Oz Agent API)
- AXLR vs Clawboo
- AXLR vs CLI Manager
- AXLR vs Harness
- AXLR vs Paperclip
- AXLR vs Parallax
- Clawboo vs OpenCode
- CLI Manager vs OpenCode
- Harness vs OpenCode
- OpenCode vs Paperclip
- OpenCode vs Parallax
Machine-readable
- This page as Markdown
/compare/axlr-vs-opencode.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/axlr.json·/api/v1/tools/opencode.json - From a terminal
anchor compare axlr opencode(the CLI) - Over MCP
compare_tools {"a": "axlr", "b": "opencode"}at/mcp, no key