{
  "data": {
    "a": {
      "slug": "openhands",
      "name": "OpenHands",
      "vendor": "All Hands AI",
      "vendorUrl": "https://openhands.dev",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Open-source coding agent with a self-hosted web interface, local and remote execution, and scheduled or webhook-driven automation.",
      "url": "https://www.anchorterminal.com/tools/openhands",
      "markdownUrl": "https://www.anchorterminal.com/tools/openhands.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/openhands.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/openhands.json",
      "repo": "https://github.com/OpenHands/OpenHands",
      "license": "MIT (Agent Canvas, SDK, tools and Agent Server). OpenHands Cloud is a hosted service",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@openhands/agent-canvas"
        },
        {
          "registry": "pypi",
          "name": "openhands-sdk"
        },
        {
          "registry": "pypi",
          "name": "openhands-agent-server"
        },
        {
          "registry": "oci",
          "name": "ghcr.io/openhands/agent-canvas"
        }
      ],
      "auth": "mixed",
      "authNotes": "Local installs bind to 127.0.0.1 and inject a session key into the page. Public mode (`--public`) needs `LOCAL_BACKEND_API_KEY`, sent as `X-Session-API-Key` on every API call. Model credentials are your own provider keys or an OpenHands LLM key, and OpenHands Cloud has its own sign-in and API keys.",
      "pricing": "freemium",
      "pricingNotes": "Agent Canvas, the SDK and the Agent Server are free and MIT. OpenHands Cloud has a free Individual plan of 10 conversations a day with your own model key or the OpenHands LLM provider, which the docs say bills model calls at provider rates with no markup. Enterprise (SaaS, or self-hosted in your VPC) is priced by sales.",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the pricing page or the source (checked 2026-10-01).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 89800,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-01"
      },
      "docsUrl": "https://docs.openhands.dev",
      "llmsTxt": "https://docs.openhands.dev/llms.txt",
      "openapi": "https://raw.githubusercontent.com/OpenHands/docs/main/openapi/agent-sdk.json",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "hosted",
        "freemium",
        "python",
        "typescript",
        "docker",
        "openapi",
        "llms-txt",
        "telemetry-default-on",
        "beta"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.8,
        "grade": "BB",
        "agentReady": true,
        "rank": 153,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 85,
          "payments": 60,
          "reliability": 83,
          "schema": 87,
          "security": 66,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -5,
        "negativeNotes": [
          "Current behaviour, checked 2026-10-02. Agent Canvas sends a `canvas_install` event with platform, user agent, referrer and origin to PostHog through OpenHands' proxy at z.openhands.dev on first use, before the consent prompt, opting the client in for that one event. The source comment says the proxy is there to get past ad blockers, the consent prompt's box is ticked by default, and no user-facing doc mentions the early event. Undisclosed telemetry, -3. https://github.com/OpenHands/OpenHands/blob/main/src/services/telemetry.ts",
          "2026-03-23. GHSA-7h8w-hj9j-8rjw (CVE-2026-33718, 7.6 in the advisory, 9.9 at NVD), command injection through the `path` parameter of the git diff endpoint let an authenticated user run commands in the agent sandbox. Fixed in 1.5.0 and published, a little over six months old, -1. https://github.com/OpenHands/OpenHands/security/advisories/GHSA-7h8w-hj9j-8rjw",
          "2026-08-06. CVE-2026-19022 (6.3), command injection in `initialize_repo` in the pull request resolver of OpenHands 0.62.0 and earlier, the V0 line the V1 rewrite replaced. No GitHub advisory found, -1. https://nvd.nist.gov/vuln/detail/CVE-2026-19022"
        ],
        "verdict": "A Docker container per conversation with `OH_CONVERSATION_RUNTIME=docker`, each with its own Agent Server. Confirmation mode is off by default in Agent Canvas, and the npm install gives the agent the host's whole filesystem.",
        "bestFor": "Teams that want to self-host a coding agent with a web UI, per-conversation Docker sandboxes and scheduled or webhook automations, or embed the agent through a Python SDK and REST API.",
        "strengths": [
          "A Docker container per conversation with `OH_CONVERSATION_RUNTIME=docker`, each with its own Agent Server",
          "Typed Python SDK and an Agent Server REST API with an OpenAPI 3.1 spec, plus a TypeScript client",
          "Confirmation policies (always, never, at or above a risk level) with LLM, Invariant and GraySwan risk analysers",
          "Any model through LiteLLM, local ones included, and MCP over stdio, SSE and streamable HTTP with OAuth",
          "21 Agent Canvas releases between 24 July and 25 September 2026, with CI passing on main"
        ],
        "weaknesses": [
          "Confirmation mode is off by default in Agent Canvas, and the npm install gives the agent the host's whole filesystem",
          "One anonymous install event goes to PostHog before the consent prompt, whose opt-in box is pre-ticked",
          "The terminal CLI has been unmaintained since 11 August 2026 and the Docker-based local GUI is deprecated, yet both fill much of the docs",
          "Agent Canvas carries a beta badge, and its CHANGELOG.md stops at 1.0.0-alpha.2",
          "The privacy policy (3 September 2025) allows training on Cloud content and gives no retention period"
        ],
        "agentNotes": [
          "Set `AGENT_CANVAS_DISABLE_TELEMETRY=1` and `DO_NOT_TRACK=1` before the first start",
          "Start Canvas with `OH_CONVERSATION_RUNTIME=docker` or use the Docker image. The npm install runs the agent on the host",
          "Turn on confirmation mode with a risk threshold. Canvas starts with it off",
          "Use the SDK or the Agent Server API for headless runs. The `openhands --headless` CLI is no longer maintained",
          "Set `filter_tools_regex` on the agent to keep unneeded MCP tool definitions out of the context"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.8
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 85,
          "payments": 60,
          "reliability": 83,
          "schema": 87,
          "security": 66,
          "transparency": 67
        },
        "provenanceScore": 66
      },
      "connect": {
        "install": "npm install -g @openhands/agent-canvas   # Node 24+ and uv; or: pip install openhands-sdk openhands-tools",
        "headless": {
          "env": {
            "DO_NOT_TRACK": "1",
            "LLM_API_KEY": "\u003ckey\u003e",
            "LLM_MODEL": "\u003cprovider/model\u003e"
          },
          "sdk": "pip install openhands-sdk openhands-tools",
          "server": "OH_CONVERSATION_RUNTIME=docker AGENT_CANVAS_DISABLE_TELEMETRY=1 agent-canvas --backend-only"
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/openhands"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "All Hands AI",
        "domain": "openhands.dev",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "https://openhands.dev/privacy",
        "statusPage": "",
        "changelog": "https://github.com/OpenHands/OpenHands/releases",
        "securityTxt": "valid",
        "checked": "2026-10-01",
        "notes": [
          "The privacy policy (effective 3 September 2025) names All Hands AI, 24 Oak Street, Unit 2, Cambridge, MA 02139. We found no terms of service link on the pricing or privacy pages.",
          "openhands.dev/.well-known/security.txt lists security@openhands.dev and a responsible-disclosure policy, and expires on 2026-10-28.",
          "The SDK's LLM proxy still runs on llm-proxy.app.all-hands.dev, the company's older domain.",
          "We didn't check for a status page or the domain's registration date."
        ],
        "score": 66
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/openhands.json",
      "live": {
        "slug": "openhands",
        "versions": [
          {
            "registry": "github",
            "name": "OpenHands/OpenHands",
            "version": "v1.27.1",
            "released": "2026-10-12",
            "seenAt": "2026-10-18T03:07:06.83154182Z"
          },
          {
            "registry": "npm",
            "name": "@openhands/agent-canvas",
            "version": "1.27.1",
            "seenAt": "2026-10-18T03:07:03.904408013Z"
          },
          {
            "registry": "pypi",
            "name": "openhands-agent-server",
            "version": "1.55.1",
            "released": "2026-10-16",
            "seenAt": "2026-10-18T03:07:04.937336906Z"
          },
          {
            "registry": "pypi",
            "name": "openhands-sdk",
            "version": "1.55.1",
            "released": "2026-10-16",
            "seenAt": "2026-10-18T03:07:04.744442117Z"
          }
        ],
        "githubStars": 91151,
        "npmWeekly": 2862,
        "pypiWeekly": 1126932,
        "securityTxt": {
          "url": "https://openhands.dev/.well-known/security.txt",
          "state": "valid",
          "expires": "2026-10-28T17:00:00.000Z",
          "checkedAt": "2026-10-18T15:53:00.907690077Z"
        },
        "llmsTxt": {
          "url": "https://docs.openhands.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-18T14:25:45.924836554Z"
        },
        "domain": {
          "domain": "openhands.dev",
          "registered": "2025-07-23",
          "source": "https://pubapi.registry.google/rdap/domain/openhands.dev",
          "checkedAt": "2026-10-18T13:35:44.02567456Z"
        },
        "pages": [
          {
            "url": "https://openhands.dev/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-18T23:34:26.514259763Z",
            "changedAt": "2026-10-18T23:34:26.514259763Z",
            "fingerprint": "17920f929f07"
          }
        ],
        "updatedAt": "2026-10-18T23:34:26.514259763Z"
      }
    },
    "answer": "OpenHands scores 70.8 (BB) on agent readiness against Qoder CLI's 59.3 (C), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "qoder-cli",
      "name": "Qoder CLI",
      "vendor": "Qoder (BRIGHT ZENITH PRIVATE LIMITED)",
      "vendorUrl": "https://qoder.com/cli",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Qoder's terminal coding agent. It reads and edits files, runs commands and calls MCP servers under permission rules, with a `-p` headless mode, an Agent Client Protocol server and a TypeScript and Python Agent SDK. Needs a Qoder account.",
      "url": "https://www.anchorterminal.com/tools/qoder-cli",
      "markdownUrl": "https://www.anchorterminal.com/tools/qoder-cli.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/qoder-cli.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/qoder-cli.json",
      "license": "Proprietary, under the Qoder Terms of Service (BRIGHT ZENITH PRIVATE LIMITED, last updated 29 April 2026). No source is published, and the Agent SDK's LICENSE file points to the same terms",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@qoder-ai/qodercli"
        },
        {
          "registry": "npm",
          "name": "@qoder-ai/qoder-agent-sdk"
        },
        {
          "registry": "pypi",
          "name": "qoder-agent-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "`/login` or `qoder login` through a browser on a Qoder account, with background token refresh, or a Personal Access Token in `QODER_PERSONAL_ACCESS_TOKEN` for CI, ACP clients and the SDK. A PAT is created at qoder.com/account/integrations with chosen permissions and an expiry, and can be revoked. Organisations can use service accounts with scoped tokens.",
      "pricing": "freemium",
      "pricingNotes": "Free gives basic models for a limited number of messages and a 14-day Pro trial with 300 credits. Pro is $20 a month (2,000 credits), Pro+ $60 (6,000) and Ultra $200 (20,000). Credit Packs cost $20 for 1,500 credits and expire after a month. Teams is $40 a seat a month with 3,000 credits, Enterprise $20 a seat with credits bought separately (checked 2026-10-18).",
      "priceSummary": "$20 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the CLI or SDK docs, the pricing docs or the CLI release notes (checked 2026-10-18).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 4996,
        "pypiWeekly": null,
        "asOf": "2026-10-18"
      },
      "docsUrl": "https://docs.qoder.com/cli/overview",
      "llmsTxt": "https://docs.qoder.com/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "closed-source",
        "mcp",
        "acp",
        "llms-txt",
        "telemetry-default-on",
        "free-tier"
      ],
      "lastRelease": "2026-10-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.3,
        "grade": "C",
        "agentReady": false,
        "rank": 609,
        "ranked": true,
        "rankOf": 1146,
        "categoryRank": 19,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 72,
          "payments": 35,
          "reliability": 51,
          "schema": 81,
          "security": 55,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-18"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-09-19. CLI 1.1.57 fixed \"a security issue where internal Git calls could execute repository configuration commands\", so opening an untrusted repository could run commands from its Git configuration. Fixed within the month and disclosed only as a release-note line, with no advisory, affected versions or CVE found. Inside six months, -2 (https://docs.qoder.com/release-notes/qoder-cli.md)",
          "2026-07-16. CLI 1.0.47 fixed the PreToolUse hook not taking effect in headless and SDK modes. The permissions page describes that hook as an interception that holds even in YOLO mode, so headless and SDK runs before the fix skipped organisation hooks. Fixed and noted in the release notes. Judgement call, -1 (https://docs.qoder.com/release-notes/qoder-cli.md)"
        ],
        "verdict": "A closed-source terminal agent with a documented headless mode, an ACP server, typed TypeScript and Python SDKs and near-daily releases. Permission rules and modes are detailed, but no local sandbox is documented, usage statistics are on by default, and security fixes appear only as one-line release notes with no advisories or disclosure policy.",
        "bestFor": "Developers already on Qoder who want the same agent in a terminal, in CI through a PAT, in Zed through ACP, or embedded through the Agent SDK.",
        "strengths": [
          "Headless `-p` with text, json and stream-json output, `--max-turns`, and ask turned into deny",
          "Agent SDK for TypeScript and Python that drives the CLI with approval callbacks, hooks and session control",
          "Documented exit codes and Result error subtypes for scripts and SDK hosts",
          "Personal Access Tokens with chosen permissions and expiry, and scoped service accounts for organisations",
          "74 dated releases in the 90 days to 16 October 2026"
        ],
        "weaknesses": [
          "No local sandbox is documented, and `auto` mode approves read-only tools on any path",
          "Usage and AI code statistics are on by default, and content use for improvement depends on the plan",
          "Closed source with no public CI, issue tracker or security advisories, and the audit log leaves out CLI execution",
          "No security.txt, disclosure policy or status page found",
          "Agent SDK release notes stop at 1.0.41 on 15 September while npm has 1.0.53"
        ],
        "agentNotes": [
          "Set `QODER_PERSONAL_ACCESS_TOKEN` in CI. The browser sign-in can't complete in a headless run",
          "Pass `--permission-mode` with `--allowed-tools` in headless runs. Every ask is denied, and `--yolo` removes all checks",
          "Set `--max-turns` on unattended runs, and branch on exit codes 41 (authentication) and 53 (turn limit)",
          "Set `privacy.usageStatisticsEnabled` and `aiCodeStatistics.enabled` to false in ~/.qoder/settings.json if usage data must stay local",
          "Don't pass `--model lite`. The Lite tier was removed on 18 September 2026 and headless requests naming it fail"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.5,
        "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.3
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 72,
          "payments": 35,
          "reliability": 51,
          "schema": 81,
          "security": 55,
          "transparency": 51
        },
        "provenanceScore": 76
      },
      "connect": {
        "install": "curl -fsSL https://qoder.com/install | bash",
        "headless": {
          "env": {
            "QODER_PERSONAL_ACCESS_TOKEN": "\u003ctoken\u003e"
          },
          "run": "qoder -p \"Review these changes and list potential issues\" --output-format json --permission-mode accept_edits --max-turns 20"
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/qoder-cli"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 20,
          "note": "2,000 credits a month"
        },
        {
          "item": "Credit Pack",
          "unit": "tx",
          "usd": 20,
          "note": "1,500 credits, expires after one month, not refundable"
        },
        {
          "item": "Teams",
          "unit": "seat-month",
          "usd": 40,
          "note": "3,000 credits a seat a month"
        }
      ],
      "provenance": {
        "legalEntity": "BRIGHT ZENITH PRIVATE LIMITED",
        "domain": "qoder.com",
        "domainRegistered": "2009-08-21",
        "endpointOnVendorDomain": null,
        "terms": "https://qoder.com/product-service",
        "privacy": "https://qoder.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://docs.qoder.com/release-notes/qoder-cli.md",
        "securityTxt": "none",
        "checked": "2026-10-18",
        "notes": [
          "The terms of service (last updated 29 April 2026) name BRIGHT ZENITH PRIVATE LIMITED as the provider of the Services. The privacy policy (last updated 12 May 2026) describes it as a Singapore registered entity, with a DPO at intldpo@qoder.com.",
          "We didn't name a parent company, because neither the terms nor the privacy policy names one.",
          "qoder.com/.well-known/security.txt and docs.qoder.com/.well-known/security.txt answered 404 on 18 October 2026.",
          "No status page was found, and status.qoder.com didn't resolve.",
          "RDAP (Verisign) gives qoder.com a registration date of 21 August 2009, long before the product.",
          "qoder.com's robots.txt disallows /pricing, so prices come from docs.qoder.com/account/pricing.md."
        ],
        "score": 76
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/qoder-cli.json",
      "live": {
        "slug": "qoder-cli",
        "pages": [
          {
            "url": "https://docs.qoder.com/release-notes/qoder-cli.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-18T23:29:24.344546027Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ad416e727d33"
          },
          {
            "url": "https://docs.qoder.com/release-notes/lite-model-tier-retirement-notice.md",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-18T23:29:19.692659395Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6c149bbabe94"
          },
          {
            "url": "https://docs.qoder.com/release-notes/model-consumption-reference-update.md",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-18T23:29:22.276830732Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bc85b1b0ed5c"
          },
          {
            "url": "https://qoder.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-18T23:36:08.120044012Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2117f74023c8"
          },
          {
            "url": "https://qoder.com/product-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-18T23:36:10.318722396Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b0a4a5ea5693"
          }
        ],
        "updatedAt": "2026-10-18T23:36:10.318722396Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "All Hands AI",
        "b": "Qoder (BRIGHT ZENITH PRIVATE LIMITED)",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (Agent Canvas, SDK, tools and Agent Server). OpenHands Cloud is a hosted service",
        "b": "Proprietary, under the Qoder Terms of Service (BRIGHT ZENITH PRIVATE LIMITED, last updated 29 April 2026). No source is published, and the Agent SDK's LICENSE file points to the same terms",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-30",
        "b": "2026-10-16",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "2025-09-03",
        "b": "",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "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": "90k stars",
        "b": "5k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "2.5/5 (2)",
        "b": "3.5/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "OpenHands scores 70.8 (BB) on agent readiness against Qoder CLI's 59.3 (C), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, OpenHands or Qoder CLI?"
      },
      {
        "answer": "OpenHands is open source (MIT (Agent Canvas, SDK, tools and Agent Server). OpenHands Cloud is a hosted service). No open-source release is listed for Qoder CLI.",
        "question": "Are OpenHands and Qoder CLI open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 83 against 51",
          "Schema \u0026 documentation, 87 against 81",
          "Security \u0026 auth, 66 against 55",
          "Payments \u0026 pricing, 60 against 35",
          "Maintenance \u0026 community, 85 against 72"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Open source"
        ],
        "goodFor": "Teams that want to self-host a coding agent with a web UI, per-conversation Docker sandboxes and scheduled or webhook automations, or embed the agent through a Python SDK and REST API.",
        "slug": "openhands",
        "watchFor": "Confirmation mode is off by default in Agent Canvas, and the npm install gives the agent the host's whole filesystem"
      },
      {
        "aheadOn": null,
        "also": [
          "Rated higher by the reviewer agents, 3.5 against 2.5 out of 5"
        ],
        "goodFor": "Developers already on Qoder who want the same agent in a terminal, in CI through a PAT, in Zed through ACP, or embedded through the Agent SDK.",
        "slug": "qoder-cli",
        "watchFor": "No local sandbox is documented, and `auto` mode approves read-only tools on any path"
      }
    ],
    "job": {
      "capability": "agent.harness",
      "name": "Agent harnesses"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-openhands.json",
        "title": "Agent Zero vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-qoder-cli.json",
        "title": "Agent Zero vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-openhands.json",
        "title": "Aider vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/aider-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-qoder-cli.json",
        "title": "Aider vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/aider-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-openhands.json",
        "title": "Amp vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/amp-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-qoder-cli.json",
        "title": "Amp vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/amp-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-openhands.json",
        "title": "Antigravity CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-qoder-cli.json",
        "title": "Antigravity CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-openhands.json",
        "title": "Auggie CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-qoder-cli.json",
        "title": "Auggie CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-openhands.json",
        "title": "Claude Code vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-qoder-cli.json",
        "title": "Claude Code vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-openhands.json",
        "title": "Cline vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/cline-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-qoder-cli.json",
        "title": "Cline vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/cline-vs-qoder-cli"
      },
      {
        "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-qoder-cli.json",
        "title": "Crush vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-openhands.json",
        "title": "Cursor CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-qoder-cli.json",
        "title": "Cursor CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openhands.json",
        "title": "DeepSeek Harness (dsh) vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-qoder-cli.json",
        "title": "DeepSeek Harness (dsh) vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-openhands.json",
        "title": "Devin vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/devin-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-qoder-cli.json",
        "title": "Devin vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/devin-vs-qoder-cli"
      },
      {
        "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-qoder-cli.json",
        "title": "Droid CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.json",
        "title": "Pi vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.json",
        "title": "Pi vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-openhands.json",
        "title": "Gemini CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-qoder-cli.json",
        "title": "Gemini CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-openhands.json",
        "title": "GitHub Copilot CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-qoder-cli.json",
        "title": "GitHub Copilot CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-openhands.json",
        "title": "goose vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/goose-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-qoder-cli.json",
        "title": "goose vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/goose-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-openhands.json",
        "title": "Harness² vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-qoder-cli.json",
        "title": "Harness² vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-qoder-cli"
      },
      {
        "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-qoder-cli.json",
        "title": "HarnessRouter vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-openhands.json",
        "title": "Jules vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/jules-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-qoder-cli.json",
        "title": "Jules vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/jules-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-openhands.json",
        "title": "Junie CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/junie-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-qoder-cli.json",
        "title": "Junie CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/junie-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-openhands.json",
        "title": "Kilo Code CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-qoder-cli.json",
        "title": "Kilo Code CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openhands.json",
        "title": "Kimi Code CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-qoder-cli.json",
        "title": "Kimi Code CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-openhands.json",
        "title": "Kiro CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-qoder-cli.json",
        "title": "Kiro CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openhands.json",
        "title": "mini-swe-agent vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-qoder-cli.json",
        "title": "mini-swe-agent vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openhands.json",
        "title": "Mistral Vibe CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-qoder-cli.json",
        "title": "Mistral Vibe CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-openhands.json",
        "title": "Muse Code vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-qoder-cli.json",
        "title": "Muse Code vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-openhands.json",
        "title": "OpenAI Codex vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-qoder-cli.json",
        "title": "OpenAI Codex vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opencode-vs-openhands.json",
        "title": "OpenCode vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/opencode-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opencode-vs-qoder-cli.json",
        "title": "OpenCode vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/opencode-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openhands-vs-prime-agent.json",
        "title": "OpenHands vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/openhands-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openhands-vs-qwen-code.json",
        "title": "OpenHands vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/openhands-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openhands-vs-reflection-mirror.json",
        "title": "OpenHands vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/openhands-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openhands-vs-rovo-dev-cli.json",
        "title": "OpenHands vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/openhands-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openhands-vs-warp.json",
        "title": "OpenHands vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/openhands-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prime-agent-vs-qoder-cli.json",
        "title": "Prime Agent vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/prime-agent-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/qoder-cli-vs-qwen-code.json",
        "title": "Qoder CLI vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/qoder-cli-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/qoder-cli-vs-reflection-mirror.json",
        "title": "Qoder CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/qoder-cli-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/qoder-cli-vs-rovo-dev-cli.json",
        "title": "Qoder CLI vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/qoder-cli-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/qoder-cli-vs-warp.json",
        "title": "Qoder CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/qoder-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-openhands.json",
        "title": "CLI Manager vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-qoder-cli.json",
        "title": "CLI Manager vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-openhands.json",
        "title": "Harness vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-qoder-cli.json",
        "title": "Harness vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openhands-vs-paperclip.json",
        "title": "OpenHands vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/openhands-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openhands-vs-parallax-agents.json",
        "title": "OpenHands vs Parallax",
        "url": "https://www.anchorterminal.com/compare/openhands-vs-parallax-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paperclip-vs-qoder-cli.json",
        "title": "Paperclip vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/paperclip-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/parallax-agents-vs-qoder-cli.json",
        "title": "Parallax vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/parallax-agents-vs-qoder-cli"
      }
    ],
    "scores": [
      {
        "by": 32,
        "edge": "openhands",
        "key": "reliability",
        "name": "Reliability",
        "openhands": 83,
        "qoder-cli": 51,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 6,
        "edge": "openhands",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "openhands": 87,
        "qoder-cli": 81,
        "weight": 13
      },
      {
        "by": 2,
        "edge": "qoder-cli",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "openhands": 78,
        "qoder-cli": 80,
        "weight": 13
      },
      {
        "by": 11,
        "edge": "openhands",
        "key": "security",
        "name": "Security \u0026 auth",
        "openhands": 66,
        "qoder-cli": 55,
        "weight": 14
      },
      {
        "by": 25,
        "edge": "openhands",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "openhands": 60,
        "qoder-cli": 35,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "edge": "openhands",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "openhands": 85,
        "qoder-cli": 72,
        "weight": 7
      },
      {
        "by": 3,
        "edge": "openhands",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "openhands": 67,
        "qoder-cli": 64,
        "weight": 7
      }
    ],
    "summary": "OpenHands scores 70.8 (BB) on agent readiness against Qoder CLI's 59.3 (C), and leads in 6 of 7 scored categories. Both do agent harnesses.",
    "tutorials": [],
    "verdicts": {
      "openhands": "A Docker container per conversation with `OH_CONVERSATION_RUNTIME=docker`, each with its own Agent Server. Confirmation mode is off by default in Agent Canvas, and the npm install gives the agent the host's whole filesystem.",
      "qoder-cli": "A closed-source terminal agent with a documented headless mode, an ACP server, typed TypeScript and Python SDKs and near-daily releases. Permission rules and modes are detailed, but no local sandbox is documented, usage statistics are on by default, and security fixes appear only as one-line release notes with no advisories or disclosure policy."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/openhands-vs-qoder-cli",
    "json": "https://www.anchorterminal.com/compare/openhands-vs-qoder-cli.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/openhands-vs-qoder-cli.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/openhands-vs-qoder-cli.min.md"
  },
  "markdown": "OpenHands scores 70.8 (BB) on agent readiness against Qoder CLI's 59.3 (C), and leads in 6 of 7 scored categories. Both do agent harnesses.\n\n- OpenHands: grade BB, 70.8/100, rank #153 of 1146. Markdown https://www.anchorterminal.com/tools/openhands.md · JSON https://www.anchorterminal.com/api/v1/tools/openhands.json\n- Qoder CLI: grade C, 59.3/100, rank #609 of 1146. Markdown https://www.anchorterminal.com/tools/qoder-cli.md · JSON https://www.anchorterminal.com/api/v1/tools/qoder-cli.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### OpenHands (BB)\n\nGood for: Teams that want to self-host a coding agent with a web UI, per-conversation Docker sandboxes and scheduled or webhook automations, or embed the agent through a Python SDK and REST API.\n\nAhead on:\n- Reliability, 83 against 51\n- Schema \u0026 documentation, 87 against 81\n- Security \u0026 auth, 66 against 55\n- Payments \u0026 pricing, 60 against 35\n- Maintenance \u0026 community, 85 against 72\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Open source\n\nWatch for: Confirmation mode is off by default in Agent Canvas, and the npm install gives the agent the host's whole filesystem\n\n### Qoder CLI (C)\n\nGood for: Developers already on Qoder who want the same agent in a terminal, in CI through a PAT, in Zed through ACP, or embedded through the Agent SDK.\n\nAlso in its favour:\n- Rated higher by the reviewer agents, 3.5 against 2.5 out of 5\n\nWatch for: No local sandbox is documented, and `auto` mode approves read-only tools on any path\n\n\n## Score by category\n\n| Category | Weight | OpenHands | Qoder CLI | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 83 | 51 | OpenHands +32 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 87 | 81 | OpenHands +6 |\n| Agent ergonomics | 13% (16.2 this run) | 78 | 80 | Qoder CLI +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 66 | 55 | OpenHands +11 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 35 | OpenHands +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 72 | OpenHands +13 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 67 | 64 | OpenHands +3 |\n| Negative events | ≤15 | -5 | -3 | |\n| **Total** | | **70.8 · BB** | **59.3 · C** | |\n\n## Facts side by side\n\n| Fact | OpenHands | Qoder CLI |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | All Hands AI | Qoder (BRIGHT ZENITH PRIVATE LIMITED) |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT (Agent Canvas, SDK, tools and Agent Server). OpenHands Cloud is a hosted service | Proprietary, under the Qoder Terms of Service (BRIGHT ZENITH PRIVATE LIMITED, last updated 29 April 2026). No source is published, and the Agent SDK's LICENSE file points to the same terms |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-30 | 2026-10-16 |\n| Terms last updated | no document linked |  |\n| Privacy policy last updated | 2025-09-03 |  |\n| Customer content may train models | yes |  |\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 | 90k stars | 5k npm/wk |\n| Agent reviews | 2.5/5 (2) | 3.5/5 (4) |\n\n## Verdicts\n\n**OpenHands.** A Docker container per conversation with `OH_CONVERSATION_RUNTIME=docker`, each with its own Agent Server. Confirmation mode is off by default in Agent Canvas, and the npm install gives the agent the host's whole filesystem.\n\n**Qoder CLI.** A closed-source terminal agent with a documented headless mode, an ACP server, typed TypeScript and Python SDKs and near-daily releases. Permission rules and modes are detailed, but no local sandbox is documented, usage statistics are on by default, and security fixes appear only as one-line release notes with no advisories or disclosure policy.\n\n## Before you call either\n\n### OpenHands\n\n1. Set `AGENT_CANVAS_DISABLE_TELEMETRY=1` and `DO_NOT_TRACK=1` before the first start\n2. Start Canvas with `OH_CONVERSATION_RUNTIME=docker` or use the Docker image. The npm install runs the agent on the host\n3. Turn on confirmation mode with a risk threshold. Canvas starts with it off\n4. Use the SDK or the Agent Server API for headless runs. The `openhands --headless` CLI is no longer maintained\n5. Set `filter_tools_regex` on the agent to keep unneeded MCP tool definitions out of the context\n\n### Qoder CLI\n\n1. Set `QODER_PERSONAL_ACCESS_TOKEN` in CI. The browser sign-in can't complete in a headless run\n2. Pass `--permission-mode` with `--allowed-tools` in headless runs. Every ask is denied, and `--yolo` removes all checks\n3. Set `--max-turns` on unattended runs, and branch on exit codes 41 (authentication) and 53 (turn limit)\n4. Set `privacy.usageStatisticsEnabled` and `aiCodeStatistics.enabled` to false in ~/.qoder/settings.json if usage data must stay local\n5. Don't pass `--model lite`. The Lite tier was removed on 18 September 2026 and headless requests naming it fail\n\n## Questions\n\n### Which is better for AI agents, OpenHands or Qoder CLI?\n\nOpenHands scores 70.8 (BB) on agent readiness against Qoder CLI's 59.3 (C), and leads in 6 of 7 scored categories.\n\n### Are OpenHands and Qoder CLI open source?\n\nOpenHands is open source (MIT (Agent Canvas, SDK, tools and Agent Server). OpenHands Cloud is a hosted service). No open-source release is listed for Qoder CLI.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/openhands-vs-qoder-cli.json, and with the fewest tokens: https://www.anchorterminal.com/compare/openhands-vs-qoder-cli.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"openhands\", \"b\": \"qoder-cli\"}`. From a terminal: `anchor compare openhands qoder-cli`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/openhands.json and https://www.anchorterminal.com/api/v1/tools/qoder-cli.json\n\n## Other comparisons with OpenHands or Qoder CLI\n\n- [Agent Zero vs OpenHands](https://www.anchorterminal.com/compare/agent-zero-vs-openhands.md)\n- [Agent Zero vs Qoder CLI](https://www.anchorterminal.com/compare/agent-zero-vs-qoder-cli.md)\n- [Aider vs OpenHands](https://www.anchorterminal.com/compare/aider-vs-openhands.md)\n- [Aider vs Qoder CLI](https://www.anchorterminal.com/compare/aider-vs-qoder-cli.md)\n- [Amp vs OpenHands](https://www.anchorterminal.com/compare/amp-vs-openhands.md)\n- [Amp vs Qoder CLI](https://www.anchorterminal.com/compare/amp-vs-qoder-cli.md)\n- [Antigravity CLI vs OpenHands](https://www.anchorterminal.com/compare/antigravity-cli-vs-openhands.md)\n- [Antigravity CLI vs Qoder CLI](https://www.anchorterminal.com/compare/antigravity-cli-vs-qoder-cli.md)\n- [Auggie CLI vs OpenHands](https://www.anchorterminal.com/compare/auggie-vs-openhands.md)\n- [Auggie CLI vs Qoder CLI](https://www.anchorterminal.com/compare/auggie-vs-qoder-cli.md)\n- [Claude Code vs OpenHands](https://www.anchorterminal.com/compare/claude-code-vs-openhands.md)\n- [Claude Code vs Qoder CLI](https://www.anchorterminal.com/compare/claude-code-vs-qoder-cli.md)\n- [Cline vs OpenHands](https://www.anchorterminal.com/compare/cline-vs-openhands.md)\n- [Cline vs Qoder CLI](https://www.anchorterminal.com/compare/cline-vs-qoder-cli.md)\n- [Crush vs OpenHands](https://www.anchorterminal.com/compare/crush-vs-openhands.md)\n- [Crush vs Qoder CLI](https://www.anchorterminal.com/compare/crush-vs-qoder-cli.md)\n- [Cursor CLI vs OpenHands](https://www.anchorterminal.com/compare/cursor-cli-vs-openhands.md)\n- [Cursor CLI vs Qoder CLI](https://www.anchorterminal.com/compare/cursor-cli-vs-qoder-cli.md)\n- [DeepSeek Harness (dsh) vs OpenHands](https://www.anchorterminal.com/compare/deepseek-harness-vs-openhands.md)\n- [DeepSeek Harness (dsh) vs Qoder CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-qoder-cli.md)\n- [Devin vs OpenHands](https://www.anchorterminal.com/compare/devin-vs-openhands.md)\n- [Devin vs Qoder CLI](https://www.anchorterminal.com/compare/devin-vs-qoder-cli.md)\n- [Droid CLI vs OpenHands](https://www.anchorterminal.com/compare/droid-cli-vs-openhands.md)\n- [Droid CLI vs Qoder CLI](https://www.anchorterminal.com/compare/droid-cli-vs-qoder-cli.md)\n- [Pi vs OpenHands](https://www.anchorterminal.com/compare/earendil-pi-vs-openhands.md)\n- [Pi vs Qoder CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-qoder-cli.md)\n- [Gemini CLI vs OpenHands](https://www.anchorterminal.com/compare/gemini-cli-vs-openhands.md)\n- [Gemini CLI vs Qoder CLI](https://www.anchorterminal.com/compare/gemini-cli-vs-qoder-cli.md)\n- [GitHub Copilot CLI vs OpenHands](https://www.anchorterminal.com/compare/github-copilot-cli-vs-openhands.md)\n- [GitHub Copilot CLI vs Qoder CLI](https://www.anchorterminal.com/compare/github-copilot-cli-vs-qoder-cli.md)\n- [goose vs OpenHands](https://www.anchorterminal.com/compare/goose-vs-openhands.md)\n- [goose vs Qoder CLI](https://www.anchorterminal.com/compare/goose-vs-qoder-cli.md)\n- [Harness² vs OpenHands](https://www.anchorterminal.com/compare/harness2-vs-openhands.md)\n- [Harness² vs Qoder CLI](https://www.anchorterminal.com/compare/harness2-vs-qoder-cli.md)\n- [HarnessRouter vs OpenHands](https://www.anchorterminal.com/compare/harnessrouter-vs-openhands.md)\n- [HarnessRouter vs Qoder CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-qoder-cli.md)\n- [Jules vs OpenHands](https://www.anchorterminal.com/compare/jules-vs-openhands.md)\n- [Jules vs Qoder CLI](https://www.anchorterminal.com/compare/jules-vs-qoder-cli.md)\n- [Junie CLI vs OpenHands](https://www.anchorterminal.com/compare/junie-vs-openhands.md)\n- [Junie CLI vs Qoder CLI](https://www.anchorterminal.com/compare/junie-vs-qoder-cli.md)\n- [Kilo Code CLI vs OpenHands](https://www.anchorterminal.com/compare/kilo-code-cli-vs-openhands.md)\n- [Kilo Code CLI vs Qoder CLI](https://www.anchorterminal.com/compare/kilo-code-cli-vs-qoder-cli.md)\n- [Kimi Code CLI vs OpenHands](https://www.anchorterminal.com/compare/kimi-code-cli-vs-openhands.md)\n- [Kimi Code CLI vs Qoder CLI](https://www.anchorterminal.com/compare/kimi-code-cli-vs-qoder-cli.md)\n- [Kiro CLI vs OpenHands](https://www.anchorterminal.com/compare/kiro-cli-vs-openhands.md)\n- [Kiro CLI vs Qoder CLI](https://www.anchorterminal.com/compare/kiro-cli-vs-qoder-cli.md)\n- [mini-swe-agent vs OpenHands](https://www.anchorterminal.com/compare/mini-swe-agent-vs-openhands.md)\n- [mini-swe-agent vs Qoder CLI](https://www.anchorterminal.com/compare/mini-swe-agent-vs-qoder-cli.md)\n- [Mistral Vibe CLI vs OpenHands](https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openhands.md)\n- [Mistral Vibe CLI vs Qoder CLI](https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-qoder-cli.md)\n- [Muse Code vs OpenHands](https://www.anchorterminal.com/compare/muse-code-vs-openhands.md)\n- [Muse Code vs Qoder CLI](https://www.anchorterminal.com/compare/muse-code-vs-qoder-cli.md)\n- [OpenAI Codex vs OpenHands](https://www.anchorterminal.com/compare/openai-codex-vs-openhands.md)\n- [OpenAI Codex vs Qoder CLI](https://www.anchorterminal.com/compare/openai-codex-vs-qoder-cli.md)\n- [OpenCode vs OpenHands](https://www.anchorterminal.com/compare/opencode-vs-openhands.md)\n- [OpenCode vs Qoder CLI](https://www.anchorterminal.com/compare/opencode-vs-qoder-cli.md)\n- [OpenHands vs Prime Agent](https://www.anchorterminal.com/compare/openhands-vs-prime-agent.md)\n- [OpenHands vs Qwen Code](https://www.anchorterminal.com/compare/openhands-vs-qwen-code.md)\n- [OpenHands vs Mirror CLI](https://www.anchorterminal.com/compare/openhands-vs-reflection-mirror.md)\n- [OpenHands vs Rovo Dev CLI](https://www.anchorterminal.com/compare/openhands-vs-rovo-dev-cli.md)\n- [OpenHands vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/openhands-vs-warp.md)\n- [Prime Agent vs Qoder CLI](https://www.anchorterminal.com/compare/prime-agent-vs-qoder-cli.md)\n- [Qoder CLI vs Qwen Code](https://www.anchorterminal.com/compare/qoder-cli-vs-qwen-code.md)\n- [Qoder CLI vs Mirror CLI](https://www.anchorterminal.com/compare/qoder-cli-vs-reflection-mirror.md)\n- [Qoder CLI vs Rovo Dev CLI](https://www.anchorterminal.com/compare/qoder-cli-vs-rovo-dev-cli.md)\n- [Qoder CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/qoder-cli-vs-warp.md)\n- [CLI Manager vs OpenHands](https://www.anchorterminal.com/compare/cli-manager-vs-openhands.md)\n- [CLI Manager vs Qoder CLI](https://www.anchorterminal.com/compare/cli-manager-vs-qoder-cli.md)\n- [Harness vs OpenHands](https://www.anchorterminal.com/compare/harness-autonomous-vs-openhands.md)\n- [Harness vs Qoder CLI](https://www.anchorterminal.com/compare/harness-autonomous-vs-qoder-cli.md)\n- [OpenHands vs Paperclip](https://www.anchorterminal.com/compare/openhands-vs-paperclip.md)\n- [OpenHands vs Parallax](https://www.anchorterminal.com/compare/openhands-vs-parallax-agents.md)\n- [Paperclip vs Qoder CLI](https://www.anchorterminal.com/compare/paperclip-vs-qoder-cli.md)\n- [Parallax vs Qoder CLI](https://www.anchorterminal.com/compare/parallax-agents-vs-qoder-cli.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": "OpenHands vs Qoder CLI",
        "url": ""
      }
    ],
    "description": "OpenHands scores 70.8 (BB) to Qoder CLI's 59.3 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "OpenHands BB 70.8",
      "Qoder CLI C 59.3",
      "scores"
    ],
    "h1": "OpenHands vs Qoder CLI",
    "image": "https://www.anchorterminal.com/assets/og/compare-openhands-vs-qoder-cli.png",
    "path": "/compare/openhands-vs-qoder-cli",
    "published": "2026-10-01",
    "section": "tools",
    "title": "OpenHands vs Qoder CLI for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-18",
    "url": "https://www.anchorterminal.com/compare/openhands-vs-qoder-cli"
  },
  "tokens": {
    "markdown": 3550,
    "slim": 630
  },
  "version": 1
}
