# AXLR vs OpenCode

> AXLR scores 70.6 (BB) to OpenCode's 68.8 (B) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/axlr-vs-opencode
- Markdown: https://www.anchorterminal.com/compare/axlr-vs-opencode.md (~4,950 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-01

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.

- AXLR: grade BB, 70.6/100, rank #168 of 1253. Markdown https://www.anchorterminal.com/tools/axlr.md · JSON https://www.anchorterminal.com/api/v1/tools/axlr.json
- OpenCode: grade B, 68.8/100, rank #213 of 1253. Markdown https://www.anchorterminal.com/tools/opencode.md · JSON https://www.anchorterminal.com/api/v1/tools/opencode.json
- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md
- All 1000 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md

## Which one, for what

### AXLR (BB)

Good 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)

Good 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

### 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 | AXLR | OpenCode | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 70 | 72 | OpenCode +2 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 80 | 88 | OpenCode +8 |
| Agent ergonomics | 13% (16.2 this run) | 83 | 79 | AXLR +4 |
| Security & auth | 14% (17.5 this run) | 62 | 60 | AXLR +2 |
| Payments & pricing | 10% (12.5 this run) | 60 | 60 | even |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 79 | 81 | OpenCode +2 |
| Transparency & trust | 7% (8.8 this run) | 55 | 71 | OpenCode +16 |
| Negative events | ≤15 | 0 | -4 | |
| **Total** | | **70.6 · BB** | **68.8 · B** | |

## 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.

### OpenCode

- +0.3 on 27 October 2026: checklist
- +0.8 on 17 October 2026: product
- -0.3 on 8 October 2026: checklist

## 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

1. Before the first prompt, set `approvals.autonomous` to false or run with `--approve none`, and turn `exec_sandbox.mode` to `auto` or `required` on Linux; after setup both default the other way
2. Drive a run with `axlr-tui --exec --json --policy <file> --budget <file> --sandbox <file>` and read only the last `result` line; exit 3 means a call waits for `--decide approve|deny` with `--session <id>`
3. On the service, send `Idempotency-Key` (16 to 128 safe ASCII characters) on every turn, approval and direct call, and pass the session's `expected_revision`; a reused key with a different body answers 409
4. A local model must return native tool calls (llama.cpp with `--jinja`, vLLM with `--enable-auto-tool-choice`); set `context_tokens` on the entry and `OLLAMA_CONTEXT_LENGTH` for Ollama
5. Leave `TYPESAFE_API_KEY` unset unless you want the setup assistant to switch Jev on, which sends requests and final answers to TypeSafe

### OpenCode

1. Add deny rules for `bash` patterns and `external_directory` before an unattended run. Most tools default to allow
2. Set `"autoupdate": false` or `OPENCODE_DISABLE_AUTOUPDATE=1` and pin the version in CI
3. Configure a provider key. With none, prompts go to free Zen models that may train on them
4. Set `OPENCODE_SERVER_PASSWORD` before `opencode serve`. Without it the server runs unauthenticated
5. Install `opencode-ai` for the 1.x server API and SDK. After `opencode upgrade --major`, use `@opencode/client` and add an `external_directory` ask 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).


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/axlr-vs-opencode.json, and with the fewest tokens: https://www.anchorterminal.com/compare/axlr-vs-opencode.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "axlr", "b": "opencode"}`. From a terminal: `anchor compare axlr opencode`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/axlr.json and https://www.anchorterminal.com/api/v1/tools/opencode.json

## Other comparisons with AXLR or OpenCode

- [Agent Zero vs AXLR](https://www.anchorterminal.com/compare/agent-zero-vs-axlr.md)
- [Agent Zero vs OpenCode](https://www.anchorterminal.com/compare/agent-zero-vs-opencode.md)
- [Aider vs AXLR](https://www.anchorterminal.com/compare/aider-vs-axlr.md)
- [Aider vs OpenCode](https://www.anchorterminal.com/compare/aider-vs-opencode.md)
- [Amp vs AXLR](https://www.anchorterminal.com/compare/amp-vs-axlr.md)
- [Amp vs OpenCode](https://www.anchorterminal.com/compare/amp-vs-opencode.md)
- [Antigravity CLI vs AXLR](https://www.anchorterminal.com/compare/antigravity-cli-vs-axlr.md)
- [Antigravity CLI vs OpenCode](https://www.anchorterminal.com/compare/antigravity-cli-vs-opencode.md)
- [Auggie CLI vs AXLR](https://www.anchorterminal.com/compare/auggie-vs-axlr.md)
- [Auggie CLI vs OpenCode](https://www.anchorterminal.com/compare/auggie-vs-opencode.md)
- [AXLR vs Claude Code](https://www.anchorterminal.com/compare/axlr-vs-claude-code.md)
- [AXLR vs Cline](https://www.anchorterminal.com/compare/axlr-vs-cline.md)
- [AXLR vs Crush](https://www.anchorterminal.com/compare/axlr-vs-crush.md)
- [AXLR vs Cursor CLI](https://www.anchorterminal.com/compare/axlr-vs-cursor-cli.md)
- [AXLR vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/axlr-vs-deepseek-harness.md)
- [AXLR vs dsh-superagent (DeepSeek)](https://www.anchorterminal.com/compare/axlr-vs-deepseek-superagent.md)
- [AXLR vs Devin](https://www.anchorterminal.com/compare/axlr-vs-devin.md)
- [AXLR vs Droid CLI](https://www.anchorterminal.com/compare/axlr-vs-droid-cli.md)
- [AXLR vs Pi](https://www.anchorterminal.com/compare/axlr-vs-earendil-pi.md)
- [AXLR vs Gemini CLI](https://www.anchorterminal.com/compare/axlr-vs-gemini-cli.md)
- [AXLR vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/axlr-vs-github-copilot-cli.md)
- [AXLR vs goose](https://www.anchorterminal.com/compare/axlr-vs-goose.md)
- [AXLR vs Harness²](https://www.anchorterminal.com/compare/axlr-vs-harness2.md)
- [AXLR vs HarnessRouter](https://www.anchorterminal.com/compare/axlr-vs-harnessrouter.md)
- [AXLR vs Jules](https://www.anchorterminal.com/compare/axlr-vs-jules.md)
- [AXLR vs Junie CLI](https://www.anchorterminal.com/compare/axlr-vs-junie.md)
- [AXLR vs Kilo Code CLI](https://www.anchorterminal.com/compare/axlr-vs-kilo-code-cli.md)
- [AXLR vs Kimi Code CLI](https://www.anchorterminal.com/compare/axlr-vs-kimi-code-cli.md)
- [AXLR vs Kiro CLI](https://www.anchorterminal.com/compare/axlr-vs-kiro-cli.md)
- [AXLR vs mini-swe-agent](https://www.anchorterminal.com/compare/axlr-vs-mini-swe-agent.md)
- [AXLR vs MiniMax Code](https://www.anchorterminal.com/compare/axlr-vs-minimax-code.md)
- [AXLR vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/axlr-vs-mistral-vibe-cli.md)
- [AXLR vs Muse Code](https://www.anchorterminal.com/compare/axlr-vs-muse-code.md)
- [AXLR vs OpenAI Codex](https://www.anchorterminal.com/compare/axlr-vs-openai-codex.md)
- [AXLR vs OpenHands](https://www.anchorterminal.com/compare/axlr-vs-openhands.md)
- [AXLR vs OpenMausBot](https://www.anchorterminal.com/compare/axlr-vs-openmausbot.md)
- [AXLR vs Prime Agent](https://www.anchorterminal.com/compare/axlr-vs-prime-agent.md)
- [AXLR vs Qoder CLI](https://www.anchorterminal.com/compare/axlr-vs-qoder-cli.md)
- [AXLR vs Qwen Code](https://www.anchorterminal.com/compare/axlr-vs-qwen-code.md)
- [AXLR vs Mirror CLI](https://www.anchorterminal.com/compare/axlr-vs-reflection-mirror.md)
- [AXLR vs Rovo Dev CLI](https://www.anchorterminal.com/compare/axlr-vs-rovo-dev-cli.md)
- [AXLR vs Unstoppable](https://www.anchorterminal.com/compare/axlr-vs-unstoppable.md)
- [AXLR vs Vibe-Trading](https://www.anchorterminal.com/compare/axlr-vs-vibe-trading.md)
- [AXLR vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/axlr-vs-warp.md)
- [Claude Code vs OpenCode](https://www.anchorterminal.com/compare/claude-code-vs-opencode.md)
- [Cline vs OpenCode](https://www.anchorterminal.com/compare/cline-vs-opencode.md)
- [Crush vs OpenCode](https://www.anchorterminal.com/compare/crush-vs-opencode.md)
- [Cursor CLI vs OpenCode](https://www.anchorterminal.com/compare/cursor-cli-vs-opencode.md)
- [DeepSeek Harness (dsh) vs OpenCode](https://www.anchorterminal.com/compare/deepseek-harness-vs-opencode.md)
- [dsh-superagent (DeepSeek) vs OpenCode](https://www.anchorterminal.com/compare/deepseek-superagent-vs-opencode.md)
- [Devin vs OpenCode](https://www.anchorterminal.com/compare/devin-vs-opencode.md)
- [Droid CLI vs OpenCode](https://www.anchorterminal.com/compare/droid-cli-vs-opencode.md)
- [Pi vs OpenCode](https://www.anchorterminal.com/compare/earendil-pi-vs-opencode.md)
- [Gemini CLI vs OpenCode](https://www.anchorterminal.com/compare/gemini-cli-vs-opencode.md)
- [GitHub Copilot CLI vs OpenCode](https://www.anchorterminal.com/compare/github-copilot-cli-vs-opencode.md)
- [goose vs OpenCode](https://www.anchorterminal.com/compare/goose-vs-opencode.md)
- [Harness² vs OpenCode](https://www.anchorterminal.com/compare/harness2-vs-opencode.md)
- [HarnessRouter vs OpenCode](https://www.anchorterminal.com/compare/harnessrouter-vs-opencode.md)
- [Jules vs OpenCode](https://www.anchorterminal.com/compare/jules-vs-opencode.md)
- [Junie CLI vs OpenCode](https://www.anchorterminal.com/compare/junie-vs-opencode.md)
- [Kilo Code CLI vs OpenCode](https://www.anchorterminal.com/compare/kilo-code-cli-vs-opencode.md)
- [Kimi Code CLI vs OpenCode](https://www.anchorterminal.com/compare/kimi-code-cli-vs-opencode.md)
- [Kiro CLI vs OpenCode](https://www.anchorterminal.com/compare/kiro-cli-vs-opencode.md)
- [mini-swe-agent vs OpenCode](https://www.anchorterminal.com/compare/mini-swe-agent-vs-opencode.md)
- [MiniMax Code vs OpenCode](https://www.anchorterminal.com/compare/minimax-code-vs-opencode.md)
- [Mistral Vibe CLI vs OpenCode](https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-opencode.md)
- [Muse Code vs OpenCode](https://www.anchorterminal.com/compare/muse-code-vs-opencode.md)
- [OpenAI Codex vs OpenCode](https://www.anchorterminal.com/compare/openai-codex-vs-opencode.md)
- [OpenCode vs OpenHands](https://www.anchorterminal.com/compare/opencode-vs-openhands.md)
- [OpenCode vs OpenMausBot](https://www.anchorterminal.com/compare/opencode-vs-openmausbot.md)
- [OpenCode vs Prime Agent](https://www.anchorterminal.com/compare/opencode-vs-prime-agent.md)
- [OpenCode vs Qoder CLI](https://www.anchorterminal.com/compare/opencode-vs-qoder-cli.md)
- [OpenCode vs Qwen Code](https://www.anchorterminal.com/compare/opencode-vs-qwen-code.md)
- [OpenCode vs Mirror CLI](https://www.anchorterminal.com/compare/opencode-vs-reflection-mirror.md)
- [OpenCode vs Rovo Dev CLI](https://www.anchorterminal.com/compare/opencode-vs-rovo-dev-cli.md)
- [OpenCode vs Unstoppable](https://www.anchorterminal.com/compare/opencode-vs-unstoppable.md)
- [OpenCode vs Vibe-Trading](https://www.anchorterminal.com/compare/opencode-vs-vibe-trading.md)
- [OpenCode vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/opencode-vs-warp.md)
- [AXLR vs Clawboo](https://www.anchorterminal.com/compare/axlr-vs-clawboo.md)
- [AXLR vs CLI Manager](https://www.anchorterminal.com/compare/axlr-vs-cli-manager.md)
- [AXLR vs Harness](https://www.anchorterminal.com/compare/axlr-vs-harness-autonomous.md)
- [AXLR vs Paperclip](https://www.anchorterminal.com/compare/axlr-vs-paperclip.md)
- [AXLR vs Parallax](https://www.anchorterminal.com/compare/axlr-vs-parallax-agents.md)
- [Clawboo vs OpenCode](https://www.anchorterminal.com/compare/clawboo-vs-opencode.md)
- [CLI Manager vs OpenCode](https://www.anchorterminal.com/compare/cli-manager-vs-opencode.md)
- [Harness vs OpenCode](https://www.anchorterminal.com/compare/harness-autonomous-vs-opencode.md)
- [OpenCode vs Paperclip](https://www.anchorterminal.com/compare/opencode-vs-paperclip.md)
- [OpenCode vs Parallax](https://www.anchorterminal.com/compare/opencode-vs-parallax-agents.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
