{
  "data": {
    "a": {
      "slug": "droid-cli",
      "name": "Droid CLI",
      "vendor": "Factory",
      "vendorUrl": "https://factory.com",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Droid CLI is Factory's closed-source coding agent for the terminal. It runs interactively or headless through `droid exec`, connects MCP servers, runs multi-agent Missions, and can be driven by TypeScript and Python SDKs. A paid Factory plan is required.",
      "url": "https://www.anchorterminal.com/tools/droid-cli",
      "markdownUrl": "https://www.anchorterminal.com/tools/droid-cli.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/droid-cli.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/droid-cli.json",
      "repo": "https://github.com/Factory-AI/factory",
      "license": "Proprietary, under Factory's Terms and Conditions. The `droid` npm package is marked `UNLICENSED` and the public repository holds documentation only. The Python SDK is Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "droid"
        },
        {
          "registry": "npm",
          "name": "@factory/droid-sdk"
        },
        {
          "registry": "pypi",
          "name": "droid-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "A Factory account is required. The interactive CLI signs in through a browser with OAuth, and the docs say stored tokens rotate every 30 days. Headless runs set `FACTORY_API_KEY` to a key starting `fk-` created on the API keys page in Factory settings. Organisations can use service accounts whose keys can be rotated and revoked through an API.",
      "pricing": "paid",
      "pricingNotes": "Pro is $20 a month, Plus $100 and Max $200, each with the CLI, the Factory App and the SDK. Teams is $60 a month per team plus $40 a seat, and Business and Enterprise are by quote. Usage is capped by rolling 5-hour, 7-day and 30-day rate limits stated without numbers. Extra usage is prepaid credit from $10. No free tier or trial was found (checked 2026-10-09).",
      "priceSummary": "$20 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the pricing pages or the terms (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 49,
        "npmWeekly": 7766,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.factory.com/droid-cli/overview",
      "llmsTxt": "https://docs.factory.com/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "harness",
        "coding-agent",
        "cli",
        "closed-source",
        "mcp",
        "acp",
        "llms-txt",
        "sdk",
        "sandbox",
        "telemetry-default-on"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.1,
        "grade": "C",
        "agentReady": false,
        "rank": 614,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 16,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 79,
          "payments": 10,
          "reliability": 49,
          "schema": 79,
          "security": 63,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "`droid exec` is read-only unless `--auto` raises the autonomy level, with command rules, an optional kernel-enforced sandbox, JSON output and documented exit codes. No free tier, status page or security.txt was found, the source is closed, and usage metrics go to Factory by default.",
        "bestFor": "Teams that want a terminal coding agent with tiered autonomy, command rules and an optional sandbox, and that will pay for a Factory plan.",
        "strengths": [
          "`droid exec` is read-only by default. `--auto low`, `medium` or `high` opens edits and commands by risk tier, and a run that exceeds its level exits non-zero",
          "Optional OS sandbox using Seatbelt on macOS and bubblewrap with seccomp on Linux, with writes limited to the working directory and network limited to allowed domains",
          "Text, JSON and JSON-RPC output, exit codes 0, 1 and 2, session resume and fork, and tool lists that can be restricted per run",
          "llms.txt with a Markdown copy of every docs page, and a dated changelog with 62 entries between 11 July and 8 October 2026",
          "The install script verifies a SHA-256 checksum, and the `droid` npm package is published from GitHub Actions through a trusted publisher"
        ],
        "weaknesses": [
          "No free tier or trial was found. Plans start at $20 a month and included usage is stated only as rolling rate limits without numbers",
          "The sandbox is off until `sandbox.enabled` is set, and `--skip-permissions-unsafe` skips every permission prompt",
          "Usage metrics go to Factory's collector by default. The pages read give no opt-out outside an airgapped deployment",
          "Closed source on a 0.x version line with near-daily releases. The public tracker had 33 open issues on 9 October 2026, most with no reply",
          "No status page and no security.txt were found. The trust centre is drawn by script and was not read",
          "The individual terms forbid using the service for benchmarking or competitive analysis, which matters before any probe is run"
        ],
        "agentNotes": [
          "Set `FACTORY_API_KEY` (starts `fk-`) from the API keys page in Factory settings for headless runs. Interactive use signs in through a browser",
          "Start with `droid exec` and no flags for analysis. Add `--auto low` for edits and `--auto medium` for installs, tests and local commits",
          "Use `--output-format json` and read `is_error`, `num_turns` and `session_id`. Treat a non-zero exit code as failure",
          "Set `sandbox.enabled` to true before running on untrusted code. In `droid exec` a sandbox violation is denied without a prompt",
          "Pin the version in CI with `npm install -g droid@\u003cversion\u003e`, or set `FACTORY_DROID_AUTO_UPDATE_ENABLED=false` on standalone installs, which update themselves"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.1
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 79,
          "payments": 10,
          "reliability": 49,
          "schema": 79,
          "security": 63,
          "transparency": 55
        },
        "provenanceScore": 72
      },
      "connect": {
        "install": "curl -fsSL https://app.factory.ai/cli | sh   # or: npm install -g droid",
        "headless": {
          "command": "droid exec --auto low --output-format json \"$TASK\"",
          "env": {
            "FACTORY_API_KEY": "fk-..."
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/droid-cli"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 20,
          "note": "rolling rate limits, numbers not published"
        },
        {
          "item": "Plus plan",
          "unit": "month",
          "usd": 100,
          "note": "about 5 times Pro usage"
        },
        {
          "item": "Max plan",
          "unit": "month",
          "usd": 200,
          "note": "about 10 times Pro usage"
        },
        {
          "item": "Teams seat",
          "unit": "seat-month",
          "usd": 40,
          "note": "plus $60 a month per team, up to 10 seats"
        }
      ],
      "provenance": {
        "legalEntity": "The San Francisco AI Factory, Inc.",
        "domain": "factory.com",
        "domainRegistered": "1999-03-09",
        "endpointOnVendorDomain": null,
        "terms": "https://factory.com/legal/terms-individual",
        "privacy": "https://factory.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://docs.factory.com/changelog/release-notes",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The Terms and Conditions for Individual Plans (last updated 14 July 2026) name The San Francisco AI Factory, Inc., a Delaware corporation in San Francisco. The privacy policy (last updated 20 August 2026) names the same company.",
          "RDAP (Verisign) gives factory.com a registration date of 1999-03-09, long before the company.",
          "The CLI installs from app.factory.ai and downloads.factory.ai and signs in to app.factory.ai, a second domain of the vendor's.",
          "factory.com/.well-known/security.txt answered 404 on 9 October 2026.",
          "No status page is linked from the home page, the docs support page or the other pages read. factory.com/sla states a 99 per cent availability target.",
          "The terms linked are those for individual plans. Organisation plans are sold under separate orders, which we did not read."
        ],
        "score": 72
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/droid-cli.json",
      "live": {
        "slug": "droid-cli",
        "versions": [
          {
            "registry": "npm",
            "name": "@factory/droid-sdk",
            "version": "0.9.1",
            "seenAt": "2026-10-17T01:45:35.949401458Z"
          },
          {
            "registry": "npm",
            "name": "droid",
            "version": "0.244.0",
            "seenAt": "2026-10-17T01:45:35.173519484Z"
          },
          {
            "registry": "pypi",
            "name": "droid-sdk",
            "version": "0.5.0",
            "released": "2026-09-24",
            "seenAt": "2026-10-17T01:45:37.379580522Z"
          }
        ],
        "githubStars": 56,
        "npmWeekly": 6724,
        "pypiWeekly": 13333,
        "securityTxt": {
          "url": "https://factory.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-17T15:51:29.868458137Z"
        },
        "llmsTxt": {
          "url": "https://docs.factory.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-17T14:22:00.568892868Z"
        },
        "domain": {
          "domain": "factory.com",
          "registered": "1999-03-09",
          "source": "https://rdap.verisign.com/com/v1/domain/factory.com",
          "checkedAt": "2026-10-11T13:18:33.575055534Z"
        },
        "pages": [
          {
            "url": "https://docs.factory.com/changelog/release-notes",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-17T23:01:01.892699588Z",
            "changedAt": "2026-10-17T22:49:52.812496435Z",
            "fingerprint": "cad5353e1589"
          },
          {
            "url": "https://factory.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-17T23:03:07.625160041Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5ef46e9f3c4f"
          },
          {
            "url": "https://factory.com/legal/terms-individual",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-17T23:03:05.415949639Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ebfbb9d9f0ab"
          }
        ],
        "updatedAt": "2026-10-17T23:03:07.625160041Z"
      }
    },
    "answer": "Droid CLI scores 59.1 (C) on agent readiness against HarnessRouter's 53.2 (D), and leads in 3 of 7 scored categories. HarnessRouter leads on payments \u0026 pricing 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": 796,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 24,
        "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-18T00:14:42.280344324Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 265,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 275,
          "p95ms24h": 359,
          "samples24h": 24,
          "samples30d": 24,
          "days": [
            {
              "date": "2026-10-17",
              "probes": 21,
              "ok": 21
            },
            {
              "date": "2026-10-18",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "pages": [
          {
            "url": "https://unifiedharnessprotocol.org/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-17T23:11:55.703224248Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "783aeda2cd75"
          },
          {
            "url": "https://harnessrouter.ai/pricing.md",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-17T23:03:57.613043138Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fa9a36e3c1ac"
          },
          {
            "url": "https://harnessrouter.ai/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-17T23:03:53.558727976Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "af87474c34e0"
          },
          {
            "url": "https://harnessrouter.ai/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-17T23:03:55.591250792Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "501a6366c745"
          }
        ],
        "updatedAt": "2026-10-18T00:14:42.280344324Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Factory",
        "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": "Paid",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary, under Factory's Terms and Conditions. The `droid` npm package is marked `UNLICENSED` and the public repository holds documentation only. The Python SDK is Apache-2.0",
        "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": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-08",
        "b": "2026-10-16",
        "name": "Last release"
      },
      {
        "a": "2026-07-14",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-20",
        "b": "",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "49 stars, 7.8k npm/wk",
        "b": "3.1k stars",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2.5/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Droid CLI scores 59.1 (C) on agent readiness against HarnessRouter's 53.2 (D), and leads in 3 of 7 scored categories. HarnessRouter leads on payments \u0026 pricing and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Droid CLI or HarnessRouter?"
      },
      {
        "answer": "No open-source release is listed for Droid CLI. 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 Droid CLI and HarnessRouter open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 49 against 35",
          "Security \u0026 auth, 63 against 58",
          "Maintenance \u0026 community, 79 against 72"
        ],
        "also": [
          "No incidents deducted, where HarnessRouter loses 5 points for them"
        ],
        "goodFor": "Teams that want a terminal coding agent with tiered autonomy, command rules and an optional sandbox, and that will pay for a Factory plan.",
        "slug": "droid-cli",
        "watchFor": "No free tier or trial was found. Plans start at $20 a month and included usage is stated only as rolling rate limits without numbers"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 25 against 10",
          "Transparency \u0026 trust, 72 against 64"
        ],
        "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-droid-cli.json",
        "title": "Agent Zero vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-droid-cli"
      },
      {
        "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-droid-cli.json",
        "title": "Aider vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/aider-vs-droid-cli"
      },
      {
        "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-droid-cli.json",
        "title": "Amp vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/amp-vs-droid-cli"
      },
      {
        "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-droid-cli.json",
        "title": "Antigravity CLI vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-droid-cli"
      },
      {
        "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/claude-code-vs-droid-cli.json",
        "title": "Claude Code vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-droid-cli"
      },
      {
        "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-droid-cli.json",
        "title": "Cline vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/cline-vs-droid-cli"
      },
      {
        "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/cursor-cli-vs-droid-cli.json",
        "title": "Cursor CLI vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-droid-cli"
      },
      {
        "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/devin-vs-droid-cli.json",
        "title": "Devin vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/devin-vs-droid-cli"
      },
      {
        "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-earendil-pi.json",
        "title": "Droid CLI vs Pi",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-gemini-cli.json",
        "title": "Droid CLI vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-github-copilot-cli.json",
        "title": "Droid CLI vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-goose.json",
        "title": "Droid CLI vs goose",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-kilo-code-cli.json",
        "title": "Droid CLI vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-kiro-cli.json",
        "title": "Droid CLI vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-muse-code.json",
        "title": "Droid CLI vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-openai-codex.json",
        "title": "Droid CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-opencode.json",
        "title": "Droid CLI vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-openhands.json",
        "title": "Droid CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-prime-agent.json",
        "title": "Droid CLI vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-qwen-code.json",
        "title": "Droid CLI vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-reflection-mirror.json",
        "title": "Droid CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-reflection-mirror"
      },
      {
        "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/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-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-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-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/cli-manager-vs-droid-cli.json",
        "title": "CLI Manager vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-droid-cli"
      },
      {
        "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/droid-cli-vs-harness-autonomous.json",
        "title": "Droid CLI vs Harness",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-harness-autonomous"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-paperclip.json",
        "title": "Droid CLI vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-parallax-agents.json",
        "title": "Droid CLI vs Parallax",
        "url": "https://www.anchorterminal.com/compare/droid-cli-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": 14,
        "droid-cli": 49,
        "edge": "droid-cli",
        "harnessrouter": 35,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "droid-cli": 79,
        "edge": "harnessrouter",
        "harnessrouter": 83,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 1,
        "droid-cli": 72,
        "edge": "harnessrouter",
        "harnessrouter": 73,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 5,
        "droid-cli": 63,
        "edge": "droid-cli",
        "harnessrouter": 58,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 15,
        "droid-cli": 10,
        "edge": "harnessrouter",
        "harnessrouter": 25,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "droid-cli": 79,
        "edge": "droid-cli",
        "harnessrouter": 72,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 8,
        "droid-cli": 64,
        "edge": "harnessrouter",
        "harnessrouter": 72,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Droid CLI scores 59.1 (C) on agent readiness against HarnessRouter's 53.2 (D), and leads in 3 of 7 scored categories. HarnessRouter leads on payments \u0026 pricing and transparency \u0026 trust. Both do agent harnesses.",
    "tutorials": [],
    "verdicts": {
      "droid-cli": "`droid exec` is read-only unless `--auto` raises the autonomy level, with command rules, an optional kernel-enforced sandbox, JSON output and documented exit codes. No free tier, status page or security.txt was found, the source is closed, and usage metrics go to Factory by default.",
      "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/droid-cli-vs-harnessrouter",
    "json": "https://www.anchorterminal.com/compare/droid-cli-vs-harnessrouter.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/droid-cli-vs-harnessrouter.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/droid-cli-vs-harnessrouter.min.md"
  },
  "markdown": "Droid CLI scores 59.1 (C) on agent readiness against HarnessRouter's 53.2 (D), and leads in 3 of 7 scored categories. HarnessRouter leads on payments \u0026 pricing and transparency \u0026 trust. Both do agent harnesses.\n\n- Droid CLI: grade C, 59.1/100, rank #614 of 1133. Markdown https://www.anchorterminal.com/tools/droid-cli.md · JSON https://www.anchorterminal.com/api/v1/tools/droid-cli.json\n- HarnessRouter: grade D, 53.2/100, rank #796 of 1133. 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 331 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n\n## Which one, for what\n\n### Droid CLI (C)\n\nGood for: Teams that want a terminal coding agent with tiered autonomy, command rules and an optional sandbox, and that will pay for a Factory plan.\n\nAhead on:\n- Reliability, 49 against 35\n- Security \u0026 auth, 63 against 58\n- Maintenance \u0026 community, 79 against 72\n\nAlso in its favour:\n- No incidents deducted, where HarnessRouter loses 5 points for them\n\nWatch for: No free tier or trial was found. Plans start at $20 a month and included usage is stated only as rolling rate limits without numbers\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- Payments \u0026 pricing, 25 against 10\n- Transparency \u0026 trust, 72 against 64\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 | Droid CLI | HarnessRouter | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 49 | 35 | Droid CLI +14 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 83 | HarnessRouter +4 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 73 | HarnessRouter +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 63 | 58 | Droid CLI +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 25 | HarnessRouter +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 79 | 72 | Droid CLI +7 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 72 | HarnessRouter +8 |\n| Negative events | ≤15 | 0 | -5 | |\n| **Total** | | **59.1 · C** | **53.2 · D** | |\n\n## Facts side by side\n\n| Fact | Droid CLI | HarnessRouter |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Factory | 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 | Paid | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary, under Factory's Terms and Conditions. The `droid` npm package is marked `UNLICENSED` and the public repository holds documentation only. The Python SDK is Apache-2.0 | 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 | yes | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-08 | 2026-10-16 |\n| Terms last updated | 2026-07-14 |  |\n| Privacy policy last updated | 2026-08-20 |  |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | yes |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | yes |  |\n| Popularity | 49 stars, 7.8k npm/wk | 3.1k stars |\n| Agent reviews | none | 2.5/5 (4) |\n\n## Verdicts\n\n**Droid CLI.** `droid exec` is read-only unless `--auto` raises the autonomy level, with command rules, an optional kernel-enforced sandbox, JSON output and documented exit codes. No free tier, status page or security.txt was found, the source is closed, and usage metrics go to Factory by default.\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### Droid CLI\n\n1. Set `FACTORY_API_KEY` (starts `fk-`) from the API keys page in Factory settings for headless runs. Interactive use signs in through a browser\n2. Start with `droid exec` and no flags for analysis. Add `--auto low` for edits and `--auto medium` for installs, tests and local commits\n3. Use `--output-format json` and read `is_error`, `num_turns` and `session_id`. Treat a non-zero exit code as failure\n4. Set `sandbox.enabled` to true before running on untrusted code. In `droid exec` a sandbox violation is denied without a prompt\n5. Pin the version in CI with `npm install -g droid@\u003cversion\u003e`, or set `FACTORY_DROID_AUTO_UPDATE_ENABLED=false` on standalone installs, which update themselves\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, Droid CLI or HarnessRouter?\n\nDroid CLI scores 59.1 (C) on agent readiness against HarnessRouter's 53.2 (D), and leads in 3 of 7 scored categories. HarnessRouter leads on payments \u0026 pricing and transparency \u0026 trust.\n\n### Are Droid CLI and HarnessRouter open source?\n\nNo open-source release is listed for Droid CLI. 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/droid-cli-vs-harnessrouter.json, and with the fewest tokens: https://www.anchorterminal.com/compare/droid-cli-vs-harnessrouter.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"droid-cli\", \"b\": \"harnessrouter\"}`. From a terminal: `anchor compare droid-cli harnessrouter`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/droid-cli.json and https://www.anchorterminal.com/api/v1/tools/harnessrouter.json\n\n## Other comparisons with Droid CLI or HarnessRouter\n\n- [Agent Zero vs Droid CLI](https://www.anchorterminal.com/compare/agent-zero-vs-droid-cli.md)\n- [Agent Zero vs HarnessRouter](https://www.anchorterminal.com/compare/agent-zero-vs-harnessrouter.md)\n- [Aider vs Droid CLI](https://www.anchorterminal.com/compare/aider-vs-droid-cli.md)\n- [Aider vs HarnessRouter](https://www.anchorterminal.com/compare/aider-vs-harnessrouter.md)\n- [Amp vs Droid CLI](https://www.anchorterminal.com/compare/amp-vs-droid-cli.md)\n- [Amp vs HarnessRouter](https://www.anchorterminal.com/compare/amp-vs-harnessrouter.md)\n- [Antigravity CLI vs Droid CLI](https://www.anchorterminal.com/compare/antigravity-cli-vs-droid-cli.md)\n- [Antigravity CLI vs HarnessRouter](https://www.anchorterminal.com/compare/antigravity-cli-vs-harnessrouter.md)\n- [Claude Code vs Droid CLI](https://www.anchorterminal.com/compare/claude-code-vs-droid-cli.md)\n- [Claude Code vs HarnessRouter](https://www.anchorterminal.com/compare/claude-code-vs-harnessrouter.md)\n- [Cline vs Droid CLI](https://www.anchorterminal.com/compare/cline-vs-droid-cli.md)\n- [Cline vs HarnessRouter](https://www.anchorterminal.com/compare/cline-vs-harnessrouter.md)\n- [Cursor CLI vs Droid CLI](https://www.anchorterminal.com/compare/cursor-cli-vs-droid-cli.md)\n- [Cursor CLI vs HarnessRouter](https://www.anchorterminal.com/compare/cursor-cli-vs-harnessrouter.md)\n- [Devin vs Droid CLI](https://www.anchorterminal.com/compare/devin-vs-droid-cli.md)\n- [Devin vs HarnessRouter](https://www.anchorterminal.com/compare/devin-vs-harnessrouter.md)\n- [Droid CLI vs Pi](https://www.anchorterminal.com/compare/droid-cli-vs-earendil-pi.md)\n- [Droid CLI vs Gemini CLI](https://www.anchorterminal.com/compare/droid-cli-vs-gemini-cli.md)\n- [Droid CLI vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/droid-cli-vs-github-copilot-cli.md)\n- [Droid CLI vs goose](https://www.anchorterminal.com/compare/droid-cli-vs-goose.md)\n- [Droid CLI vs Kilo Code CLI](https://www.anchorterminal.com/compare/droid-cli-vs-kilo-code-cli.md)\n- [Droid CLI vs Kiro CLI](https://www.anchorterminal.com/compare/droid-cli-vs-kiro-cli.md)\n- [Droid CLI vs Muse Code](https://www.anchorterminal.com/compare/droid-cli-vs-muse-code.md)\n- [Droid CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/droid-cli-vs-openai-codex.md)\n- [Droid CLI vs OpenCode](https://www.anchorterminal.com/compare/droid-cli-vs-opencode.md)\n- [Droid CLI vs OpenHands](https://www.anchorterminal.com/compare/droid-cli-vs-openhands.md)\n- [Droid CLI vs Prime Agent](https://www.anchorterminal.com/compare/droid-cli-vs-prime-agent.md)\n- [Droid CLI vs Qwen Code](https://www.anchorterminal.com/compare/droid-cli-vs-qwen-code.md)\n- [Droid CLI vs Mirror CLI](https://www.anchorterminal.com/compare/droid-cli-vs-reflection-mirror.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- [HarnessRouter vs Kilo Code CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-kilo-code-cli.md)\n- [HarnessRouter vs Kiro CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-kiro-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 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- [CLI Manager vs Droid CLI](https://www.anchorterminal.com/compare/cli-manager-vs-droid-cli.md)\n- [CLI Manager vs HarnessRouter](https://www.anchorterminal.com/compare/cli-manager-vs-harnessrouter.md)\n- [Droid CLI vs Harness](https://www.anchorterminal.com/compare/droid-cli-vs-harness-autonomous.md)\n- [Droid CLI vs Paperclip](https://www.anchorterminal.com/compare/droid-cli-vs-paperclip.md)\n- [Droid CLI vs Parallax](https://www.anchorterminal.com/compare/droid-cli-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-18",
    "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": "Droid CLI vs HarnessRouter",
        "url": ""
      }
    ],
    "description": "Droid CLI scores 59.1 (C) to HarnessRouter's 53.2 (D) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Droid CLI C 59.1",
      "HarnessRouter D 53.2",
      "scores"
    ],
    "h1": "Droid CLI vs HarnessRouter",
    "image": "https://www.anchorterminal.com/assets/og/compare-droid-cli-vs-harnessrouter.png",
    "path": "/compare/droid-cli-vs-harnessrouter",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Droid CLI vs HarnessRouter for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-17",
    "url": "https://www.anchorterminal.com/compare/droid-cli-vs-harnessrouter"
  },
  "tokens": {
    "markdown": 3250,
    "slim": 830
  },
  "version": 1
}
