Head to head · Agent harnesses · October 2026 research run

Agent Zero vs AXLR

AXLR scores 70.6 (BB) on agent readiness against Agent Zero's 54.6 (C), and leads in 5 of 7 scored categories. Both do agent harnesses.

Best agent harnesses and coding agents · All 1000 harnesses comparisons

Which one, for what

Agent Zero C

Best for A technical owner who wants an agent with its own Linux machine, reachable from Telegram, WhatsApp or email, with scheduled tasks and editable memory.

Also in its favour

  • No key needed to call it

Watch for

No approval step before shell commands, file changes or outgoing messages. Tool Access defaults to allow

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.

Ahead on

  • Reliability, 70 against 57
  • Schema & documentation, 80 against 64
  • Agent ergonomics, 83 against 62
  • Security & auth, 62 against 54

Also in its favour

  • Agent-ready, a grade of BB or better
  • Free to start without a card
  • No incidents deducted, where Agent Zero loses 6 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

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.

Agent ergonomics AXLR +21

Agent Zero 62

Harness reading, scored on what a person or program driving it must supply. Skills load on demand, blocked tools are removed from the prompt, chats can be compacted, and the v2.12 notes report Codex input falling from about 16.4K to 11.3K tokens, a vendor figure (18 of 25). An MCP tool timeout of 120 seconds, a limit of five consecutive unusable responses and context-window handling are set by default. No turn or spend limit was found in the reviewed docs (11 of 20). Other programs reach it through POST /api_message, an optional MCP server, A2A and an ACP bridge, with request and response shapes left to the source (11 of 20). An error-retry plugin, saved chats, a message queue, backups and Time Travel snapshots with diff and revert (14 of 20). One Docker command starts it and a wizard sets the model, but there is no SDK and the default has no login (8 of 15).

AXLR 83

Harness reading of the framework line, scored on what a program driving it has to supply. Six local tools plus the host's bookkeeping tools; work modes and an execution policy hide the tools a run may not use, axlr_catalog searches the catalog instead of loading it, forged tools keep the request prefix for the prompt cache, and a context cap of 75,000 prompt tokens opens a successor session (20). local_read, local_search and local_list page with offset, next_offset and max_bytes; StreamEvents takes after, max_events (1 to 256) and wait_ms; a budget per execution in seconds, requests, tool calls and dollars; 32 tool calls a turn and max_session_usd (20). The --exec run ends in one result line with a status, the pending call, every call's outcome and the usage, and exits 0, 3 or 1; service errors carry codes an agent can act on; a budget stop says which limit (budget: requests 20 reached) and leaves the session resumable (16). Idempotency-Key on every turn, approval and direct call with cross-transport replay, expected_revision on decisions, expected_sha256 on worker writes, and an interrupted effectful call left uncertain for an operator rather than retried (19). One command runs a task, but the first launch needs an OpenRouter key or a local server, the service needs a CA, a principals file and remote KMP and MADE before a first session, and the only SDK is the Go library (8). 20+20+16+19+8 = 83.

Schema & documentation AXLR +16

Agent Zero 64

Harness reading of the lines, as the Goose calibration dossier does. No OpenAPI file. The connectivity page lists five external endpoints and the X-API-KEY header, then sends readers to the source or DeepWiki for request and response details. Each API handler and tool has a .dox.md contract file in the repository, and the MCP client JSON shape is documented (10 of 25). llms.txt at www.agent-zero.ai, and AGENTS.md contract files across the repository (10). Guides say which path to use for a need, with tables that separate the browser, the host connector, MCP and A2A (14 of 20). The v2.12 notes say 15 bundled tools gained argument descriptions in non-strict schemas, and plugin settings are typed YAML with commented examples (8 of 15). Guides carry worked examples and a troubleshooting page, with no documented error responses for the external API (9 of 15). Dated notes on every GitHub release and a release article for each version on the site, with no version prefix on API routes (13 of 15).

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.

Reliability AXLR +13

Agent Zero 57

Read with the local-software lines, as software the owner runs. Installs from the agent0ai/agent-zero Docker image, an install script, or a desktop Launcher with builds for macOS, Linux and Windows on x86 and ARM64. The README says it runs wherever Docker runs. The image registry page was not read (17 of 20). The repository holds 191 test files, and its only two workflows publish Docker images and close inactive issues, so no public CI run shows the tests passing (5 of 25). 139 open issues and pull requests on 12 October 2026. Open reports from September include a crash of run_ui after a failed memory consolidation (#1909), a browser worker that hangs the agent turn (#1923) and truncated backups (#1904), each with no reply or one, and a workflow closes anything inactive for 90 days (11 of 25). Release notes for v2.11, v2.12 and v2.13 carry a Breaking Changes section, but breaking changes ship in minor versions, so the numbering is not semver (9 of 15). v2.13, past 1.0 (15).

AXLR 70

Read as a local package, as claude-code, goose, opencode and openhands were. Release archives for Linux, macOS and Windows on amd64 and arm64 with a .sha256 beside each, a GHCR image, an OCI Helm chart and source builds with Go 1.26, all stated in the docs; no Homebrew, npm or apt route (20). CI on main runs vet, race tests and a coverage gate above 80 per cent for both modules, with the sandbox tests required under bubblewrap, and the last ten runs on main to 1 November 2026 all passed; the release workflow tests on six native runners (25). 10 open issues, all opened by the founder on 19 and 21 October 2026 as trackers for service work (work modes, plugins, the sandbox setting, cost limits), none from an outside user and none a crash report, 0 open pull requests and about 100 merged; with 0 stars there is nobody else to report, so the handling of outside reports is untested (20). Tags are semver 0.x and the docs date each behaviour change inline ("until 14 October 2026…"), but the 21 releases have empty notes, there is no CHANGELOG.md, and the product contract records one retirement (the seven 1.0 skill definitions on 5 October 2026) without a notice period (5). Pre-1.0, which the README calls an evolving project (0). 20+25+20+5+0 = 70.

Security & auth AXLR +8

Agent Zero 54

Harness reading of the framework checklist, the one the Goose calibration dossier uses. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. No usage telemetry was found in the source. An update check, on by default, posts the version and a 20-character hash of the instance id to api.agent-zero.ai, and one setting turns it off. The reviewed docs do not describe what it sends (22). The agent works inside a Docker container built on Kali Linux and runs as root there. Tool Access can block tools by project or profile and defaults to allow, host access through the A0 CLI is scoped by read, write and execute permissions, and no approval step was found before a shell command, a file deletion or an outgoing message. The web interface has no login until a username is set (10). Infection Check audits the agent's reasoning with a second model before each tool call and ships disabled. Scanners check plugins, skills and MCP servers before install. The channel allow-lists accept every sender when empty, and the email filter matches the claimed From address only, which the plugin README states (7). Chat logs, visible tool steps and Time Travel snapshots, with no per-call audit log. Per-process log files were removed in v2.5 (9). No SECURITY.md, security.txt answered 404, and the repository has no published advisory, while NVD lists five CVEs since March 2026. A security-review ledger in the repository records two findings, and the v2.12 notes name both fixes (6).

AXLR 62

Harness reading of the framework checklist, as for the other four harnesses. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. No product telemetry in the console source (the outbound hosts are openrouter.ai, api.anthropic.com, api.openai.com, a configured local server, api.github.com and github.com for engine downloads, and registry.underpassai.com for the signed catalog index) or in the docs; payload capture is off by default since 9 October 2026, traces omit prompts and credentials, model keys are never given to commands or plugins, and Jev sends requests and answers to TypeSafe only when on, which the setup assistant does when TYPESAFE_API_KEY is set, with a notice on stderr (27). Approval cards, a destructive list that always asks, four work modes, a policy level per execution, a bubblewrap or container sandbox with an enforced egress allow list, and a service that approves nothing but reads. Against that, the setup assistant writes autonomous: true, exec_sandbox is off by default, forged tools run with the person's rights, and the README says the console and worker are not sandboxes (13). Forged tools are refused when a file changes since the forge, a policy forbids calls outside the model, and the docs say MCP tools keep their own side effects, but no prompt-injection guidance was found and MCP results reach the model unmarked (6). The service keeps an event journal, audit records, a receipt with the SHA-256 of every call's arguments and outcome, and correlation ids on every event; the console keeps session records, a redacted app log and /session (14). No SECURITY.md, no security.txt on either host, no advisories, no bug bounty; release checksums and a minisign-signed catalog are integrity, not a programme (2). 27+13+6+14+2 = 62.

Score by category

CategoryWeight this runAgent ZeroAXLREdge
Reliability16%205770AXLR +13
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.26480AXLR +16
Agent ergonomics13%16.26283AXLR +21
Security & auth14%17.55462AXLR +8
Payments & pricing10%12.56060even
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87579AXLR +4
Transparency & trust7%8.85955Agent Zero +4
Negative events≤15-60
TotalC 54.6/100BB 70.6/100

Facts side by side

FactAgent ZeroAXLR
KindAgent harnessAgent harness
VendorAgent Zero, s.r.o.Underpass AI
Hosted endpointno (local only)no (local only)
Transports
AuthNoneOAuth or key
PricingFreeFree
x402nono
LicenceMITApache-2.0, with a NOTICE naming Tirso García Ibáñez as the copyright holder
Read-only variant documentednono
llms.txtyesno
Last release2026-09-232026-10-25
Terms last updatedno document linkedno document linked
Privacy policy last updatedno document linkedno document linked
Popularity19k stars0 stars

How the scores have moved

Verdicts

Agent Zero

Self-hosted under the MIT licence, with nine releases in the 90 days to 12 October 2026 and breaking changes listed in the release notes. The agent runs shell commands in its container with no approval step, the web interface has no login by default, and five CVEs from the past year have no published GitHub advisory.

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.

Before you call either

Agent Zero

  1. Set a UI login and password in Settings before publishing the port or opening a tunnel. The default has none
  2. Fill allowed_users, allowed_numbers or sender_whitelist before enabling a channel. An empty list accepts every sender
  3. Enable the Infection Check plugin when the agent reads mail, web pages or MCP results. It ships disabled
  4. Run v2.12 or later. It fixes a Telegram webhook authentication bypass and a WhatsApp media path traversal
  5. Call POST /api_message with the X-API-KEY header. The token changes when the UI login or password changes

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

Questions

Which is better for AI agents, Agent Zero or AXLR?

AXLR scores 70.6 (BB) on agent readiness against Agent Zero's 54.6 (C), and leads in 5 of 7 scored categories.

Are Agent Zero and AXLR open source?

Yes. Agent Zero is open source (MIT). AXLR is open source (Apache-2.0, with a NOTICE naming Tirso García Ibáñez as the copyright holder).

Other comparisons with Agent Zero or AXLR

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.