# AXLR (slim)

> Open-source Go execution engine for agentic work from Underpass AI. A console with work modes and approval cards, an mTLS HTTP, gRPC and MCP service, a JSON worker and a Go library, with KMP memory and MADE procedures over MCP.

- Full: https://www.anchorterminal.com/tools/axlr.md (~10,000 tokens) · this version ~1,780 tokens · JSON https://www.anchorterminal.com/tools/axlr.json · canonical https://www.anchorterminal.com/tools/axlr
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-11-01 · pricing https://www.anchorterminal.com/tools/axlr#pricing · reviews https://www.anchorterminal.com/tools/axlr#reviews
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

**BB · 70.6/100 · rank #163 of 1253 · #3 in Agent harnesses · agent-ready · confidence medium**


Assessment: 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.

## Facts

- Kind: Agent harness · vendor: Underpass AI · category: Agent harnesses · legal entity: not named · provenance 42/100
- Packages: go `github.com/underpass-ai/AXLR`, oci `ghcr.io/underpass-ai/axlr`, oci `ghcr.io/underpass-ai/charts/axlr`
- Auth: OAuth or key · pricing: Free · x402: no · licence: Apache-2.0, with a NOTICE naming Tirso García Ibáñez as the copyright holder
- Probe metrics: not measured yet (probes haven't run)
- Interfaces: axlr-tui console (interactive, `--exec` headless, `setup`, `skills`, `logs`), axlr-serve (HTTP /v1, gRPC, Streamable HTTP MCP at /mcp, mTLS, Helm chart), axlr JSON worker (one request on stdin), Go library
- Built-in tools: local_read, local_write, local_edit, local_exec, local_search, local_list; host tools for sessions, memory, skills, catalog and forged tools; KMP and MADE over MCP
- Approvals: Cards per call with always-allow and `/autonomy`; the setup assistant writes autonomy on with a destructive list that always asks. `--approve none|local|all` and a policy level per execution. The service approves nothing but reads
- Sandbox: None by default; the console and worker are stated not to be sandboxes. `exec_sandbox` (bubblewrap, Linux) in settings, or a `process` or `container` profile per execution with hidden homes and a private /tmp
- Network: Commands get the host's network unless the sandbox egress is `none` or an `allowlist` enforced through AXLR's own HTTP proxy; `routing.allow_remote_providers: false` keeps model requests on loopback
- MCP client: stdio and Streamable HTTP, manual or automatic approval per server, Codex-compatible plugin packages; no OAuth sign-in or custom headers
- Models: OpenRouter, local OpenAI-compatible servers, Anthropic Messages and OpenAI Responses APIs directly; a routing per execution ranks candidates by cost, latency or quality
- Headless: `axlr-tui --exec --json` with a result object and exit codes 0, 3 and 1; the service's CreateSession, StartTurn, StreamEvents and approvals over HTTP, gRPC or MCP
- Telemetry: None found. Model requests go to the chosen provider; Jev to TypeSafe only when on; engine downloads from api.github.com; catalog index from registry.underpassai.com. Payload capture off by default, traces kept 30 days
- Releases in 90 days: 21 (v0.1.0 on 4 October to v0.15.0 on 25 October 2026), six archives each with .sha256, a Helm chart and an image digest; empty release notes

- Scores: Reliability 70, Performance pending, Schema & documentation 80, Agent ergonomics 83, Security & auth 62, Payments & pricing 60, Task success pending, Maintenance & community 79, Transparency & trust 55 · total over the 7 assessed categories
- Why: Reliability, Read as a local package, as claude-code, goose, opencode and openhands were. · Schema & documentation, An OpenAPI 3.1 file for the service (15 paths, 23 schemas, `mutualTLS` security scheme, `additionalProperties: false` on request bodies), a… · Agent ergonomics, Harness reading of the framework line, scored on what a program driving it has to supply. · Security & auth, Harness reading of the framework checklist, as for the other four harnesses. · Payments & pricing, No payment protocol (0). · Maintenance & community, v0.15.0 on 2026-10-25, with commits on main to 2026-11-01 (30). · Transparency & trust, Apache-2.0 with a NOTICE (30).
- Sources: 28, open questions: 8, both in the full twin
- Capabilities: agent.harness, agent.mcp-client, agent.multi-agent
- JSON: https://www.anchorterminal.com/api/v1/tools/axlr.json
- Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/axlr.svg` or a link to https://www.anchorterminal.com/tools/axlr from a page on underpassai.com or one of its subdomains, or the README at the root of github.com/underpass-ai/AXLR, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin.
- Support: contact@underpassai.com; https://axlr.underpassai.com/docs/; https://github.com/underpass-ai/AXLR/blob/main/docs/troubleshooting.md; more in the full twin

## Before you call it

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

## Connect

```bash
V=v0.15.0; OS=linux; ARCH=amd64; curl -fsSLO https://github.com/underpass-ai/AXLR/releases/download/$V/axlr-$V-$OS-$ARCH.tar.gz{,.sha256} && sha256sum -c axlr-$V-$OS-$ARCH.tar.gz.sha256 && tar xzf axlr-$V-$OS-$ARCH.tar.gz -C ~/.local/bin axlr axlr-tui axlr-serve   # or build from source with Go 1.26
```

## Similar tools

| Tool | Grade | Score | Shared capabilities | Slim |
| --- | --- | --- | --- | --- |
| goose | BB | 71.3 | agent.harness, agent.mcp-client, agent.multi-agent | https://www.anchorterminal.com/tools/goose.min.md |
| OpenHands | BB | 70.3 | agent.harness, agent.mcp-client, agent.multi-agent | https://www.anchorterminal.com/tools/openhands.min.md |
| OpenCode | B | 68.8 | agent.harness, agent.mcp-client, agent.multi-agent | https://www.anchorterminal.com/tools/opencode.min.md |
| Qwen Code | B | 68.7 | agent.harness, agent.mcp-client, agent.multi-agent | https://www.anchorterminal.com/tools/qwen-code.min.md |
| Kilo Code CLI | B | 68 | agent.harness, agent.mcp-client, agent.multi-agent | https://www.anchorterminal.com/tools/kilo-code-cli.min.md |


## Panel reviews (0, desk reviews from public material, no calls made)

