{
  "data": {
    "a": {
      "slug": "crush",
      "name": "Crush",
      "vendor": "Charm",
      "vendorUrl": "https://charm.land",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Terminal coding agent from Charm, written in Go, that works with the model of the owner's choice. It has a TUI, a one-shot `crush run` mode, LSP context, MCP servers, Agent Skills and an optional local client-server mode.",
      "url": "https://www.anchorterminal.com/tools/crush",
      "markdownUrl": "https://www.anchorterminal.com/tools/crush.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/crush.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/crush.json",
      "repo": "https://github.com/charmbracelet/crush",
      "license": "FSL-1.1-MIT (source-available, each release converts to MIT two years after it is made available)",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@charmland/crush"
        },
        {
          "registry": "go",
          "name": "github.com/charmbracelet/crush"
        }
      ],
      "auth": "mixed",
      "authNotes": "No Charm account is needed. Provider keys come from environment variables such as `ANTHROPIC_API_KEY` or `OPENAI_API_KEY`, the model picker or a `crushrc`, local models need none, and Charm's Hyper provider uses a device login. `crush server` has no authentication and listens on a per-user Unix socket by default.",
      "pricing": "freemium",
      "pricingNotes": "The CLI is free to use under FSL-1.1-MIT. You pay your model provider, or Charm's Hyper subscription, which the README says has a free tier. Hyper's public provider file lists per-million-token figures for 22 models. Plan prices sit in a script-rendered app and weren't read.",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the docs folder or the source (checked 2026-10-18).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 29000,
        "npmWeekly": 5594,
        "pypiWeekly": null,
        "asOf": "2026-10-18"
      },
      "docsUrl": "https://github.com/charmbracelet/crush#readme",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "harness",
        "coding-agent",
        "cli",
        "source-available",
        "go",
        "mcp",
        "telemetry-default-on",
        "pre-1.0",
        "freemium",
        "no-card",
        "local"
      ],
      "lastRelease": "2026-10-09",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 56.5,
        "grade": "C",
        "agentReady": false,
        "rank": 705,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 26,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 52,
          "maintenance": 82,
          "payments": 55,
          "reliability": 54,
          "schema": 65,
          "security": 44,
          "transparency": 56
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-18"
        },
        "negative": 0,
        "verdict": "Works with almost any provider or a local model and needs no Charm account. `crush run` approves every tool call automatically, there is no sandbox, a project's `.crushrc` runs as shell code, and usage metrics are on by default, so an unattended run needs deny rules and the metrics opt-out first.",
        "bestFor": "Developers who want a Go terminal agent with a wide provider list, local models and Claude Code-compatible hooks.",
        "strengths": [
          "Any OpenAI- or Anthropic-compatible provider, Bedrock, Vertex, Azure and local models through Ollama, llama.cpp, LM Studio or LiteLLM, with no Charm account",
          "PreToolUse hooks, compatible with Claude Code's format, can block or rewrite tool calls",
          "Releases cosign-signed, with CodeQL, Grype and govulncheck in CI",
          "20 releases in the 90 days to 18 October 2026, the latest on 9 October",
          "Built for macOS, Linux, Windows, Android and three BSDs, with packages for npm, Homebrew, Winget, Scoop, apt, yum and Nix"
        ],
        "weaknesses": [
          "`crush run` approves every permission request automatically, which the README doesn't mention",
          "No sandbox, only a fixed list of refused shell commands",
          "A project's `.crushrc` and `$(...)` in `crush.json` run as code when Crush starts",
          "Usage metrics are on by default and are linked to the Hyper account after a Hyper login",
          "No JSON output, turn limit or cost limit for `crush run`, and the client-server API is opt-in and has no authentication"
        ],
        "agentNotes": [
          "Add `permissions deny` rules or a PreToolUse hook before `crush run`. It approves every permission request in its session",
          "Read `.crushrc`, `crushrc` and `crush.json` in a cloned repository before running Crush there. They execute as shell code at startup",
          "Set `CRUSH_DISABLE_METRICS=1` or `DO_NOT_TRACK=1` to stop usage metrics to data.charm.land",
          "Wrap `crush run` in your own timeout. It has no turn, time or cost limit flag",
          "Configure a provider by environment variable or `crushrc` first. With none, `crush run` exits with an error asking for interactive setup"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 56.5
          }
        ],
        "editorialScores": {
          "ergonomics": 52,
          "maintenance": 82,
          "payments": 55,
          "reliability": 54,
          "schema": 65,
          "security": 44,
          "transparency": 49
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "npm install -g @charmland/crush   # or: brew install charmbracelet/tap/crush",
        "headless": {
          "command": "crush run --quiet \"$TASK\"",
          "env": {
            "CRUSH_DISABLE_METRICS": "1"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/crush"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Hyper, qwen3.8-max (default large model), input",
          "unit": "1m-tokens",
          "usd": 2,
          "note": "output $6, from Hyper's public provider file"
        },
        {
          "item": "Hyper, deepseek-v4.1-flash (default small model), input",
          "unit": "1m-tokens",
          "usd": 0.33,
          "note": "output $1.31, from Hyper's public provider file"
        }
      ],
      "provenance": {
        "legalEntity": "Charmbracelet, Inc.",
        "domain": "charm.land",
        "domainRegistered": "2023-08-17",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/charmbracelet/crush/releases",
        "securityTxt": "none",
        "checked": "2026-10-18",
        "notes": [
          "LICENSE.md and the charm.land footer name Charmbracelet, Inc.",
          "charm.land/privacy, charm.land/terms and charm.land/.well-known/security.txt return Charm's not-found page. Hyper links Terms of Service and a Privacy Policy at hyper.charm.land/legal, which render by script and weren't read.",
          "The organisation's SECURITY.md gives vt100@charm.sh for reports. The crush repository has no SECURITY.md of its own.",
          "Release notes are generated from commit messages on GitHub releases. There is no CHANGELOG file in the repository."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/crush.json"
    },
    "answer": "Crush scores 56.5 (C) on agent readiness against HarnessRouter's 53.2 (D), and leads in 3 of 7 scored categories. HarnessRouter leads on schema \u0026 documentation, agent ergonomics, security \u0026 auth and transparency \u0026 trust.",
    "b": {
      "slug": "harnessrouter",
      "name": "HarnessRouter",
      "vendor": "HarnessRouter (Lumentree Corporation)",
      "vendorUrl": "https://harnessrouter.ai",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "HarnessRouter runs complete agent harnesses such as Codex, Claude Code and Hermes behind one HTTP API, the Unified Harness Protocol, with sessions, streaming, files and artifacts. It comes as a hosted cloud or a self-hosted Community Edition.",
      "url": "https://www.anchorterminal.com/tools/harnessrouter",
      "markdownUrl": "https://www.anchorterminal.com/tools/harnessrouter.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/harnessrouter.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/harnessrouter.json",
      "repo": "https://github.com/HarnessRouter/harnessrouter",
      "license": "Apache-2.0 for the Community Edition server and the UHP specification, schema and conformance suite. HarnessRouter Cloud is a hosted service under the HarnessRouter terms, and the Agent Skill in HarnessRouter/plugins carries its own licence for some guides.",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.harnessrouter.ai",
      "packages": [
        {
          "registry": "oci",
          "name": "harnessrouter/harnessrouter"
        }
      ],
      "auth": "api-key",
      "authNotes": "A Workspace API key (sk-hr-) as a Bearer token from the product's server, never from a browser (https://harnessrouter.ai/docs/authentication). Keys are created in the console after a browser sign-up, can be held to one workspace or reach the whole organisation, and are revoked at once by DELETE /v1/orgs/{org}/keys/{id}. No OAuth or per-endpoint scopes found. The self-hosted Community Edition signs into its console with a username and password and needs no HarnessRouter key.",
      "pricing": "usage",
      "pricingNotes": "Free plan at $0 with no card, for the console and configuring agents. Running tasks draws on top-up credit ($10 minimum, 5.5 per cent fee) or a plan, Developer $20, Production $200 or Scale $1,000 a month, each fully included as usage. Agent work is $0.020 an active minute on top-ups and $0.014 to $0.006 on plans, and model calls are at the provider's price or on your own keys (https://harnessrouter.ai/pricing.md, checked 2026-10-17). Self-serve payment is card-only.",
      "priceSummary": "$20 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, llms-full.txt, the pricing page or the UHP schema (checked 2026-10-17). Payment is by card for top-ups and plans.",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": 3075,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-17"
      },
      "docsUrl": "https://harnessrouter.ai/docs",
      "llmsTxt": "https://harnessrouter.ai/llms.txt",
      "openapi": "https://github.com/HarnessRouter/harnessrouter/blob/main/protocol/schema/uhp-2026-10-04.openapi.yaml",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "hosted",
        "self-hosted",
        "open-source",
        "apache-2.0",
        "api-key",
        "usage",
        "openapi",
        "llms-txt",
        "docker",
        "python",
        "streaming",
        "cloud-agent",
        "agent-skill"
      ],
      "lastRelease": "2026-10-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.2,
        "grade": "D",
        "agentReady": false,
        "rank": 803,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 30,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 72,
          "payments": 25,
          "reliability": 35,
          "schema": 83,
          "security": 58,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-17"
        },
        "negative": -5,
        "negativeNotes": [
          "2026-10-06, -5. Privately reported flaws fixed in public commits #416 to #429 on 6 and 7 October 2026. The gateway source names them GHSA-p6cq-54cg-8mpv (a bearer token that failed verification still reached internal routes, so anyone could rewrite any organisation's connections and routing; \"found live on the hosted service and closed there the same way, 2026-10-06\"), GHSA-qrr8-m92f-7vfp (identity headers trusted by default), GHSA-mw9j-m5jf-5r56 and GHSA-c5g7-c47h-f6c3 (server-side request forgery through git imports and upload addresses) and GHSA-rmh9-whjx-gfrc (secrets with quotes or non-ASCII characters left unredacted). A workspace key could also read, change and delete another workspace's harnesses, sessions and responses and mint an organisation-wide key (\"reported privately three times\"). All were fixed within days and described in the source. The advisory pages couldn't be read (GitHub answered 403), so whether they're published is unchecked, and the deduction is lower than an open cross-tenant flaw would get. Source https://github.com/HarnessRouter/harnessrouter/blob/main/gateway/app.py"
        ],
        "verdict": "A product's server sends a task to a named harness and gets streamed progress, sessions and files back, under a published OpenAPI contract with idempotency keys and a closed set of error codes. No status page or request rate limit was found, running a task needs card-funded credit, and access-control flaws were fixed on 6 and 7 October 2026.",
        "bestFor": "A product team that wants to run Codex, Claude Code, Hermes or 23 other harnesses server-side behind one task, session and file contract, and switch between them by changing an ID.",
        "strengths": [
          "UHP is published as OpenAPI 3.1 and JSON Schema 2020-12 under Apache-2.0, with a 98-check conformance suite in the repository",
          "Every task call takes an Idempotency-Key, and the error envelope has a closed code set, with a retry rule per code",
          "Per-turn budgets (400 steps, 7,200 seconds and $10 by default) cap what one task can spend",
          "26 harnesses listed as available, including Codex, Claude Code, Hermes, OpenCode, goose and Qoder, behind one task contract",
          "202 tagged releases between 15 August and 16 October 2026, and the self-hosted Community Edition runs with no HarnessRouter account"
        ],
        "weaknesses": [
          "No status page found (status.harnessrouter.ai doesn't resolve and /status answers 404), and the terms give no service level without a signed order form",
          "No request rate limit is published. Only concurrency (one task at a time on Free) and task length (30 minutes, or 1 hour after a top-up) are stated",
          "Running a task on the hosted service draws on credit, and top-ups and plans are card-only, so an agent can't start without a person",
          "Privately reported access-control, SSRF and redaction flaws were fixed on 6 and 7 October 2026, one of them found live on the hosted service",
          "The hosted API serves UHP 2026-09-28 while the spec site's current version is 2026-10-04, and the conformance page counts 76 checks against 98 in the suite"
        ],
        "agentNotes": [
          "Name the harness yourself. The task call is POST /{harness_id}/v1/responses, and HarnessRouter doesn't choose a harness for you",
          "Send a fresh Idempotency-Key with each new task, reuse it only for a retry of the same request, and recover from the session if a stream drops",
          "Call cancel to stop work. Closing the SSE connection leaves the agent running and billing",
          "Keep the Workspace API key on the server. The docs forbid calling the API from a browser with it",
          "Check each tool's enforcement in GET /v1/bases. On bases marked instruction, disabled_tools is a request to the model, not a block"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.2
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 72,
          "payments": 25,
          "reliability": 35,
          "schema": 83,
          "security": 58,
          "transparency": 78
        },
        "provenanceScore": 65
      },
      "connect": {
        "install": "docker run -d --name harnessrouter -p 127.0.0.1:3000:3000 -v harnessrouter:/data harnessrouter/harnessrouter",
        "http": "curl -N https://api.harnessrouter.ai/$HARNESS_ID/v1/responses -H \"Authorization: Bearer $HR_API_KEY\" -H \"Idempotency-Key: $(uuidgen)\" -H \"Content-Type: application/json\" -d '{\"input\": \"Review this uploaded agreement and return a checklist.\", \"stream\": true}'"
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/harnessrouter"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Developer plan, all $20 as usage",
          "unit": "month",
          "usd": 20,
          "note": "agent work $0.014 an active minute, one workspace"
        },
        {
          "item": "Production plan, all $200 as usage",
          "unit": "month",
          "usd": 200,
          "note": "agent work $0.010 an active minute, five workspaces"
        },
        {
          "item": "Scale plan, all $1,000 as usage",
          "unit": "month",
          "usd": 1000,
          "note": "agent work $0.006 an active minute, tracing included"
        },
        {
          "item": "Agent work on top-up credit, per hour of active work",
          "unit": "session-hour",
          "usd": 1.2,
          "note": "$0.020 an active minute, billed by the second. Waiting on the model, the user or a queue isn't billed"
        },
        {
          "item": "Tracing add-on",
          "unit": "month",
          "usd": 50,
          "note": "beta, included with Scale"
        }
      ],
      "provenance": {
        "legalEntity": "Lumentree Corporation",
        "domain": "harnessrouter.ai",
        "domainRegistered": "2026-06-18",
        "endpointOnVendorDomain": true,
        "terms": "https://harnessrouter.ai/legal/terms",
        "privacy": "https://harnessrouter.ai/legal/privacy",
        "statusPage": "",
        "changelog": "https://unifiedharnessprotocol.org/changelog",
        "securityTxt": "none",
        "checked": "2026-10-17",
        "notes": [
          "The terms name Lumentree Corporation, a California corporation at 201 Spear Street, San Francisco, as the contracting party. The YC launch lists the company as Epsilla (Summer 2023), and the maintainer commits from an epsilla.com address.",
          "harnessrouter.ai was registered on 18 June 2026 and unifiedharnessprotocol.org on 12 August 2026 (registry RDAP, checked 2026-10-17).",
          "No status page. status.harnessrouter.ai doesn't resolve and harnessrouter.ai/status answers 404.",
          "harnessrouter.ai/.well-known/security.txt answers 404. A disclosure policy is at /legal/security, and SECURITY.md in the repository names GitHub private reporting and contact@harnessrouter.ai.",
          "The changelog is the UHP specification's. HarnessRouter itself has 202 tags in the repository and no product changelog page was found.",
          "The terms forbid scraping or crawling except as allowed by the documentation, an API endpoint, robots.txt or written permission. robots.txt on harnessrouter.ai and unifiedharnessprotocol.org allows all paths."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/harnessrouter.json",
      "live": {
        "slug": "harnessrouter",
        "probe": {
          "target": "https://api.harnessrouter.ai",
          "method": "get",
          "lastAt": "2026-10-19T00:10:56.860564978Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 273,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 277,
          "p95ms24h": 364,
          "samples24h": 256,
          "samples30d": 279,
          "days": [
            {
              "date": "2026-10-17",
              "probes": 21,
              "ok": 21
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 2,
              "ok": 2
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "HarnessRouter/harnessrouter",
            "version": "v0.34.2",
            "released": "2026-10-16",
            "seenAt": "2026-10-18T02:52:05.442502781Z"
          }
        ],
        "githubStars": 3100,
        "securityTxt": {
          "url": "https://harnessrouter.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-18T15:53:15.81829781Z"
        },
        "llmsTxt": {
          "url": "https://harnessrouter.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-18T14:25:13.67588166Z"
        },
        "domain": {
          "domain": "harnessrouter.ai",
          "registered": "2026-06-18",
          "source": "https://rdap.identitydigital.services/rdap/domain/harnessrouter.ai",
          "checkedAt": "2026-10-18T13:43:04.282698858Z"
        },
        "pages": [
          {
            "url": "https://unifiedharnessprotocol.org/changelog",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-18T23:39:35.438442764Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "783aeda2cd75"
          },
          {
            "url": "https://harnessrouter.ai/pricing.md",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-18T23:31:33.798956939Z",
            "changedAt": "2026-10-18T23:31:33.798956939Z",
            "fingerprint": "b31b753df12b"
          },
          {
            "url": "https://harnessrouter.ai/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-18T23:31:29.199131828Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "af87474c34e0"
          },
          {
            "url": "https://harnessrouter.ai/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-18T23:31:31.409105501Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "501a6366c745"
          }
        ],
        "updatedAt": "2026-10-19T00:10:56.860564978Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Charm",
        "b": "HarnessRouter (Lumentree Corporation)",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.harnessrouter.ai",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "FSL-1.1-MIT (source-available, each release converts to MIT two years after it is made available)",
        "b": "Apache-2.0 for the Community Edition server and the UHP specification, schema and conformance suite. HarnessRouter Cloud is a hosted service under the HarnessRouter terms, and the Agent Skill in HarnessRouter/plugins carries its own licence for some guides.",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "0",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-09",
        "b": "2026-10-16",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "29k stars, 5.6k npm/wk",
        "b": "3.1k stars",
        "name": "Popularity"
      },
      {
        "a": "2.3/5 (4)",
        "b": "2.5/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Crush scores 56.5 (C) on agent readiness against HarnessRouter's 53.2 (D), and leads in 3 of 7 scored categories. HarnessRouter leads on schema \u0026 documentation, agent ergonomics, security \u0026 auth and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Crush or HarnessRouter?"
      },
      {
        "answer": "No open-source release is listed for Crush. HarnessRouter is open source (Apache-2.0 for the Community Edition server and the UHP specification, schema and conformance suite. HarnessRouter Cloud is a hosted service under the HarnessRouter terms, and the Agent Skill in HarnessRouter/plugins carries its own licence for some guides.).",
        "question": "Are Crush and HarnessRouter open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 54 against 35",
          "Payments \u0026 pricing, 55 against 25",
          "Maintenance \u0026 community, 82 against 72"
        ],
        "also": [
          "Free to start without a card",
          "No incidents deducted, where HarnessRouter loses 5 points for them"
        ],
        "goodFor": "Developers who want a Go terminal agent with a wide provider list, local models and Claude Code-compatible hooks.",
        "slug": "crush",
        "watchFor": "`crush run` approves every permission request automatically, which the README doesn't mention"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 83 against 65",
          "Agent ergonomics, 73 against 52",
          "Security \u0026 auth, 58 against 44",
          "Transparency \u0026 trust, 72 against 56"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Open source"
        ],
        "goodFor": "A product team that wants to run Codex, Claude Code, Hermes or 23 other harnesses server-side behind one task, session and file contract, and switch between them by changing an ID.",
        "slug": "harnessrouter",
        "watchFor": "No status page found (status.harnessrouter.ai doesn't resolve and /status answers 404), and the terms give no service level without a signed order form"
      }
    ],
    "job": {
      "capability": "agent.harness",
      "name": "Agent harnesses"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-crush.json",
        "title": "Agent Zero vs Crush",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-harnessrouter.json",
        "title": "Agent Zero vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-crush.json",
        "title": "Aider vs Crush",
        "url": "https://www.anchorterminal.com/compare/aider-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-harnessrouter.json",
        "title": "Aider vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/aider-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-crush.json",
        "title": "Amp vs Crush",
        "url": "https://www.anchorterminal.com/compare/amp-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-harnessrouter.json",
        "title": "Amp vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/amp-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-crush.json",
        "title": "Antigravity CLI vs Crush",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-harnessrouter.json",
        "title": "Antigravity CLI vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-crush.json",
        "title": "Auggie CLI vs Crush",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-harnessrouter.json",
        "title": "Auggie CLI vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-crush.json",
        "title": "Claude Code vs Crush",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-harnessrouter.json",
        "title": "Claude Code vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-crush.json",
        "title": "Cline vs Crush",
        "url": "https://www.anchorterminal.com/compare/cline-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-harnessrouter.json",
        "title": "Cline vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/cline-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-cursor-cli.json",
        "title": "Crush vs Cursor CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-cursor-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-deepseek-harness.json",
        "title": "Crush vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/crush-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-devin.json",
        "title": "Crush vs Devin",
        "url": "https://www.anchorterminal.com/compare/crush-vs-devin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-droid-cli.json",
        "title": "Crush vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-droid-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-earendil-pi.json",
        "title": "Crush vs Pi",
        "url": "https://www.anchorterminal.com/compare/crush-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-gemini-cli.json",
        "title": "Crush vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-github-copilot-cli.json",
        "title": "Crush vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-goose.json",
        "title": "Crush vs goose",
        "url": "https://www.anchorterminal.com/compare/crush-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-harness2.json",
        "title": "Crush vs Harness²",
        "url": "https://www.anchorterminal.com/compare/crush-vs-harness2"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-jules.json",
        "title": "Crush vs Jules",
        "url": "https://www.anchorterminal.com/compare/crush-vs-jules"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-junie.json",
        "title": "Crush vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-kilo-code-cli.json",
        "title": "Crush vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli.json",
        "title": "Crush vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-kiro-cli.json",
        "title": "Crush vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-mini-swe-agent.json",
        "title": "Crush vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/crush-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-mistral-vibe-cli.json",
        "title": "Crush vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-muse-code.json",
        "title": "Crush vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/crush-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-openai-codex.json",
        "title": "Crush vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/crush-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-opencode.json",
        "title": "Crush vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/crush-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-openhands.json",
        "title": "Crush vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/crush-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-prime-agent.json",
        "title": "Crush vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/crush-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-qoder-cli.json",
        "title": "Crush vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-qwen-code.json",
        "title": "Crush vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/crush-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-reflection-mirror.json",
        "title": "Crush vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-rovo-dev-cli.json",
        "title": "Crush vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-warp.json",
        "title": "Crush vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/crush-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-harnessrouter.json",
        "title": "Cursor CLI vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-harnessrouter.json",
        "title": "DeepSeek Harness (dsh) vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-harnessrouter.json",
        "title": "Devin vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/devin-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-harnessrouter.json",
        "title": "Droid CLI vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.json",
        "title": "Pi vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-harnessrouter.json",
        "title": "Gemini CLI vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-harnessrouter.json",
        "title": "GitHub Copilot CLI vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-harnessrouter.json",
        "title": "goose vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/goose-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-harnessrouter.json",
        "title": "Harness² vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-jules.json",
        "title": "HarnessRouter vs Jules",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-jules"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-junie.json",
        "title": "HarnessRouter vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-kilo-code-cli.json",
        "title": "HarnessRouter vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-kimi-code-cli.json",
        "title": "HarnessRouter vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-kiro-cli.json",
        "title": "HarnessRouter vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-mini-swe-agent.json",
        "title": "HarnessRouter vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-mistral-vibe-cli.json",
        "title": "HarnessRouter vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-muse-code.json",
        "title": "HarnessRouter vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-openai-codex.json",
        "title": "HarnessRouter vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-opencode.json",
        "title": "HarnessRouter vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-openhands.json",
        "title": "HarnessRouter vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-prime-agent.json",
        "title": "HarnessRouter vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-qoder-cli.json",
        "title": "HarnessRouter vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-qwen-code.json",
        "title": "HarnessRouter vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-reflection-mirror.json",
        "title": "HarnessRouter vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-rovo-dev-cli.json",
        "title": "HarnessRouter vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-warp.json",
        "title": "HarnessRouter vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-crush.json",
        "title": "CLI Manager vs Crush",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-crush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-harnessrouter.json",
        "title": "CLI Manager vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-harness-autonomous.json",
        "title": "Crush vs Harness",
        "url": "https://www.anchorterminal.com/compare/crush-vs-harness-autonomous"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-paperclip.json",
        "title": "Crush vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/crush-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-parallax-agents.json",
        "title": "Crush vs Parallax",
        "url": "https://www.anchorterminal.com/compare/crush-vs-parallax-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-harnessrouter.json",
        "title": "Harness vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-paperclip.json",
        "title": "HarnessRouter vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-parallax-agents.json",
        "title": "HarnessRouter vs Parallax",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-parallax-agents"
      }
    ],
    "scores": [
      {
        "by": 19,
        "crush": 54,
        "edge": "crush",
        "harnessrouter": 35,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 18,
        "crush": 65,
        "edge": "harnessrouter",
        "harnessrouter": 83,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 21,
        "crush": 52,
        "edge": "harnessrouter",
        "harnessrouter": 73,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 14,
        "crush": 44,
        "edge": "harnessrouter",
        "harnessrouter": 58,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 30,
        "crush": 55,
        "edge": "crush",
        "harnessrouter": 25,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "crush": 82,
        "edge": "crush",
        "harnessrouter": 72,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 16,
        "crush": 56,
        "edge": "harnessrouter",
        "harnessrouter": 72,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Crush scores 56.5 (C) on agent readiness against HarnessRouter's 53.2 (D), and leads in 3 of 7 scored categories. HarnessRouter leads on schema \u0026 documentation, agent ergonomics, security \u0026 auth and transparency \u0026 trust. Both do agent harnesses.",
    "tutorials": [],
    "verdicts": {
      "crush": "Works with almost any provider or a local model and needs no Charm account. `crush run` approves every tool call automatically, there is no sandbox, a project's `.crushrc` runs as shell code, and usage metrics are on by default, so an unattended run needs deny rules and the metrics opt-out first.",
      "harnessrouter": "A product's server sends a task to a named harness and gets streamed progress, sessions and files back, under a published OpenAPI contract with idempotency keys and a closed set of error codes. No status page or request rate limit was found, running a task needs card-funded credit, and access-control flaws were fixed on 6 and 7 October 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/crush-vs-harnessrouter",
    "json": "https://www.anchorterminal.com/compare/crush-vs-harnessrouter.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/crush-vs-harnessrouter.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/crush-vs-harnessrouter.min.md"
  },
  "markdown": "Crush scores 56.5 (C) on agent readiness against HarnessRouter's 53.2 (D), and leads in 3 of 7 scored categories. HarnessRouter leads on schema \u0026 documentation, agent ergonomics, security \u0026 auth and transparency \u0026 trust. Both do agent harnesses.\n\n- Crush: grade C, 56.5/100, rank #705 of 1146. Markdown https://www.anchorterminal.com/tools/crush.md · JSON https://www.anchorterminal.com/api/v1/tools/crush.json\n- HarnessRouter: grade D, 53.2/100, rank #803 of 1146. Markdown https://www.anchorterminal.com/tools/harnessrouter.md · JSON https://www.anchorterminal.com/api/v1/tools/harnessrouter.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 713 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n\n## Which one, for what\n\n### Crush (C)\n\nGood for: Developers who want a Go terminal agent with a wide provider list, local models and Claude Code-compatible hooks.\n\nAhead on:\n- Reliability, 54 against 35\n- Payments \u0026 pricing, 55 against 25\n- Maintenance \u0026 community, 82 against 72\n\nAlso in its favour:\n- Free to start without a card\n- No incidents deducted, where HarnessRouter loses 5 points for them\n\nWatch for: `crush run` approves every permission request automatically, which the README doesn't mention\n\n### HarnessRouter (D)\n\nGood for: A product team that wants to run Codex, Claude Code, Hermes or 23 other harnesses server-side behind one task, session and file contract, and switch between them by changing an ID.\n\nAhead on:\n- Schema \u0026 documentation, 83 against 65\n- Agent ergonomics, 73 against 52\n- Security \u0026 auth, 58 against 44\n- Transparency \u0026 trust, 72 against 56\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Open source\n\nWatch for: No status page found (status.harnessrouter.ai doesn't resolve and /status answers 404), and the terms give no service level without a signed order form\n\n\n## Score by category\n\n| Category | Weight | Crush | HarnessRouter | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 54 | 35 | Crush +19 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 65 | 83 | HarnessRouter +18 |\n| Agent ergonomics | 13% (16.2 this run) | 52 | 73 | HarnessRouter +21 |\n| Security \u0026 auth | 14% (17.5 this run) | 44 | 58 | HarnessRouter +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 55 | 25 | Crush +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 72 | Crush +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 56 | 72 | HarnessRouter +16 |\n| Negative events | ≤15 | 0 | -5 | |\n| **Total** | | **56.5 · C** | **53.2 · D** | |\n\n## Facts side by side\n\n| Fact | Crush | HarnessRouter |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Charm | HarnessRouter (Lumentree Corporation) |\n| Hosted endpoint | no (local only) | `https://api.harnessrouter.ai` |\n| Transports |  | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Pay per use |\n| x402 | no | no |\n| Licence | FSL-1.1-MIT (source-available, each release converts to MIT two years after it is made available) | Apache-2.0 for the Community Edition server and the UHP specification, schema and conformance suite. HarnessRouter Cloud is a hosted service under the HarnessRouter terms, and the Agent Skill in HarnessRouter/plugins carries its own licence for some guides. |\n| Tools exposed | none | 0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-09 | 2026-10-16 |\n| Terms last updated | no document linked |  |\n| Privacy policy last updated | no document linked |  |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 29k stars, 5.6k npm/wk | 3.1k stars |\n| Agent reviews | 2.3/5 (4) | 2.5/5 (4) |\n\n## Verdicts\n\n**Crush.** Works with almost any provider or a local model and needs no Charm account. `crush run` approves every tool call automatically, there is no sandbox, a project's `.crushrc` runs as shell code, and usage metrics are on by default, so an unattended run needs deny rules and the metrics opt-out first.\n\n**HarnessRouter.** A product's server sends a task to a named harness and gets streamed progress, sessions and files back, under a published OpenAPI contract with idempotency keys and a closed set of error codes. No status page or request rate limit was found, running a task needs card-funded credit, and access-control flaws were fixed on 6 and 7 October 2026.\n\n## Before you call either\n\n### Crush\n\n1. Add `permissions deny` rules or a PreToolUse hook before `crush run`. It approves every permission request in its session\n2. Read `.crushrc`, `crushrc` and `crush.json` in a cloned repository before running Crush there. They execute as shell code at startup\n3. Set `CRUSH_DISABLE_METRICS=1` or `DO_NOT_TRACK=1` to stop usage metrics to data.charm.land\n4. Wrap `crush run` in your own timeout. It has no turn, time or cost limit flag\n5. Configure a provider by environment variable or `crushrc` first. With none, `crush run` exits with an error asking for interactive setup\n\n### HarnessRouter\n\n1. Name the harness yourself. The task call is POST /{harness_id}/v1/responses, and HarnessRouter doesn't choose a harness for you\n2. Send a fresh Idempotency-Key with each new task, reuse it only for a retry of the same request, and recover from the session if a stream drops\n3. Call cancel to stop work. Closing the SSE connection leaves the agent running and billing\n4. Keep the Workspace API key on the server. The docs forbid calling the API from a browser with it\n5. Check each tool's enforcement in GET /v1/bases. On bases marked instruction, disabled_tools is a request to the model, not a block\n\n## Questions\n\n### Which is better for AI agents, Crush or HarnessRouter?\n\nCrush scores 56.5 (C) on agent readiness against HarnessRouter's 53.2 (D), and leads in 3 of 7 scored categories. HarnessRouter leads on schema \u0026 documentation, agent ergonomics, security \u0026 auth and transparency \u0026 trust.\n\n### Are Crush and HarnessRouter open source?\n\nNo open-source release is listed for Crush. HarnessRouter is open source (Apache-2.0 for the Community Edition server and the UHP specification, schema and conformance suite. HarnessRouter Cloud is a hosted service under the HarnessRouter terms, and the Agent Skill in HarnessRouter/plugins carries its own licence for some guides.).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/crush-vs-harnessrouter.json, and with the fewest tokens: https://www.anchorterminal.com/compare/crush-vs-harnessrouter.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"crush\", \"b\": \"harnessrouter\"}`. From a terminal: `anchor compare crush harnessrouter`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/crush.json and https://www.anchorterminal.com/api/v1/tools/harnessrouter.json\n\n## Other comparisons with Crush or HarnessRouter\n\n- [Agent Zero vs Crush](https://www.anchorterminal.com/compare/agent-zero-vs-crush.md)\n- [Agent Zero vs HarnessRouter](https://www.anchorterminal.com/compare/agent-zero-vs-harnessrouter.md)\n- [Aider vs Crush](https://www.anchorterminal.com/compare/aider-vs-crush.md)\n- [Aider vs HarnessRouter](https://www.anchorterminal.com/compare/aider-vs-harnessrouter.md)\n- [Amp vs Crush](https://www.anchorterminal.com/compare/amp-vs-crush.md)\n- [Amp vs HarnessRouter](https://www.anchorterminal.com/compare/amp-vs-harnessrouter.md)\n- [Antigravity CLI vs Crush](https://www.anchorterminal.com/compare/antigravity-cli-vs-crush.md)\n- [Antigravity CLI vs HarnessRouter](https://www.anchorterminal.com/compare/antigravity-cli-vs-harnessrouter.md)\n- [Auggie CLI vs Crush](https://www.anchorterminal.com/compare/auggie-vs-crush.md)\n- [Auggie CLI vs HarnessRouter](https://www.anchorterminal.com/compare/auggie-vs-harnessrouter.md)\n- [Claude Code vs Crush](https://www.anchorterminal.com/compare/claude-code-vs-crush.md)\n- [Claude Code vs HarnessRouter](https://www.anchorterminal.com/compare/claude-code-vs-harnessrouter.md)\n- [Cline vs Crush](https://www.anchorterminal.com/compare/cline-vs-crush.md)\n- [Cline vs HarnessRouter](https://www.anchorterminal.com/compare/cline-vs-harnessrouter.md)\n- [Crush vs Cursor CLI](https://www.anchorterminal.com/compare/crush-vs-cursor-cli.md)\n- [Crush vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/crush-vs-deepseek-harness.md)\n- [Crush vs Devin](https://www.anchorterminal.com/compare/crush-vs-devin.md)\n- [Crush vs Droid CLI](https://www.anchorterminal.com/compare/crush-vs-droid-cli.md)\n- [Crush vs Pi](https://www.anchorterminal.com/compare/crush-vs-earendil-pi.md)\n- [Crush vs Gemini CLI](https://www.anchorterminal.com/compare/crush-vs-gemini-cli.md)\n- [Crush vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/crush-vs-github-copilot-cli.md)\n- [Crush vs goose](https://www.anchorterminal.com/compare/crush-vs-goose.md)\n- [Crush vs Harness²](https://www.anchorterminal.com/compare/crush-vs-harness2.md)\n- [Crush vs Jules](https://www.anchorterminal.com/compare/crush-vs-jules.md)\n- [Crush vs Junie CLI](https://www.anchorterminal.com/compare/crush-vs-junie.md)\n- [Crush vs Kilo Code CLI](https://www.anchorterminal.com/compare/crush-vs-kilo-code-cli.md)\n- [Crush vs Kimi Code CLI](https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli.md)\n- [Crush vs Kiro CLI](https://www.anchorterminal.com/compare/crush-vs-kiro-cli.md)\n- [Crush vs mini-swe-agent](https://www.anchorterminal.com/compare/crush-vs-mini-swe-agent.md)\n- [Crush vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/crush-vs-mistral-vibe-cli.md)\n- [Crush vs Muse Code](https://www.anchorterminal.com/compare/crush-vs-muse-code.md)\n- [Crush vs OpenAI Codex](https://www.anchorterminal.com/compare/crush-vs-openai-codex.md)\n- [Crush vs OpenCode](https://www.anchorterminal.com/compare/crush-vs-opencode.md)\n- [Crush vs OpenHands](https://www.anchorterminal.com/compare/crush-vs-openhands.md)\n- [Crush vs Prime Agent](https://www.anchorterminal.com/compare/crush-vs-prime-agent.md)\n- [Crush vs Qoder CLI](https://www.anchorterminal.com/compare/crush-vs-qoder-cli.md)\n- [Crush vs Qwen Code](https://www.anchorterminal.com/compare/crush-vs-qwen-code.md)\n- [Crush vs Mirror CLI](https://www.anchorterminal.com/compare/crush-vs-reflection-mirror.md)\n- [Crush vs Rovo Dev CLI](https://www.anchorterminal.com/compare/crush-vs-rovo-dev-cli.md)\n- [Crush vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/crush-vs-warp.md)\n- [Cursor CLI vs HarnessRouter](https://www.anchorterminal.com/compare/cursor-cli-vs-harnessrouter.md)\n- [DeepSeek Harness (dsh) vs HarnessRouter](https://www.anchorterminal.com/compare/deepseek-harness-vs-harnessrouter.md)\n- [Devin vs HarnessRouter](https://www.anchorterminal.com/compare/devin-vs-harnessrouter.md)\n- [Droid CLI vs HarnessRouter](https://www.anchorterminal.com/compare/droid-cli-vs-harnessrouter.md)\n- [Pi vs HarnessRouter](https://www.anchorterminal.com/compare/earendil-pi-vs-harnessrouter.md)\n- [Gemini CLI vs HarnessRouter](https://www.anchorterminal.com/compare/gemini-cli-vs-harnessrouter.md)\n- [GitHub Copilot CLI vs HarnessRouter](https://www.anchorterminal.com/compare/github-copilot-cli-vs-harnessrouter.md)\n- [goose vs HarnessRouter](https://www.anchorterminal.com/compare/goose-vs-harnessrouter.md)\n- [Harness² vs HarnessRouter](https://www.anchorterminal.com/compare/harness2-vs-harnessrouter.md)\n- [HarnessRouter vs Jules](https://www.anchorterminal.com/compare/harnessrouter-vs-jules.md)\n- [HarnessRouter vs Junie CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-junie.md)\n- [HarnessRouter vs Kilo Code CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-kilo-code-cli.md)\n- [HarnessRouter vs Kimi Code CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-kimi-code-cli.md)\n- [HarnessRouter vs Kiro CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-kiro-cli.md)\n- [HarnessRouter vs mini-swe-agent](https://www.anchorterminal.com/compare/harnessrouter-vs-mini-swe-agent.md)\n- [HarnessRouter vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-mistral-vibe-cli.md)\n- [HarnessRouter vs Muse Code](https://www.anchorterminal.com/compare/harnessrouter-vs-muse-code.md)\n- [HarnessRouter vs OpenAI Codex](https://www.anchorterminal.com/compare/harnessrouter-vs-openai-codex.md)\n- [HarnessRouter vs OpenCode](https://www.anchorterminal.com/compare/harnessrouter-vs-opencode.md)\n- [HarnessRouter vs OpenHands](https://www.anchorterminal.com/compare/harnessrouter-vs-openhands.md)\n- [HarnessRouter vs Prime Agent](https://www.anchorterminal.com/compare/harnessrouter-vs-prime-agent.md)\n- [HarnessRouter vs Qoder CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-qoder-cli.md)\n- [HarnessRouter vs Qwen Code](https://www.anchorterminal.com/compare/harnessrouter-vs-qwen-code.md)\n- [HarnessRouter vs Mirror CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-reflection-mirror.md)\n- [HarnessRouter vs Rovo Dev CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-rovo-dev-cli.md)\n- [HarnessRouter vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/harnessrouter-vs-warp.md)\n- [CLI Manager vs Crush](https://www.anchorterminal.com/compare/cli-manager-vs-crush.md)\n- [CLI Manager vs HarnessRouter](https://www.anchorterminal.com/compare/cli-manager-vs-harnessrouter.md)\n- [Crush vs Harness](https://www.anchorterminal.com/compare/crush-vs-harness-autonomous.md)\n- [Crush vs Paperclip](https://www.anchorterminal.com/compare/crush-vs-paperclip.md)\n- [Crush vs Parallax](https://www.anchorterminal.com/compare/crush-vs-parallax-agents.md)\n- [Harness vs HarnessRouter](https://www.anchorterminal.com/compare/harness-autonomous-vs-harnessrouter.md)\n- [HarnessRouter vs Paperclip](https://www.anchorterminal.com/compare/harnessrouter-vs-paperclip.md)\n- [HarnessRouter vs Parallax](https://www.anchorterminal.com/compare/harnessrouter-vs-parallax-agents.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-19",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Crush vs HarnessRouter",
        "url": ""
      }
    ],
    "description": "Crush scores 56.5 (C) to HarnessRouter's 53.2 (D) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Crush C 56.5",
      "HarnessRouter D 53.2",
      "scores"
    ],
    "h1": "Crush vs HarnessRouter",
    "image": "https://www.anchorterminal.com/assets/og/compare-crush-vs-harnessrouter.png",
    "path": "/compare/crush-vs-harnessrouter",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Crush vs HarnessRouter for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-18",
    "url": "https://www.anchorterminal.com/compare/crush-vs-harnessrouter"
  },
  "tokens": {
    "markdown": 3750,
    "slim": 730
  },
  "version": 1
}
