{
  "data": {
    "a": {
      "slug": "cursor-cli",
      "name": "Cursor CLI",
      "vendor": "Cursor",
      "vendorUrl": "https://cursor.com/cli",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Cursor's coding agent in the terminal, run as `agent` (also `cursor-agent`).",
      "url": "https://www.anchorterminal.com/tools/cursor-cli",
      "markdownUrl": "https://www.anchorterminal.com/tools/cursor-cli.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cursor-cli.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cursor-cli.json",
      "license": "Proprietary, under Cursor's terms of service (Anysphere, Inc., updated 3 September 2026). No source is published",
      "transports": [],
      "packages": [],
      "auth": "mixed",
      "authNotes": "`agent login` through a browser, or an API key passed with `--api-key` or `CURSOR_API_KEY` for headless runs.",
      "pricing": "freemium",
      "pricingNotes": "Hobby is free with limited Agent requests and needs no card. Individual is $20 a month, Teams $40 a user a month and Enterprise by quote. Every plan includes a set amount of model usage, with on-demand usage billed in arrears, and the pricing page gives no dollar or request figure for either (checked 2026-10-02).",
      "priceSummary": "$20 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the pricing page (checked 2026-10-02).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-02"
      },
      "docsUrl": "https://cursor.com/docs/cli/overview",
      "llmsTxt": "https://cursor.com/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "closed-source",
        "mcp",
        "llms-txt",
        "free-tier",
        "no-card",
        "status-page"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 35.8,
        "grade": "F",
        "agentReady": false,
        "rank": 441,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 10,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 42,
          "maintenance": 62,
          "payments": 25,
          "reliability": 27,
          "schema": 39,
          "security": 46,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-10-01"
        },
        "negative": -5,
        "negativeNotes": [
          "2025-10-02 and 2025-11-03. Four high advisories that name the CLI, all fixed. Remote code execution in Cursor CLI through Cursor Agent MCP OAuth2 communication (GHSA-wj33-264c-j9cq), arbitrary code execution through a permissive CLI config (GHSA-v64q-396f-7m79), a sensitive-file overwrite bypass in the CLI agent (GHSA-x2vq-h6v6-jhc6) and command injection through an untrusted MCP configuration in Cursor CLI Beta (GHSA-4hwr-97q3-37w2). All older than six months, so 1 point each (https://github.com/cursor/cursor/security/advisories)",
          "2026-01-14. GHSA-82wg-qcm4-fp2w, high, terminal tool allowlist bypass through environment variables. It doesn't name the CLI, which runs the same terminal tool and allowlist idea. Fixed and published, 1 point. Judgement call. We left out the 2026 sandbox escapes titled for Cursor Desktop and Cloud Agents (https://github.com/cursor/cursor/security/advisories)"
        ],
        "verdict": "Allow and deny rules for shell, reads, writes, web fetches and MCP tools, with deny taking precedence. No CLI changelog, and versions are dates.",
        "strengths": [
          "Allow and deny rules for shell, reads, writes, web fetches and MCP tools, with deny taking precedence",
          "Print mode with text, json and stream-json output, plus `--resume` and `--continue`",
          "Plan and ask (read-only) modes alongside the default agent mode",
          "Hands a task to Cloud Agents by prefixing the message with `\u0026`",
          "A free Hobby plan with no card, and a status page with a CLI component"
        ],
        "weaknesses": [
          "No CLI changelog, and versions are dates",
          "The install script checks no checksum or signature",
          "No documentation of CLI telemetry or of what runs without approval by default",
          "Four high advisories named the CLI in October and November 2025",
          "Closed source, with no public issue tracker"
        ],
        "agentNotes": [
          "Pass `--trust` in headless runs, or the workspace prompt stops a run with no terminal",
          "Write deny rules in .cursor/cli.json before using `--force`. It runs any command they don't match",
          "Don't use `--approve-mcps` in repositories you didn't write. Two 2025 CLI advisories came through MCP",
          "Set `CURSOR_API_KEY` in CI. `agent login` opens a browser",
          "Record `agent --version` with each run. Versions are dates and there's no CLI changelog to compare against"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 1.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "F",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 35.8
          }
        ],
        "editorialScores": {
          "ergonomics": 42,
          "maintenance": 62,
          "payments": 25,
          "reliability": 27,
          "schema": 39,
          "security": 46,
          "transparency": 27
        },
        "provenanceScore": 100
      },
      "connect": {
        "install": "curl https://cursor.com/install -fsS | bash",
        "headless": {
          "run": "agent -p \"fix the failing test\" --output-format json --trust"
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/cursor-cli"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Individual plan",
          "unit": "month",
          "usd": 20,
          "note": "includes a set amount of model usage"
        },
        {
          "item": "Teams",
          "unit": "seat-month",
          "usd": 40,
          "note": "per user"
        }
      ],
      "provenance": {
        "legalEntity": "Anysphere, Inc.",
        "domain": "cursor.com",
        "domainRegistered": "1995-12-20",
        "endpointOnVendorDomain": null,
        "terms": "https://cursor.com/terms-of-service",
        "privacy": "https://cursor.com/privacy",
        "statusPage": "https://status.cursor.com",
        "changelog": "https://cursor.com/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-01",
        "notes": [
          "The terms of service (updated 3 September 2026) name Anysphere, Inc.",
          "RDAP (Verisign) gives cursor.com a registration date of 1995-12-20, long before Anysphere.",
          "cursor.com/.well-known/security.txt has a Contact line pointing to Cursor's GitHub security advisories and no Expires line, which RFC 9116 requires. The site's tracker reads a file with a Contact and no Expires as valid.",
          "The changelog covers all of Cursor, and we found no CLI-only changelog."
        ],
        "score": 100
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cursor-cli.json",
      "live": {
        "slug": "cursor-cli",
        "vendorStatus": {
          "page": "https://status.cursor.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:17:35.109763186Z"
        },
        "securityTxt": {
          "url": "https://cursor.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-04T15:15:59.179317189Z"
        },
        "llmsTxt": {
          "url": "https://cursor.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:29.345712262Z"
        },
        "domain": {
          "domain": "cursor.com",
          "registered": "1995-12-20",
          "source": "https://rdap.verisign.com/com/v1/domain/cursor.com",
          "checkedAt": "2026-10-04T13:09:09.510989819Z"
        },
        "pages": [
          {
            "url": "https://cursor.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:16.526843692Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0533f35b59a7"
          },
          {
            "url": "https://cursor.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:18.612925478Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a5f74b5510f1"
          },
          {
            "url": "https://cursor.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:20.641585682Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5db93dae47db"
          }
        ],
        "updatedAt": "2026-10-04T23:17:35.109763186Z"
      }
    },
    "b": {
      "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.9,
        "grade": "BB",
        "agentReady": true,
        "rank": 92,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 4,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 85,
          "payments": 60,
          "reliability": 83,
          "schema": 87,
          "security": 66,
          "transparency": 69
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.9
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 85,
          "payments": 60,
          "reliability": 83,
          "schema": 87,
          "security": 66,
          "transparency": 67
        },
        "provenanceScore": 71
      },
      "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": 71
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/openhands.json",
      "live": {
        "slug": "openhands",
        "versions": [
          {
            "registry": "github",
            "name": "OpenHands/OpenHands",
            "version": "v1.24.0",
            "released": "2026-09-25",
            "seenAt": "2026-10-04T16:35:55.290441932Z"
          },
          {
            "registry": "npm",
            "name": "@openhands/agent-canvas",
            "version": "1.24.0",
            "seenAt": "2026-10-04T16:35:52.298784065Z"
          },
          {
            "registry": "pypi",
            "name": "openhands-agent-server",
            "version": "1.51.0",
            "released": "2026-10-03",
            "seenAt": "2026-10-04T16:35:53.387561523Z"
          },
          {
            "registry": "pypi",
            "name": "openhands-sdk",
            "version": "1.51.0",
            "released": "2026-10-03",
            "seenAt": "2026-10-04T16:35:53.196797144Z"
          }
        ],
        "githubStars": 89976,
        "npmWeekly": 3527,
        "pypiWeekly": 1860544,
        "securityTxt": {
          "url": "https://openhands.dev/.well-known/security.txt",
          "state": "valid",
          "expires": "2026-10-28T17:00:00.000Z",
          "checkedAt": "2026-10-04T15:16:02.265221118Z"
        },
        "llmsTxt": {
          "url": "https://docs.openhands.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:05.056816088Z"
        },
        "domain": {
          "domain": "openhands.dev",
          "registered": "2025-07-23",
          "source": "https://pubapi.registry.google/rdap/domain/openhands.dev",
          "checkedAt": "2026-10-04T13:04:38.037291667Z"
        },
        "pages": [
          {
            "url": "https://openhands.dev/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:26.92406148Z",
            "changedAt": "2026-10-04T15:46:26.92406148Z",
            "fingerprint": "46c132b6010f"
          }
        ],
        "updatedAt": "2026-10-04T16:35:55.290441932Z"
      }
    },
    "summary": "OpenHands has a score of 70.9 (BB) against Cursor CLI's 35.8 (F). Both do agent harness. The largest gap is reliability, 56 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cursor-cli-vs-openhands",
    "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-openhands.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cursor-cli-vs-openhands.md",
    "slim": "https://www.anchorterminal.com/compare/cursor-cli-vs-openhands.min.md"
  },
  "markdown": "OpenHands has a score of 70.9 (BB) against Cursor CLI's 35.8 (F). Both do agent harness. The largest gap is reliability, 56 points.\n\n- Cursor CLI: grade F, 35.8/100, rank #441 of 452. Markdown https://www.anchorterminal.com/tools/cursor-cli.md · JSON https://www.anchorterminal.com/api/v1/tools/cursor-cli.json\n- OpenHands: grade BB, 70.9/100, rank #92 of 452. Markdown https://www.anchorterminal.com/tools/openhands.md · JSON https://www.anchorterminal.com/api/v1/tools/openhands.json\n\n## Which one, for what\n\nPick Cursor CLI for nothing in particular (no category where it leads by five points or more).\n\nPick OpenHands for reliability (+56), schema \u0026 documentation (+48), agent ergonomics (+36), security \u0026 auth (+20), payments \u0026 pricing (+35), maintenance \u0026 community (+23), transparency \u0026 trust (+5).\n\n## Score by category\n\n| Category | Weight | Cursor CLI | OpenHands | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 27 | 83 | OpenHands +56 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 39 | 87 | OpenHands +48 |\n| Agent ergonomics | 13% (16.2 this run) | 42 | 78 | OpenHands +36 |\n| Security \u0026 auth | 14% (17.5 this run) | 46 | 66 | OpenHands +20 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 60 | OpenHands +35 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 62 | 85 | OpenHands +23 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 69 | OpenHands +5 |\n| Negative events | ≤15 | -5 | -5 | |\n| **Total** | | **35.8 · F** | **70.9 · BB** | |\n\n## Facts side by side\n\n| Fact | Cursor CLI | OpenHands |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Cursor | All Hands AI |\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 | Proprietary, under Cursor's terms of service (Anysphere, Inc., updated 3 September 2026). No source is published | MIT (Agent Canvas, SDK, tools and Agent Server). OpenHands Cloud is a hosted service |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-28 | 2026-09-30 |\n| Popularity | none | 90k stars |\n| Agent reviews | 1.5/5 (2) | 2.5/5 (2) |\n\n## Verdicts\n\n**Cursor CLI.** Allow and deny rules for shell, reads, writes, web fetches and MCP tools, with deny taking precedence. No CLI changelog, and versions are dates.\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## Before you call either\n\n### Cursor CLI\n\n1. Pass `--trust` in headless runs, or the workspace prompt stops a run with no terminal\n2. Write deny rules in .cursor/cli.json before using `--force`. It runs any command they don't match\n3. Don't use `--approve-mcps` in repositories you didn't write. Two 2025 CLI advisories came through MCP\n4. Set `CURSOR_API_KEY` in CI. `agent login` opens a browser\n5. Record `agent --version` with each run. Versions are dates and there's no CLI changelog to compare against\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## Other comparisons with Cursor CLI or OpenHands\n\n- [Aider vs Cursor CLI](https://www.anchorterminal.com/compare/aider-vs-cursor-cli.md)\n- [Aider vs OpenHands](https://www.anchorterminal.com/compare/aider-vs-openhands.md)\n- [Claude Code vs Cursor CLI](https://www.anchorterminal.com/compare/claude-code-vs-cursor-cli.md)\n- [Claude Code vs OpenHands](https://www.anchorterminal.com/compare/claude-code-vs-openhands.md)\n- [Cline vs Cursor CLI](https://www.anchorterminal.com/compare/cline-vs-cursor-cli.md)\n- [Cline vs OpenHands](https://www.anchorterminal.com/compare/cline-vs-openhands.md)\n- [Cursor CLI vs Gemini CLI](https://www.anchorterminal.com/compare/cursor-cli-vs-gemini-cli.md)\n- [Cursor CLI vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/cursor-cli-vs-github-copilot-cli.md)\n- [Cursor CLI vs goose](https://www.anchorterminal.com/compare/cursor-cli-vs-goose.md)\n- [Cursor CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/cursor-cli-vs-openai-codex.md)\n- [Cursor CLI vs OpenCode](https://www.anchorterminal.com/compare/cursor-cli-vs-opencode.md)\n- [Gemini CLI vs OpenHands](https://www.anchorterminal.com/compare/gemini-cli-vs-openhands.md)\n- [GitHub Copilot CLI vs OpenHands](https://www.anchorterminal.com/compare/github-copilot-cli-vs-openhands.md)\n- [goose vs OpenHands](https://www.anchorterminal.com/compare/goose-vs-openhands.md)\n- [OpenAI Codex vs OpenHands](https://www.anchorterminal.com/compare/openai-codex-vs-openhands.md)\n- [OpenCode vs OpenHands](https://www.anchorterminal.com/compare/opencode-vs-openhands.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Cursor CLI vs OpenHands",
        "url": ""
      }
    ],
    "description": "OpenHands has a score of 70.9 (BB) against Cursor CLI's 35.8 (F). Both do agent harness. The largest gap is reliability, 56 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Cursor CLI F 35.8",
      "OpenHands BB 70.9",
      "scores"
    ],
    "h1": "Cursor CLI vs OpenHands",
    "image": "https://www.anchorterminal.com/assets/og/compare-cursor-cli-vs-openhands.png",
    "path": "/compare/cursor-cli-vs-openhands",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cursor CLI vs OpenHands for AI agents, F 35.8 vs BB 70.9",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-openhands"
  },
  "tokens": {
    "markdown": 1600,
    "slim": 330
  },
  "version": 1
}
