{
  "data": {
    "similar": [
      {
        "grade": "AA",
        "json": "https://www.anchorterminal.com/tools/openai-agents-sdk.json",
        "name": "OpenAI Agents SDK",
        "score": 86.2,
        "shared": [
          "agent.framework",
          "agent.multi-agent",
          "agent.durable",
          "agent.mcp-client"
        ],
        "slug": "openai-agents-sdk"
      },
      {
        "grade": "A",
        "json": "https://www.anchorterminal.com/tools/microsoft-agent-framework.json",
        "name": "Microsoft Agent Framework",
        "score": 82.2,
        "shared": [
          "agent.framework",
          "agent.multi-agent",
          "agent.durable",
          "agent.mcp-client"
        ],
        "slug": "microsoft-agent-framework"
      },
      {
        "grade": "A",
        "json": "https://www.anchorterminal.com/tools/pydantic-ai.json",
        "name": "Pydantic AI",
        "score": 81.7,
        "shared": [
          "agent.framework",
          "agent.multi-agent",
          "agent.durable",
          "agent.mcp-client"
        ],
        "slug": "pydantic-ai"
      },
      {
        "grade": "BB",
        "json": "https://www.anchorterminal.com/tools/docker-agent.json",
        "name": "Docker Agent",
        "score": 76.5,
        "shared": [
          "agent.framework",
          "agent.multi-agent",
          "agent.mcp-client",
          "agent.durable"
        ],
        "slug": "docker-agent"
      },
      {
        "grade": "BB",
        "json": "https://www.anchorterminal.com/tools/google-adk.json",
        "name": "Agent Development Kit (ADK)",
        "score": 73.6,
        "shared": [
          "agent.framework",
          "agent.multi-agent",
          "agent.durable",
          "agent.mcp-client"
        ],
        "slug": "google-adk"
      },
      {
        "grade": "BB",
        "json": "https://www.anchorterminal.com/tools/agno.json",
        "name": "Agno",
        "score": 72.8,
        "shared": [
          "agent.framework",
          "agent.multi-agent",
          "agent.durable",
          "agent.mcp-client"
        ],
        "slug": "agno"
      }
    ],
    "tool": {
      "slug": "cursor-agent-sdk",
      "name": "Cursor Agent SDK",
      "vendor": "Cursor",
      "vendorUrl": "https://cursor.com/docs/agent-sdk",
      "kind": "framework",
      "category": "frameworks",
      "summary": "Cursor's TypeScript framework for defining an agent as a folder of instructions, typed tools, skills, MCP connections and channels, testing it with evals, and running it on your own server or on Cursor's hosting.",
      "url": "https://www.anchorterminal.com/tools/cursor-agent-sdk",
      "markdownUrl": "https://www.anchorterminal.com/tools/cursor-agent-sdk.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cursor-agent-sdk.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cursor-agent-sdk.json",
      "license": "Proprietary. The package's LICENSE.md reads \"© Anysphere Inc. All rights reserved\", with use subject to Cursor's Terms of Service (updated 3 September 2026). No source repository is published",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@grok/agent-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "Model turns need a Cursor credential. `agent-sdk login` opens a browser sign-in and stores the key it creates, or pass a user API key from the dashboard or a team service-account key as `--api-key`, `CURSOR_API_KEY`, `CURSOR_API_KEY_FILE` or `CURSOR_SERVICE_ACCOUNT_KEY`. `logout` doesn't revoke the key. Direct tool calls without a model turn need no Cursor key. A self-hosted server is protected with `--bearer-token`, and a deployment's routes with an alias token.",
      "pricing": "byo-plan",
      "pricingNotes": "The package is free to install. Model turns draw on the Cursor plan of the key's owner, Free ($0, limited agent requests) to Ultra ($200 a month), and beyond the weekly pool the default model, Grok 4.5 with Fast on, is $4 per million input tokens and $18 per million output tokens. No price for Cursor-managed hosting and no statement of which plans include the Agent SDK were found (checked 2026-10-27).",
      "priceSummary": "Your plan",
      "where": "library",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Agent SDK docs, the npm package or the pricing page (checked 2026-10-27).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-27"
      },
      "docsUrl": "https://cursor.com/docs/agent-sdk",
      "llmsTxt": "https://cursor.com/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.mcp-client",
        "agent.durable",
        "agent.multi-agent",
        "obs.evals"
      ],
      "tags": [
        "official",
        "framework",
        "typescript",
        "closed-source",
        "mcp",
        "llms-txt",
        "pre-1.0",
        "self-hosted",
        "hosted",
        "new"
      ],
      "lastRelease": "2026-10-25",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.6,
        "grade": "B",
        "agentReady": false,
        "rank": 443,
        "ranked": true,
        "rankOf": 1217,
        "categoryRank": 12,
        "methodology": "0.6",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 74,
          "payments": 30,
          "reliability": 45,
          "schema": 82,
          "security": 68,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "breakdown": [
          {
            "key": "reliability",
            "name": "Reliability",
            "weight": 16,
            "effectiveWeight": 20,
            "score": 45,
            "points": 9,
            "reason": "Local-package reading, since the owner runs the framework, with Cursor's hosting as an option. Official npm package with Node 22.13 or newer stated in engines and in the docs, which also say never Bun (20). Closed source, so no public CI or test suite (0). No public issue tracker. github.com/cursor/cursor holds a README and SECURITY.md, and forum.cursor.com has no Agent SDK tag, so there's nothing to count open crashes against. The troubleshooting page lists known failures with fixes (5). A dated changelog of two entries, 0.2.29 and 0.3.0, both 23 October 2026, and 0.3.0 calls out the removed `persistent` option, but the 27 earlier @cursor/bdk versions and 123 @cursor/july versions have no notes, and one build ships under three package names (5). Version 0.3.0, but the changelog post of 20 October says generally available and the docs changelog labels 0.3.0 the GA release, which we read as declared stable (15). 20+0+5+5+15 = 45.",
            "checked": "2026-10-27"
          },
          {
            "key": "performance",
            "name": "Performance",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
          },
          {
            "key": "schema",
            "name": "Schema \u0026 documentation",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 82,
            "points": 13.33,
            "reason": "Framework reading. Typed TypeScript declarations ship in the package, tools take Zod or JSON Schema, `agent-sdk help --json` describes every command's flags and exit codes, and `GET /v1/info` and `GET /v1/tools/:name` return the discovered surface and each tool's schemas. No OpenAPI document for the HTTP routes (20). cursor.com/llms.txt lists every Agent SDK page with a Markdown twin, and the package ships the docs and an llms.txt (10). The overview has a table of when to use the Agent SDK, Automations or Grok Bot, and the hooks page has a table of what to use instead of a hook for each job (18). Typed config, `effect` as an enum or predicate, `timeArgs` checked against the input schema, and slug patterns stated (13). Examples on every page, with error tables for direct tool calls, HTTP 401, 403 and 409, the limit error's JSON and seven exit codes (15). A dated changelog, but only two entries, both from 23 October 2026 (6). 20+10+18+13+15+6 = 82.",
            "checked": "2026-10-27"
          },
          {
            "key": "ergonomics",
            "name": "Agent ergonomics",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 80,
            "points": 13,
            "reason": "Framework reading, scored on what it takes to run a tool-calling agent with MCP. One file per tool and one file per MCP connection, `tools` and `disallowedTools` filters with `effects: \"read\"`, and an allowlist for the harness's built-in tools (22). Concurrency caps with queued turns, `--fields`, page tokens and limits on list commands, and a per-session cost view. We found no turn cap or spend cap for a run (12). Built-in routes return `{ ok: false, error }` codes, direct tool calls have documented 400, 404, 409 and 500 codes, and the CLI has seven exit codes (18). Reads and idempotent calls retry up to three times, writes run once, MCP readOnlyHint and idempotentHint decide retries for connection tools, and dry-run sessions stub writes (20). `agent-sdk init` scaffolds a working project and every agent field is optional, but the framework is TypeScript only (8). 22+12+18+20+8 = 80.",
            "checked": "2026-10-27"
          },
          {
            "key": "security",
            "name": "Security \u0026 auth",
            "weight": 14,
            "effectiveWeight": 17.5,
            "score": 68,
            "points": 11.9,
            "reason": "Framework reading. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt injection, 15 for audit and 20 for the security programme. Every model turn goes through Cursor's backend with a Cursor credential, even on a self-hosted server, and the data-use page says Cursor may store and train on prompts and code with Privacy Mode off. Managed hosting stores the repository and agent data whatever the Privacy Mode setting. OpenTelemetry export is off until an endpoint is set, with prompt text and tool payloads behind separate flags, and the npm update check has a documented switch. Install copies skills into ~/.cursor/skills (18). `needsApproval` parks a tool call for a person, dry runs stub writes and the harness tools take an allowlist, but `local.sandbox` is off by default, so shell commands auto-approve with the host's environment and file tools reach any path the process can. Hosted deployments enforce an egress allowlist (12). The docs tell you to turn the sandbox on for webhook payloads, diffs and chat, offer HMAC and shared-secret auth on webhook routes, and warn that anyone who can talk to the agent can drive Cursor account connectors. The scaffolded memory journal shares turns across sessions, with an instruction to treat it as untrusted (10). Sessions keep every message and tool call, hooks can mirror them for audit, and `ctx.approvedBy` records the approver (14). security.txt and SECURITY.md with a disclosure address and Cursor's GitHub advisories, no bug bounty found, and no advisory for this package in OSV on 27 October (14). SOC 2 and ISO 27001 aren't scored on the framework reading. 18+12+10+14+14 = 68.",
            "checked": "2026-10-27"
          },
          {
            "key": "payments",
            "name": "Payments \u0026 pricing",
            "weight": 10,
            "effectiveWeight": 12.5,
            "score": 30,
            "points": 3.75,
            "reason": "Framework reading of the published rubric. No payment protocol (0). Per-million-token prices for Cursor models, including the default Grok 4.5 with Fast, and plan prices are public, but no price for managed hosting and no statement of which plans cover the Agent SDK were found (15). The package is free and the Free plan needs no card, but its usage is only described as limited agent requests (15). A person signs in through a browser or creates an API key in the dashboard before a model turn runs (0). 0+15+15+0 = 30.",
            "checked": "2026-10-27"
          },
          {
            "key": "tasks",
            "name": "Task success",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
          },
          {
            "key": "maintenance",
            "name": "Maintenance \u0026 community",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 74,
            "points": 6.48,
            "reason": "0.3.0 on npm on 25 October 2026 (30). Five @grok/agent-sdk versions from 22 to 25 October and 29 @cursor/bdk versions since 22 September (20). Closed product. A public changelog with two entries and a forum with no Agent SDK tag, so we couldn't see replies to SDK reports (8). The npm package is current and official, TypeScript only (12). Dependencies are current releases, but there's no public CI and the same build goes out under three names with a postinstall script (4). 30+20+8+12+4 = 74.",
            "checked": "2026-10-27"
          },
          {
            "key": "transparency",
            "name": "Transparency \u0026 trust",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 70,
            "points": 6.13,
            "note": "editorial 49, provenance 91",
            "reason": "Closed source. LICENSE.md reads All rights reserved, with use under Cursor's Terms of Service of 3 September 2026 (15). The data-use page says Privacy Mode keeps Customer Data out of training with zero-retention agreements at model providers, and that with it off Cursor may store and train on code and prompts. The deployment page says managed hosting stores the repository and agent data the same way under Privacy Mode and refuses Privacy Mode (Legacy). No retention periods are stated, and subprocessors are on a trust portal (14). No deprecation policy. The early-alpha migration guide, the `persistent` removal and the semantic-search removal are documented with error messages but only the changelog entry carries a date (6). OpenTelemetry and the update check are documented with switches. What the Cursor backend logs from turns is covered only by the data-use page (14). 15+14+6+14 = 49.",
            "checked": "2026-10-27"
          }
        ],
        "assessment": {
          "date": "2026-10-27",
          "basis": "public evidence",
          "confidence": "medium",
          "notes": {
            "ergonomics": "Framework reading, scored on what it takes to run a tool-calling agent with MCP. One file per tool and one file per MCP connection, `tools` and `disallowedTools` filters with `effects: \"read\"`, and an allowlist for the harness's built-in tools (22). Concurrency caps with queued turns, `--fields`, page tokens and limits on list commands, and a per-session cost view. We found no turn cap or spend cap for a run (12). Built-in routes return `{ ok: false, error }` codes, direct tool calls have documented 400, 404, 409 and 500 codes, and the CLI has seven exit codes (18). Reads and idempotent calls retry up to three times, writes run once, MCP readOnlyHint and idempotentHint decide retries for connection tools, and dry-run sessions stub writes (20). `agent-sdk init` scaffolds a working project and every agent field is optional, but the framework is TypeScript only (8). 22+12+18+20+8 = 80.",
            "maintenance": "0.3.0 on npm on 25 October 2026 (30). Five @grok/agent-sdk versions from 22 to 25 October and 29 @cursor/bdk versions since 22 September (20). Closed product. A public changelog with two entries and a forum with no Agent SDK tag, so we couldn't see replies to SDK reports (8). The npm package is current and official, TypeScript only (12). Dependencies are current releases, but there's no public CI and the same build goes out under three names with a postinstall script (4). 30+20+8+12+4 = 74.",
            "payments": "Framework reading of the published rubric. No payment protocol (0). Per-million-token prices for Cursor models, including the default Grok 4.5 with Fast, and plan prices are public, but no price for managed hosting and no statement of which plans cover the Agent SDK were found (15). The package is free and the Free plan needs no card, but its usage is only described as limited agent requests (15). A person signs in through a browser or creates an API key in the dashboard before a model turn runs (0). 0+15+15+0 = 30.",
            "reliability": "Local-package reading, since the owner runs the framework, with Cursor's hosting as an option. Official npm package with Node 22.13 or newer stated in engines and in the docs, which also say never Bun (20). Closed source, so no public CI or test suite (0). No public issue tracker. github.com/cursor/cursor holds a README and SECURITY.md, and forum.cursor.com has no Agent SDK tag, so there's nothing to count open crashes against. The troubleshooting page lists known failures with fixes (5). A dated changelog of two entries, 0.2.29 and 0.3.0, both 23 October 2026, and 0.3.0 calls out the removed `persistent` option, but the 27 earlier @cursor/bdk versions and 123 @cursor/july versions have no notes, and one build ships under three package names (5). Version 0.3.0, but the changelog post of 20 October says generally available and the docs changelog labels 0.3.0 the GA release, which we read as declared stable (15). 20+0+5+5+15 = 45.",
            "schema": "Framework reading. Typed TypeScript declarations ship in the package, tools take Zod or JSON Schema, `agent-sdk help --json` describes every command's flags and exit codes, and `GET /v1/info` and `GET /v1/tools/:name` return the discovered surface and each tool's schemas. No OpenAPI document for the HTTP routes (20). cursor.com/llms.txt lists every Agent SDK page with a Markdown twin, and the package ships the docs and an llms.txt (10). The overview has a table of when to use the Agent SDK, Automations or Grok Bot, and the hooks page has a table of what to use instead of a hook for each job (18). Typed config, `effect` as an enum or predicate, `timeArgs` checked against the input schema, and slug patterns stated (13). Examples on every page, with error tables for direct tool calls, HTTP 401, 403 and 409, the limit error's JSON and seven exit codes (15). A dated changelog, but only two entries, both from 23 October 2026 (6). 20+10+18+13+15+6 = 82.",
            "security": "Framework reading. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt injection, 15 for audit and 20 for the security programme. Every model turn goes through Cursor's backend with a Cursor credential, even on a self-hosted server, and the data-use page says Cursor may store and train on prompts and code with Privacy Mode off. Managed hosting stores the repository and agent data whatever the Privacy Mode setting. OpenTelemetry export is off until an endpoint is set, with prompt text and tool payloads behind separate flags, and the npm update check has a documented switch. Install copies skills into ~/.cursor/skills (18). `needsApproval` parks a tool call for a person, dry runs stub writes and the harness tools take an allowlist, but `local.sandbox` is off by default, so shell commands auto-approve with the host's environment and file tools reach any path the process can. Hosted deployments enforce an egress allowlist (12). The docs tell you to turn the sandbox on for webhook payloads, diffs and chat, offer HMAC and shared-secret auth on webhook routes, and warn that anyone who can talk to the agent can drive Cursor account connectors. The scaffolded memory journal shares turns across sessions, with an instruction to treat it as untrusted (10). Sessions keep every message and tool call, hooks can mirror them for audit, and `ctx.approvedBy` records the approver (14). security.txt and SECURITY.md with a disclosure address and Cursor's GitHub advisories, no bug bounty found, and no advisory for this package in OSV on 27 October (14). SOC 2 and ISO 27001 aren't scored on the framework reading. 18+12+10+14+14 = 68.",
            "transparency": "Closed source. LICENSE.md reads All rights reserved, with use under Cursor's Terms of Service of 3 September 2026 (15). The data-use page says Privacy Mode keeps Customer Data out of training with zero-retention agreements at model providers, and that with it off Cursor may store and train on code and prompts. The deployment page says managed hosting stores the repository and agent data the same way under Privacy Mode and refuses Privacy Mode (Legacy). No retention periods are stated, and subprocessors are on a trust portal (14). No deprecation policy. The early-alpha migration guide, the `persistent` removal and the semantic-search removal are documented with error messages but only the changelog entry carries a date (6). OpenTelemetry and the update check are documented with switches. What the Cursor backend logs from turns is covered only by the data-use page (14). 15+14+6+14 = 49."
          },
          "sources": [
            {
              "what": "robots.txt for cursor.com",
              "url": "https://cursor.com/robots.txt",
              "seen": "2026-10-27"
            },
            {
              "what": "changelog post, Agent SDK, 20 October 2026",
              "url": "https://cursor.com/changelog/agent-sdk",
              "seen": "2026-10-27"
            },
            {
              "what": "docs overview (Markdown)",
              "url": "https://cursor.com/docs/agent-sdk.md",
              "seen": "2026-10-27"
            },
            {
              "what": "docs changelog (0.2.29 and 0.3.0)",
              "url": "https://cursor.com/docs/agent-sdk/changelog.md",
              "seen": "2026-10-27"
            },
            {
              "what": "quickstart",
              "url": "https://cursor.com/docs/agent-sdk/quickstart.md",
              "seen": "2026-10-27"
            },
            {
              "what": "deployment, Privacy Mode, egress, secrets and self-hosting",
              "url": "https://cursor.com/docs/agent-sdk/deployment.md",
              "seen": "2026-10-27"
            },
            {
              "what": "agent config, model default, sandbox default, harness tool allowlist",
              "url": "https://cursor.com/docs/agent-sdk/reference/agent-config.md",
              "seen": "2026-10-27"
            },
            {
              "what": "tools, effects, retries, direct calls and error codes",
              "url": "https://cursor.com/docs/agent-sdk/reference/tools.md",
              "seen": "2026-10-27"
            },
            {
              "what": "MCP connections",
              "url": "https://cursor.com/docs/agent-sdk/reference/connections.md",
              "seen": "2026-10-27"
            },
            {
              "what": "hooks",
              "url": "https://cursor.com/docs/agent-sdk/reference/hooks.md",
              "seen": "2026-10-27"
            },
            {
              "what": "memory journal",
              "url": "https://cursor.com/docs/agent-sdk/reference/memory.md",
              "seen": "2026-10-27"
            },
            {
              "what": "CLI reference, serve auth, credentials, environment variables and exit codes",
              "url": "https://cursor.com/docs/agent-sdk/reference/cli.md",
              "seen": "2026-10-27"
            },
            {
              "what": "HTTP API reference",
              "url": "https://cursor.com/docs/agent-sdk/reference/http-api.md",
              "seen": "2026-10-27"
            },
            {
              "what": "OpenTelemetry guide",
              "url": "https://cursor.com/docs/agent-sdk/guides/opentelemetry.md",
              "seen": "2026-10-27"
            },
            {
              "what": "limits",
              "url": "https://cursor.com/docs/agent-sdk/reference/limits.md",
              "seen": "2026-10-27"
            },
            {
              "what": "access roles",
              "url": "https://cursor.com/docs/agent-sdk/reference/access.md",
              "seen": "2026-10-27"
            },
            {
              "what": "early-alpha migration guide (@cursor/july)",
              "url": "https://cursor.com/docs/agent-sdk/guides/migrate.md",
              "seen": "2026-10-27"
            },
            {
              "what": "troubleshooting",
              "url": "https://cursor.com/docs/agent-sdk/troubleshooting.md",
              "seen": "2026-10-27"
            },
            {
              "what": "evals",
              "url": "https://cursor.com/docs/agent-sdk/evals.md",
              "seen": "2026-10-27"
            },
            {
              "what": "llms.txt",
              "url": "https://cursor.com/llms.txt",
              "seen": "2026-10-27"
            },
            {
              "what": "models and pricing",
              "url": "https://cursor.com/docs/models-and-pricing.md",
              "seen": "2026-10-27"
            },
            {
              "what": "Grok 4.5 model page (prices)",
              "url": "https://cursor.com/docs/models/grok-4-5.md",
              "seen": "2026-10-27"
            },
            {
              "what": "pricing page",
              "url": "https://cursor.com/pricing",
              "seen": "2026-10-27"
            },
            {
              "what": "Cursor SDK TypeScript docs (usage and billing)",
              "url": "https://cursor.com/docs/sdk/typescript.md",
              "seen": "2026-10-27"
            },
            {
              "what": "npm registry, @grok/agent-sdk (created 22 October 2026, 0.3.0 on 25 October)",
              "url": "https://registry.npmjs.org/@grok%2fagent-sdk",
              "seen": "2026-10-27"
            },
            {
              "what": "npm registry, @cursor/bdk (from 22 September 2026)",
              "url": "https://registry.npmjs.org/@cursor%2fbdk",
              "seen": "2026-10-27"
            },
            {
              "what": "npm registry, @cursor/july (from 15 July 2026)",
              "url": "https://registry.npmjs.org/@cursor%2fjuly",
              "seen": "2026-10-27"
            },
            {
              "what": "npm registry, @cursor/agent-sdk (404)",
              "url": "https://registry.npmjs.org/@cursor%2fagent-sdk",
              "seen": "2026-10-27"
            },
            {
              "what": "package tarball 0.3.0 (LICENSE.md, CHANGELOG.md, postinstall script, type declarations), integrity checked",
              "url": "https://registry.npmjs.org/@grok/agent-sdk/-/agent-sdk-0.3.0.tgz",
              "seen": "2026-10-27"
            },
            {
              "what": "terms of service (3 September 2026)",
              "url": "https://cursor.com/terms-of-service",
              "seen": "2026-10-27"
            },
            {
              "what": "privacy policy (11 October 2026)",
              "url": "https://cursor.com/privacy",
              "seen": "2026-10-27"
            },
            {
              "what": "data use (3 September 2026)",
              "url": "https://cursor.com/data-use",
              "seen": "2026-10-27"
            },
            {
              "what": "security page (25 August 2026)",
              "url": "https://cursor.com/security",
              "seen": "2026-10-27"
            },
            {
              "what": "security.txt",
              "url": "https://cursor.com/.well-known/security.txt",
              "seen": "2026-10-27"
            },
            {
              "what": "repository named by the package (README and SECURITY.md only), shallow clone",
              "url": "https://github.com/cursor/cursor",
              "seen": "2026-10-27"
            },
            {
              "what": "OSV query for the three package names (no advisories)",
              "url": "https://api.osv.dev/v1/query",
              "seen": "2026-10-27"
            },
            {
              "what": "RDAP for cursor.com",
              "url": "https://rdap.verisign.com/com/v1/domain/cursor.com",
              "seen": "2026-10-27"
            }
          ],
          "openQuestions": [
            "Possible deduction left to landing. The changelog post of 20 October 2026 tells readers to run `npx @cursor/agent-sdk init`, and the npm registry answered 404 for @cursor/agent-sdk on 27 October. The docs install @grok/agent-sdk, which didn't exist until 22 October. Because the @cursor scope is Cursor's own, nobody else can publish the name, so we recorded it as a documentation error and didn't deduct",
            "The GA date differs between sources. The changelog post is dated 20 October 2026 and says generally available today, the docs changelog labels 0.3.0 the GA release on 23 October, and npm published 0.3.0 on 25 October",
            "firstReleased is 2026-07-15, the first @cursor/july version on npm, which the migration guide names as the early-alpha package. Whether that alpha was open to every Cursor account wasn't established",
            "unchecked: status.cursor.com, whose robots.txt answered with a Cloudflare challenge, so no component or incident history for Agent SDK hosting was read",
            "unchecked: Cursor's GitHub security advisories page, since GitHub's web pages and API weren't reachable from this session. OSV shows no advisory for the three package names",
            "Which Cursor plans include the Agent SDK and managed hosting, and what hosting costs, weren't found on the pricing page or in the docs",
            "npm weekly downloads weren't recorded, because the downloads API returned a stale range (25 June to 1 July 2026)",
            "The Cursor SDK (@cursor/sdk, from 26 April 2026), the harness this package runs on, isn't listed and wasn't graded here"
          ]
        },
        "negative": 0,
        "verdict": "An agent-as-code framework with typed tools, declared read and write effects that drive retries and dry runs, an approval gate per tool and evals that assert on tool calls. It's closed source, every model turn runs through Cursor's backend on a Cursor plan, local sandboxing is off by default, and the changelog has two entries.",
        "bestFor": "Teams already on Cursor who want version-controlled agents for pull request review, triage and Slack, with evals in CI and one-command hosting.",
        "strengths": [
          "Tools declare a read, write or idempotent effect. Only reads and idempotent calls retry, and dry-run sessions stub writes",
          "`needsApproval` on a tool parks the call until a person approves, and `ctx.approvedBy` records who did",
          "Evals assert which tools ran, with what input, and the reply's shape, and `github replay` turns a real pull request into signed test deliveries",
          "Every page has a Markdown twin listed in cursor.com/llms.txt, and the package ships the same docs and an llms.txt",
          "Sessions keep a record of every message and tool call, and OpenTelemetry export stays off until an endpoint is set"
        ],
        "weaknesses": [
          "Closed source under Cursor's terms, with no public repository, CI or issue tracker",
          "Every model turn runs through Cursor's backend with a Cursor credential, including on a self-hosted server",
          "Local sandboxing is off by default, so shell commands auto-approve with the host's credentials",
          "The changelog has two entries, 0.2.29 and 0.3.0, both dated 23 October 2026. The 27 earlier @cursor/bdk versions have none",
          "The launch post's install command names a package that doesn't exist on npm"
        ],
        "agentNotes": [
          "Install `@grok/agent-sdk`, not `@cursor/agent-sdk` from the launch post. That name answers 404 on npm",
          "Set `local.sandbox` before a turn reads webhook payloads, pull request diffs or chat. Without it shell commands auto-approve with the host's credentials",
          "Give every tool an `effect`. A tool without one counts as a write, runs once and is stubbed in dry runs",
          "Start `agent-sdk serve` with `--bearer-token` on any shared host. `--allow-anonymous` admits every caller as one principal",
          "Delete bot/hooks/memory.ts when sessions serve different people. The journal shares each turn's message and result with later turns"
        ],
        "metrics": {
          "kind": "library",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.6",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.6
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 74,
          "payments": 30,
          "reliability": 45,
          "schema": 82,
          "security": 68,
          "transparency": 49
        },
        "provenanceScore": 91,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-27",
            "maintenance": "2026-10-27",
            "payments": "2026-10-27",
            "reliability": "2026-10-27",
            "schema": "2026-10-27",
            "security": "2026-10-27",
            "transparency": "2026-10-27"
          },
          "last": "2026-10-27",
          "oldest": "2026-10-27",
          "stale": false,
          "staleAfterDays": 90
        },
        "scoreHistory": [
          {
            "date": "2026-10-27",
            "grade": "B",
            "kind": "listed",
            "method": "0.6",
            "score": 63.6
          }
        ]
      },
      "connect": {
        "install": "npm install --global @grok/agent-sdk",
        "headless": {
          "run": "agent-sdk run --dir . --message \"Introduce yourself in one sentence.\""
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/cursor-agent-sdk"
      },
      "sameCompany": [
        "cursor-cli",
        "grok-bot"
      ],
      "notable": [
        "Cursor's changelog post of 20 October 2026 says the Agent SDK is generally available today. The docs changelog labels 0.3.0 the GA release on 23 October, and npm published 0.3.0 on 25 October (https://cursor.com/changelog/agent-sdk, https://cursor.com/docs/agent-sdk/changelog)",
        "The changelog post's install command, `npx @cursor/agent-sdk init`, names a package npm answers 404 for on 27 October 2026. The docs install `@grok/agent-sdk`, first published on 22 October (https://registry.npmjs.org/@grok%2fagent-sdk)",
        "The same build goes out under three npm names. `@cursor/july` (early alpha, from 15 July 2026), `@cursor/bdk` (from 22 September) and `@grok/agent-sdk` all carry 0.3.0, with maintainers at anysphere.co and x.ai (https://registry.npmjs.org/@cursor%2fjuly)",
        "Local sandboxing is off by default, so shell commands auto-approve and inherit the serve process's environment, and the file tools can reach any path the process can (https://cursor.com/docs/agent-sdk/reference/agent-config.md)",
        "Install runs a postinstall script that copies the bundled coding-agent skills into ~/.cursor/skills/agent-sdk (scripts/install-cursor-skills.mjs in the 0.3.0 tarball)",
        "A different product from Cursor CLI (cursor-cli), Cursor's coding agent in the terminal. This one builds and deploys your own agents"
      ],
      "area": "frameworks",
      "details": [
        {
          "label": "Surface listed",
          "value": "The npm package @grok/agent-sdk 0.3.0 and its `agent-sdk` CLI, read from the docs and the published tarball on 27 October 2026. Not installed or run"
        },
        {
          "label": "Language",
          "value": "TypeScript on Node 22.13 or newer, never Bun. Tools take Zod or plain JSON Schema inputs"
        },
        {
          "label": "Project",
          "value": "bot/ holds agent.ts, instructions.md, tools/, skills/, mcp-connections/, host-connections/, subagents/, extensions/, channels/, hooks/, schedules/ and reminders/, with evals/ beside it"
        },
        {
          "label": "Models",
          "value": "Cursor models through the Cursor backend. Default grok-4.5 with effort high and Fast on. Third-party models at list price on Premium and above"
        },
        {
          "label": "Runs on",
          "value": "`agent-sdk serve` on your own host (`127.0.0.1:3000` by default), or `agent-sdk deploy` of a pushed Git ref to Cursor-managed hosting with an egress allowlist and named secrets"
        },
        {
          "label": "MCP client",
          "value": "Remote HTTP, local stdio, the Cursor account's dashboard connectors, and peer agents by slug, with allow and deny lists and a read-only filter"
        },
        {
          "label": "Multi-agent",
          "value": "Subagents started by the `task` tool, and peer agents reached through their `ask`, `check` and `call_tool` tools"
        },
        {
          "label": "Durable state",
          "value": "Sessions, a key-value store and files survive restarts and redeploys. Follow-ups on a pull request or Slack thread resume the same session"
        },
        {
          "label": "Human approval",
          "value": "`needsApproval` parks a tool call until a person approves or denies it. Dry-run sessions run reads and stub writes"
        },
        {
          "label": "Channels",
          "value": "GitHub, GitLab and Bitbucket events, Slack mentions and DMs, PagerDuty, signed webhooks from any provider, and cron schedules"
        },
        {
          "label": "Telemetry",
          "value": "OpenTelemetry export only when an OTEL endpoint is set, with prompt text and tool payloads behind separate flags. A daily npm version check, off with AGENT_SERVE_NO_UPDATE_CHECK"
        },
        {
          "label": "Hosting limits",
          "value": "Where Cursor caps a team, 20 deployments and 100 deploys in 24 hours by default. A deploy can answer 503 with Retry-After"
        },
        {
          "label": "Package names",
          "value": "@grok/agent-sdk in the docs. @cursor/bdk and the early-alpha @cursor/july publish the same 0.3.0"
        },
        {
          "label": "Not to confuse with",
          "value": "Cursor CLI (cursor-cli), the terminal coding agent, and the Cursor SDK (@cursor/sdk), the harness this package runs on"
        }
      ],
      "unitPrices": [
        {
          "item": "Grok 4.5 Fast (the default model) input, beyond the weekly pool",
          "unit": "1m-tokens",
          "usd": 4,
          "note": "cache reads $1"
        },
        {
          "item": "Grok 4.5 Fast (the default model) output, beyond the weekly pool",
          "unit": "1m-tokens",
          "usd": 18
        },
        {
          "item": "Grok 4.5 input, Fast off, beyond the weekly pool",
          "unit": "1m-tokens",
          "usd": 2,
          "note": "cache reads $0.50"
        },
        {
          "item": "Grok 4.5 output, Fast off, beyond the weekly pool",
          "unit": "1m-tokens",
          "usd": 6
        },
        {
          "item": "Premium plan (first plan with Cloud Agents and third-party models)",
          "unit": "month",
          "usd": 30
        }
      ],
      "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/docs/agent-sdk/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-27",
        "notes": [
          "The package's LICENSE.md and the site footer name Anysphere, Inc. The terms of service are dated 3 September 2026 and the privacy policy 11 October 2026.",
          "RDAP (Verisign) gives cursor.com a registration date of 1995-12-20.",
          "cursor.com/.well-known/security.txt has a Contact line pointing to github.com/getcursor/cursor/security and a secondary email, and no Expires line. The site's tracker reads a file with a Contact and no Expires as valid, as on the Cursor CLI listing.",
          "The footer links status.cursor.com. Its robots.txt answered with a Cloudflare challenge on 27 October 2026, so the status page wasn't read.",
          "The npm package's repository field points to github.com/cursor/cursor, which holds only a README and SECURITY.md."
        ],
        "score": 91,
        "checks": [
          {
            "check": "Legal entity named",
            "value": "Anysphere, Inc.",
            "points": 20,
            "max": 20,
            "state": "ok"
          },
          {
            "check": "Domain age",
            "value": "cursor.com, registered 1995-12-20 (30 years)",
            "points": 15,
            "max": 15,
            "state": "ok"
          },
          {
            "check": "Endpoint on the vendor's domain",
            "value": "no hosted endpoint",
            "points": 0,
            "max": 0,
            "state": "na"
          },
          {
            "check": "Terms of service",
            "value": "read, states 6 of the 7 things a reader expects, and has 3 clauses that cost points",
            "points": 3.1,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Privacy policy",
            "value": "read, states 7 of the 8 things a reader expects",
            "points": 9.3,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Status page",
            "value": "status.cursor.com",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "Changelog",
            "value": "published",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "security.txt",
            "value": "valid",
            "points": 10,
            "max": 10,
            "state": "ok"
          }
        ],
        "policies": [
          {
            "kind": "terms",
            "url": "https://cursor.com/terms-of-service",
            "state": "read",
            "readAt": "2026-10-08",
            "statedDate": "2026-09-03",
            "words": 10079,
            "points": 3.1,
            "max": 10,
            "expected": [
              {
                "key": "terms.date",
                "label": "Gives the date it was last updated",
                "found": true,
                "quote": "Last updated September 3, 2026",
                "says": "Last updated 2026-09-03"
              },
              {
                "key": "terms.law",
                "label": "Names the governing law or courts",
                "found": true,
                "quote": "Unless prohibited by your country’s applicable law, the laws of the State of Texas, excluding its choice of law provisions, will govern these Terms and any dispute that arises between you and Anysphere, notwithstanding any other agreement between you and us to the contrary.",
                "says": "The law of the State of Texas"
              },
              {
                "key": "terms.liability",
                "label": "States a limit on its liability",
                "found": true,
                "quote": "…OUT OF OR RELATING TO THESE TERMS, THE SERVICE, AND CONTENT, WHETHER IN CONTRACT, TORT, OR OTHERWISE, IS LIMITED TO THE GREATER OF: (A) THE AMOUNT YOU HAVE PAID TO ANYSPHERE FOR ACCESS TO AND USE OF THE SERVICE IN THE SIX (6) MONTHS PRIOR TO THE EVENT OR CIRCUMSTANCE GIVING RISE TO THE CLAIM OR, IF GREATER, (B) $100.",
                "says": "Capped at the greater of $100 and the fees paid in the 6 months before the claim"
              },
              {
                "key": "terms.termination",
                "label": "Says how the agreement or account can be ended",
                "found": true,
                "quote": "Anysphere may suspend or terminate access to the Service, including fee-based portions of the Service, for any account for which any amount is due but unpaid."
              },
              {
                "key": "terms.changes",
                "label": "Says how changes to the terms are announced",
                "found": true,
                "quote": "If we make any material modifications, we will notify you by updating the date at the top of these Terms and by maintaining a current version of these Terms on this page.",
                "says": "Says it gives notice of a change"
              },
              {
                "key": "terms.use",
                "label": "Lists what users may not do",
                "found": true,
                "quote": "Except and solely to the extent such a restriction is impermissible under applicable law, you may not: (i) reverse engineer, disassemble, decompile, decode, or otherwise attempt to derive or gain access to the source code, object code or underlying structure of the Service;"
              },
              {
                "key": "terms.sla",
                "label": "Refers to a service level or uptime commitment",
                "found": false
              }
            ],
            "toKnow": [
              {
                "key": "terms.automated",
                "label": "Restricts automated access",
                "found": true,
                "quote": "(viii) harvest, scrape, or extract data from the Service;",
                "costsPoints": true
              },
              {
                "key": "terms.benchmark",
                "label": "Restricts benchmarking or competitive use",
                "found": true,
                "quote": "(vii) provide to any third party the results of any benchmark tests of the Service, unless you include all necessary information for others to replicate the tests;",
                "costsPoints": true
              },
              {
                "key": "terms.nonotice",
                "label": "Says the terms or the service can change without notice",
                "found": true,
                "quote": "We reserve the right to modify, suspend, or discontinue the Services or your access to the Services, in whole or in part, at any time without notice to you.",
                "costsPoints": true
              },
              {
                "key": "terms.cutoff",
                "label": "Says access can be ended without notice or for any reason",
                "found": true,
                "quote": "We reserve the right to modify, suspend, or discontinue the Services or your access to the Services, in whole or in part, at any time without notice to you."
              },
              {
                "key": "terms.arbitration",
                "label": "Requires arbitration or waives class actions",
                "found": true,
                "quote": "YOU AND ANYSPHERE AGREE THAT EACH OF US MAY BRING CLAIMS AGAINST THE OTHER ONLY ON AN INDIVIDUAL BASIS AND NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED CLASS OR REPRESENTATIVE ACTION OR PROCEEDING."
              }
            ],
            "notes": [
              {
                "date": "2026-10-08",
                "text": "A user who enables automatic code execution assumes all risks of running the generated code, including system outages, software defects, data loss and security vulnerabilities.",
                "quote": "By enabling this feature, you acknowledge and agree that you are assuming all risks associated with the execution of automatically generated code, including without limitation system outages, software defects, data loss, and security vulnerabilities."
              },
              {
                "date": "2026-10-08",
                "text": "Liability is capped at the greater of the amount paid in the six months before the claim or 100 US dollars.",
                "quote": "IS LIMITED TO THE GREATER OF: (A) THE AMOUNT YOU HAVE PAID TO ANYSPHERE FOR ACCESS TO AND USE OF THE SERVICE IN THE SIX (6) MONTHS PRIOR TO THE EVENT OR CIRCUMSTANCE GIVING RISE TO THE CLAIM OR, IF GREATER, (B) $100."
              },
              {
                "date": "2026-10-08",
                "text": "When the terms, a subscription or access to the service ends, Anysphere may delete any content or other data associated with the account.",
                "quote": "Upon termination of these Terms, a Subscription Service, or your access to the Service, we may at our option delete any Content or other data associated with your account."
              }
            ]
          },
          {
            "kind": "privacy",
            "url": "https://cursor.com/privacy",
            "state": "read",
            "readAt": "2026-10-08",
            "statedDate": "2026-09-29",
            "words": 4956,
            "points": 9.3,
            "max": 10,
            "expected": [
              {
                "key": "privacy.date",
                "label": "Gives the date it was last updated",
                "found": true,
                "quote": "Last updated September 29, 2026",
                "says": "Last updated 2026-09-29"
              },
              {
                "key": "privacy.collected",
                "label": "Says what personal data is collected",
                "found": true,
                "quote": "Note: For information about how we collect and use training information to develop our models that power the Service, and your choices with respect to that information, please see our Privacy Overview."
              },
              {
                "key": "privacy.retention",
                "label": "Says how long data is kept",
                "found": true,
                "quote": "The appropriate retention period varies depending on the purpose for which the personal data was collected, its sensitivity, potential risks associated with its use or exposure, and any applicable legal requirements."
              },
              {
                "key": "privacy.processors",
                "label": "Says who else receives the data",
                "found": true,
                "quote": "We and our service providers utilize cookies, pixels, scripts, or similar technologies to operate and manage the Service and improve your experience."
              },
              {
                "key": "privacy.sale",
                "label": "Says whether personal data is sold or shared for advertising",
                "found": false
              },
              {
                "key": "privacy.rights",
                "label": "Says what rights people have over their data",
                "found": true,
                "quote": "These may include the right to access, delete, correct, or transfer your personal data;"
              },
              {
                "key": "privacy.contact",
                "label": "Gives a privacy contact",
                "found": true,
                "quote": "We encourage you to contact us at hi@cursor.com if you have any questions about this Privacy Policy.",
                "says": "hi@cursor.com"
              },
              {
                "key": "privacy.transfers",
                "label": "Says where data is transferred or stored",
                "found": true,
                "quote": "For users in the European Economic Area, (“EEA”), when you access our Service, your personal data may be transferred to our United States servers to other countries outside the EEA and the UK.",
                "says": "Data goes to the United States"
              }
            ],
            "notes": [
              {
                "date": "2026-10-08",
                "text": "Inputs and suggestions are not used for model training unless they are flagged for security review, reported by the user or explicitly agreed to.",
                "quote": "We do not use Inputs or Suggestions to train our models, or permit third parties to use them for training, unless: (1) they are flagged for security review (in which case we may analyze them to improve our ability to detect and enforce our Terms of Service), (2) you explicitly report them to us"
              },
              {
                "date": "2026-10-08",
                "text": "The policy does not apply where Anysphere processes personal data as a data processor for commercial customers, such as an account an employer set up.",
                "quote": "Please note that this Privacy Policy does not apply where Anysphere acts as a data processor and processes personal data on behalf of commercial customers using our commercial services, for example, if your employer has provisioned a Cursor account for you to use at work."
              }
            ]
          }
        ]
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cursor-agent-sdk.json",
      "live": {
        "slug": "cursor-agent-sdk",
        "vendorStatus": {
          "page": "https://status.cursor.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-27T15:14:26.800557415Z"
        },
        "llmsTxt": {
          "url": "https://cursor.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-27T14:57:46.410898693Z"
        },
        "updatedAt": "2026-10-27T15:14:26.800557415Z"
      }
    },
    "verify": {
      "accepts": "a page on cursor.com or one of its subdomains",
      "badgeUrl": "https://www.anchorterminal.com/badges/cursor-agent-sdk.svg",
      "body": {
        "slug": "cursor-agent-sdk",
        "url": "the page with the badge or the link"
      },
      "docs": "https://www.anchorterminal.com/builders/#verify",
      "effect": "none, it never changes a grade, rank or review",
      "endpoint": "https://www.anchorterminal.com/api/v1/verify",
      "listingUrl": "https://www.anchorterminal.com/tools/cursor-agent-sdk",
      "mcpTool": "verify_listing",
      "recheck": "weekly; two failed checks in a row and it lapses, a later pass restores it",
      "snippets": {
        "html": "\u003ca href=\"https://www.anchorterminal.com/tools/cursor-agent-sdk\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/cursor-agent-sdk.svg\" alt=\"Cursor Agent SDK on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e",
        "markdown": "[![Cursor Agent SDK on Anchor Terminal](https://www.anchorterminal.com/badges/cursor-agent-sdk.svg)](https://www.anchorterminal.com/tools/cursor-agent-sdk)",
        "link": "\u003ca href=\"https://www.anchorterminal.com/tools/cursor-agent-sdk\"\u003eCursor Agent SDK on Anchor Terminal\u003c/a\u003e"
      }
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/cursor-agent-sdk",
    "json": "https://www.anchorterminal.com/tools/cursor-agent-sdk.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/cursor-agent-sdk.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "pricing": "https://www.anchorterminal.com/tools/cursor-agent-sdk#pricing",
    "reviews": "https://www.anchorterminal.com/tools/cursor-agent-sdk#reviews",
    "slim": "https://www.anchorterminal.com/tools/cursor-agent-sdk.min.md"
  },
  "markdown": "## Overview\n\n**Grade B · 63.6/100 · rank #443 of 1217 · #12 in Agent frameworks \u0026 SDKs · not agent-ready · confidence medium**\n\n\nMore from Cursor, listed separately because each is its own product: [Cursor CLI](https://www.anchorterminal.com/tools/cursor-cli.md) (Agent harnesses), [Grok Bot](https://www.anchorterminal.com/tools/grok-bot.md) (Personal assistants).\n\n## Assessment\n\nAn agent-as-code framework with typed tools, declared read and write effects that drive retries and dry runs, an approval gate per tool and evals that assert on tool calls. It's closed source, every model turn runs through Cursor's backend on a Cursor plan, local sandboxing is off by default, and the changelog has two entries.\n\n## Facts\n\n| Field | Value |\n| --- | --- |\n| Vendor | Cursor (https://cursor.com/docs/agent-sdk) |\n| Kind | Agent framework |\n| Category | Agent frameworks \u0026 SDKs (https://www.anchorterminal.com/categories/frameworks) |\n| Auth | OAuth or key · Model turns need a Cursor credential. `agent-sdk login` opens a browser sign-in and stores the key it creates, or pass a user API key from the dashboard or a team service-account key as `--api-key`, `CURSOR_API_KEY`, `CURSOR_API_KEY_FILE` or `CURSOR_SERVICE_ACCOUNT_KEY`. `logout` doesn't revoke the key. Direct tool calls without a model turn need no Cursor key. A self-hosted server is protected with `--bearer-token`, and a deployment's routes with an alias token. |\n| Pricing | Your plan (Your plan) · The package is free to install. Model turns draw on the Cursor plan of the key's owner, Free ($0, limited agent requests) to Ultra ($200 a month), and beyond the weekly pool the default model, Grok 4.5 with Fast on, is $4 per million input tokens and $18 per million output tokens. No price for Cursor-managed hosting and no statement of which plans include the Agent SDK were found (checked 2026-10-27). |\n| x402 | No · No x402, MPP or L402 in the Agent SDK docs, the npm package or the pricing page (checked 2026-10-27). |\n| Licence | Proprietary. The package's LICENSE.md reads \"© Anysphere Inc. All rights reserved\", with use subject to Cursor's Terms of Service (updated 3 September 2026). No source repository is published |\n| Packages | npm: `@grok/agent-sdk` |\n| Docs | https://cursor.com/docs/agent-sdk |\n| llms.txt | https://cursor.com/llms.txt |\n| Last release | 2026-10-25 |\n| Surface listed | The npm package @grok/agent-sdk 0.3.0 and its `agent-sdk` CLI, read from the docs and the published tarball on 27 October 2026. Not installed or run |\n| Language | TypeScript on Node 22.13 or newer, never Bun. Tools take Zod or plain JSON Schema inputs |\n| Project | bot/ holds agent.ts, instructions.md, tools/, skills/, mcp-connections/, host-connections/, subagents/, extensions/, channels/, hooks/, schedules/ and reminders/, with evals/ beside it |\n| Models | Cursor models through the Cursor backend. Default grok-4.5 with effort high and Fast on. Third-party models at list price on Premium and above |\n| Runs on | `agent-sdk serve` on your own host (`127.0.0.1:3000` by default), or `agent-sdk deploy` of a pushed Git ref to Cursor-managed hosting with an egress allowlist and named secrets |\n| MCP client | Remote HTTP, local stdio, the Cursor account's dashboard connectors, and peer agents by slug, with allow and deny lists and a read-only filter |\n| Multi-agent | Subagents started by the `task` tool, and peer agents reached through their `ask`, `check` and `call_tool` tools |\n| Durable state | Sessions, a key-value store and files survive restarts and redeploys. Follow-ups on a pull request or Slack thread resume the same session |\n| Human approval | `needsApproval` parks a tool call until a person approves or denies it. Dry-run sessions run reads and stub writes |\n| Channels | GitHub, GitLab and Bitbucket events, Slack mentions and DMs, PagerDuty, signed webhooks from any provider, and cron schedules |\n| Telemetry | OpenTelemetry export only when an OTEL endpoint is set, with prompt text and tool payloads behind separate flags. A daily npm version check, off with AGENT_SERVE_NO_UPDATE_CHECK |\n| Hosting limits | Where Cursor caps a team, 20 deployments and 100 deploys in 24 hours by default. A deploy can answer 503 with Retry-After |\n| Package names | @grok/agent-sdk in the docs. @cursor/bdk and the early-alpha @cursor/july publish the same 0.3.0 |\n| Not to confuse with | Cursor CLI (cursor-cli), the terminal coding agent, and the Cursor SDK (@cursor/sdk), the harness this package runs on |\n| Capabilities | agent.framework, agent.mcp-client, agent.durable, agent.multi-agent, obs.evals |\n| Tags | official, framework, typescript, closed-source, mcp, llms-txt, pre-1.0, self-hosted, hosted, new |\n| JSON | https://www.anchorterminal.com/api/v1/tools/cursor-agent-sdk.json |\n\n## Score breakdown (methodology v0.6, October 2026 research run)\n\nAssessed 2026-10-27 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. \"This run\" is each category's share of the 100 points.\n\n| Category | Weight | This run | Score (0–100) | Points |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% | 20 | 45 | 9.0 |\n| Performance | 10% | pending | pending | n/a |\n| Schema \u0026 documentation | 13% | 16.2 | 82 | 13.3 |\n| Agent ergonomics | 13% | 16.2 | 80 | 13.0 |\n| Security \u0026 auth | 14% | 17.5 | 68 | 11.9 |\n| Payments \u0026 pricing | 10% | 12.5 | 30 | 3.8 |\n| Task success | 10% | pending | pending | n/a |\n| Maintenance \u0026 community | 7% | 8.8 | 74 | 6.5 |\n| Transparency \u0026 trust (editorial 49, provenance 91) | 7% | 8.8 | 70 | 6.1 |\n| Negative events | up to −15 | up to −15 | none recorded | 0 |\n| **Total** | | | | **63.6 → B** |\n\n### Why each score\n\n- Reliability 45 (checked 2026-10-27): Local-package reading, since the owner runs the framework, with Cursor's hosting as an option. Official npm package with Node 22.13 or newer stated in engines and in the docs, which also say never Bun (20). Closed source, so no public CI or test suite (0). No public issue tracker. github.com/cursor/cursor holds a README and SECURITY.md, and forum.cursor.com has no Agent SDK tag, so there's nothing to count open crashes against. The troubleshooting page lists known failures with fixes (5). A dated changelog of two entries, 0.2.29 and 0.3.0, both 23 October 2026, and 0.3.0 calls out the removed `persistent` option, but the 27 earlier @cursor/bdk versions and 123 @cursor/july versions have no notes, and one build ships under three package names (5). Version 0.3.0, but the changelog post of 20 October says generally available and the docs changelog labels 0.3.0 the GA release, which we read as declared stable (15). 20+0+5+5+15 = 45.\n- Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes.\n- Schema \u0026 documentation 82 (checked 2026-10-27): Framework reading. Typed TypeScript declarations ship in the package, tools take Zod or JSON Schema, `agent-sdk help --json` describes every command's flags and exit codes, and `GET /v1/info` and `GET /v1/tools/:name` return the discovered surface and each tool's schemas. No OpenAPI document for the HTTP routes (20). cursor.com/llms.txt lists every Agent SDK page with a Markdown twin, and the package ships the docs and an llms.txt (10). The overview has a table of when to use the Agent SDK, Automations or Grok Bot, and the hooks page has a table of what to use instead of a hook for each job (18). Typed config, `effect` as an enum or predicate, `timeArgs` checked against the input schema, and slug patterns stated (13). Examples on every page, with error tables for direct tool calls, HTTP 401, 403 and 409, the limit error's JSON and seven exit codes (15). A dated changelog, but only two entries, both from 23 October 2026 (6). 20+10+18+13+15+6 = 82.\n- Agent ergonomics 80 (checked 2026-10-27): Framework reading, scored on what it takes to run a tool-calling agent with MCP. One file per tool and one file per MCP connection, `tools` and `disallowedTools` filters with `effects: \"read\"`, and an allowlist for the harness's built-in tools (22). Concurrency caps with queued turns, `--fields`, page tokens and limits on list commands, and a per-session cost view. We found no turn cap or spend cap for a run (12). Built-in routes return `{ ok: false, error }` codes, direct tool calls have documented 400, 404, 409 and 500 codes, and the CLI has seven exit codes (18). Reads and idempotent calls retry up to three times, writes run once, MCP readOnlyHint and idempotentHint decide retries for connection tools, and dry-run sessions stub writes (20). `agent-sdk init` scaffolds a working project and every agent field is optional, but the framework is TypeScript only (8). 22+12+18+20+8 = 80.\n- Security \u0026 auth 68 (checked 2026-10-27): Framework reading. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt injection, 15 for audit and 20 for the security programme. Every model turn goes through Cursor's backend with a Cursor credential, even on a self-hosted server, and the data-use page says Cursor may store and train on prompts and code with Privacy Mode off. Managed hosting stores the repository and agent data whatever the Privacy Mode setting. OpenTelemetry export is off until an endpoint is set, with prompt text and tool payloads behind separate flags, and the npm update check has a documented switch. Install copies skills into ~/.cursor/skills (18). `needsApproval` parks a tool call for a person, dry runs stub writes and the harness tools take an allowlist, but `local.sandbox` is off by default, so shell commands auto-approve with the host's environment and file tools reach any path the process can. Hosted deployments enforce an egress allowlist (12). The docs tell you to turn the sandbox on for webhook payloads, diffs and chat, offer HMAC and shared-secret auth on webhook routes, and warn that anyone who can talk to the agent can drive Cursor account connectors. The scaffolded memory journal shares turns across sessions, with an instruction to treat it as untrusted (10). Sessions keep every message and tool call, hooks can mirror them for audit, and `ctx.approvedBy` records the approver (14). security.txt and SECURITY.md with a disclosure address and Cursor's GitHub advisories, no bug bounty found, and no advisory for this package in OSV on 27 October (14). SOC 2 and ISO 27001 aren't scored on the framework reading. 18+12+10+14+14 = 68.\n- Payments \u0026 pricing 30 (checked 2026-10-27): Framework reading of the published rubric. No payment protocol (0). Per-million-token prices for Cursor models, including the default Grok 4.5 with Fast, and plan prices are public, but no price for managed hosting and no statement of which plans cover the Agent SDK were found (15). The package is free and the Free plan needs no card, but its usage is only described as limited agent requests (15). A person signs in through a browser or creates an API key in the dashboard before a model turn runs (0). 0+15+15+0 = 30.\n- Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored.\n- Maintenance \u0026 community 74 (checked 2026-10-27): 0.3.0 on npm on 25 October 2026 (30). Five @grok/agent-sdk versions from 22 to 25 October and 29 @cursor/bdk versions since 22 September (20). Closed product. A public changelog with two entries and a forum with no Agent SDK tag, so we couldn't see replies to SDK reports (8). The npm package is current and official, TypeScript only (12). Dependencies are current releases, but there's no public CI and the same build goes out under three names with a postinstall script (4). 30+20+8+12+4 = 74.\n- Transparency \u0026 trust 70 (checked 2026-10-27): Closed source. LICENSE.md reads All rights reserved, with use under Cursor's Terms of Service of 3 September 2026 (15). The data-use page says Privacy Mode keeps Customer Data out of training with zero-retention agreements at model providers, and that with it off Cursor may store and train on code and prompts. The deployment page says managed hosting stores the repository and agent data the same way under Privacy Mode and refuses Privacy Mode (Legacy). No retention periods are stated, and subprocessors are on a trust portal (14). No deprecation policy. The early-alpha migration guide, the `persistent` removal and the semantic-search removal are documented with error messages but only the changelog entry carries a date (6). OpenTelemetry and the update check are documented with switches. What the Cursor backend logs from turns is covered only by the data-use page (14). 15+14+6+14 = 49.\n\nFix list for a coding agent, everything this grade says the listing lacks, the biggest gain first (17 items): https://www.anchorterminal.com/fixes/cursor-agent-sdk.md (JSON https://www.anchorterminal.com/fixes/cursor-agent-sdk.json)\n\n### What we couldn't check\n\n- Possible deduction left to landing. The changelog post of 20 October 2026 tells readers to run `npx @cursor/agent-sdk init`, and the npm registry answered 404 for @cursor/agent-sdk on 27 October. The docs install @grok/agent-sdk, which didn't exist until 22 October. Because the @cursor scope is Cursor's own, nobody else can publish the name, so we recorded it as a documentation error and didn't deduct\n- The GA date differs between sources. The changelog post is dated 20 October 2026 and says generally available today, the docs changelog labels 0.3.0 the GA release on 23 October, and npm published 0.3.0 on 25 October\n- firstReleased is 2026-07-15, the first @cursor/july version on npm, which the migration guide names as the early-alpha package. Whether that alpha was open to every Cursor account wasn't established\n- unchecked: status.cursor.com, whose robots.txt answered with a Cloudflare challenge, so no component or incident history for Agent SDK hosting was read\n- unchecked: Cursor's GitHub security advisories page, since GitHub's web pages and API weren't reachable from this session. OSV shows no advisory for the three package names\n- Which Cursor plans include the Agent SDK and managed hosting, and what hosting costs, weren't found on the pricing page or in the docs\n- npm weekly downloads weren't recorded, because the downloads API returned a stale range (25 June to 1 July 2026)\n- The Cursor SDK (@cursor/sdk, from 26 April 2026), the harness this package runs on, isn't listed and wasn't graded here\n\n### Sources\n\n- robots.txt for cursor.com: \u003chttps://cursor.com/robots.txt\u003e (seen 2026-10-27)\n- changelog post, Agent SDK, 20 October 2026: \u003chttps://cursor.com/changelog/agent-sdk\u003e (seen 2026-10-27)\n- docs overview (Markdown): \u003chttps://cursor.com/docs/agent-sdk.md\u003e (seen 2026-10-27)\n- docs changelog (0.2.29 and 0.3.0): \u003chttps://cursor.com/docs/agent-sdk/changelog.md\u003e (seen 2026-10-27)\n- quickstart: \u003chttps://cursor.com/docs/agent-sdk/quickstart.md\u003e (seen 2026-10-27)\n- deployment, Privacy Mode, egress, secrets and self-hosting: \u003chttps://cursor.com/docs/agent-sdk/deployment.md\u003e (seen 2026-10-27)\n- agent config, model default, sandbox default, harness tool allowlist: \u003chttps://cursor.com/docs/agent-sdk/reference/agent-config.md\u003e (seen 2026-10-27)\n- tools, effects, retries, direct calls and error codes: \u003chttps://cursor.com/docs/agent-sdk/reference/tools.md\u003e (seen 2026-10-27)\n- MCP connections: \u003chttps://cursor.com/docs/agent-sdk/reference/connections.md\u003e (seen 2026-10-27)\n- hooks: \u003chttps://cursor.com/docs/agent-sdk/reference/hooks.md\u003e (seen 2026-10-27)\n- memory journal: \u003chttps://cursor.com/docs/agent-sdk/reference/memory.md\u003e (seen 2026-10-27)\n- CLI reference, serve auth, credentials, environment variables and exit codes: \u003chttps://cursor.com/docs/agent-sdk/reference/cli.md\u003e (seen 2026-10-27)\n- HTTP API reference: \u003chttps://cursor.com/docs/agent-sdk/reference/http-api.md\u003e (seen 2026-10-27)\n- OpenTelemetry guide: \u003chttps://cursor.com/docs/agent-sdk/guides/opentelemetry.md\u003e (seen 2026-10-27)\n- limits: \u003chttps://cursor.com/docs/agent-sdk/reference/limits.md\u003e (seen 2026-10-27)\n- access roles: \u003chttps://cursor.com/docs/agent-sdk/reference/access.md\u003e (seen 2026-10-27)\n- early-alpha migration guide (@cursor/july): \u003chttps://cursor.com/docs/agent-sdk/guides/migrate.md\u003e (seen 2026-10-27)\n- troubleshooting: \u003chttps://cursor.com/docs/agent-sdk/troubleshooting.md\u003e (seen 2026-10-27)\n- evals: \u003chttps://cursor.com/docs/agent-sdk/evals.md\u003e (seen 2026-10-27)\n- llms.txt: \u003chttps://cursor.com/llms.txt\u003e (seen 2026-10-27)\n- models and pricing: \u003chttps://cursor.com/docs/models-and-pricing.md\u003e (seen 2026-10-27)\n- Grok 4.5 model page (prices): \u003chttps://cursor.com/docs/models/grok-4-5.md\u003e (seen 2026-10-27)\n- pricing page: \u003chttps://cursor.com/pricing\u003e (seen 2026-10-27)\n- Cursor SDK TypeScript docs (usage and billing): \u003chttps://cursor.com/docs/sdk/typescript.md\u003e (seen 2026-10-27)\n- npm registry, @grok/agent-sdk (created 22 October 2026, 0.3.0 on 25 October): \u003chttps://registry.npmjs.org/@grok%2fagent-sdk\u003e (seen 2026-10-27)\n- npm registry, @cursor/bdk (from 22 September 2026): \u003chttps://registry.npmjs.org/@cursor%2fbdk\u003e (seen 2026-10-27)\n- npm registry, @cursor/july (from 15 July 2026): \u003chttps://registry.npmjs.org/@cursor%2fjuly\u003e (seen 2026-10-27)\n- npm registry, @cursor/agent-sdk (404): \u003chttps://registry.npmjs.org/@cursor%2fagent-sdk\u003e (seen 2026-10-27)\n- package tarball 0.3.0 (LICENSE.md, CHANGELOG.md, postinstall script, type declarations), integrity checked: \u003chttps://registry.npmjs.org/@grok/agent-sdk/-/agent-sdk-0.3.0.tgz\u003e (seen 2026-10-27)\n- terms of service (3 September 2026): \u003chttps://cursor.com/terms-of-service\u003e (seen 2026-10-27)\n- privacy policy (11 October 2026): \u003chttps://cursor.com/privacy\u003e (seen 2026-10-27)\n- data use (3 September 2026): \u003chttps://cursor.com/data-use\u003e (seen 2026-10-27)\n- security page (25 August 2026): \u003chttps://cursor.com/security\u003e (seen 2026-10-27)\n- security.txt: \u003chttps://cursor.com/.well-known/security.txt\u003e (seen 2026-10-27)\n- repository named by the package (README and SECURITY.md only), shallow clone: \u003chttps://github.com/cursor/cursor\u003e (seen 2026-10-27)\n- OSV query for the three package names (no advisories): \u003chttps://api.osv.dev/v1/query\u003e (seen 2026-10-27)\n- RDAP for cursor.com: \u003chttps://rdap.verisign.com/com/v1/domain/cursor.com\u003e (seen 2026-10-27)\n\n## Score history\n\nEvery move of a score since the listing was graded, newest first, with its cause. A score can't move without an entry here. JSON: https://www.anchorterminal.com/api/v1/tools/cursor-agent-sdk/history.json\n\n- 2026-10-27: graded 63.6 B (methodology 0.6)\n\n## Who's behind it (provenance 91/100, checked 2026-10-27)\n\n| Check | Finding | Points |\n| --- | --- | --- |\n| Legal entity named | Anysphere, Inc. | 20/20 |\n| Domain age | cursor.com, registered 1995-12-20 (30 years) | 15/15 |\n| Endpoint on the vendor's domain | no hosted endpoint | n/a |\n| Terms of service | read, states 6 of the 7 things a reader expects, and has 3 clauses that cost points | 3.1/10 |\n| Privacy policy | read, states 7 of the 8 things a reader expects | 9.3/10 |\n| Status page | status.cursor.com | 10/10 |\n| Changelog | published | 10/10 |\n| security.txt | valid | 10/10 |\n\nThe package's LICENSE.md and the site footer name Anysphere, Inc. The terms of service are dated 3 September 2026 and the privacy policy 11 October 2026.\n\nRDAP (Verisign) gives cursor.com a registration date of 1995-12-20.\n\ncursor.com/.well-known/security.txt has a Contact line pointing to github.com/getcursor/cursor/security and a secondary email, and no Expires line. The site's tracker reads a file with a Contact and no Expires as valid, as on the Cursor CLI listing.\n\nThe footer links status.cursor.com. Its robots.txt answered with a Cloudflare challenge on 27 October 2026, so the status page wasn't read.\n\nThe npm package's repository field points to github.com/cursor/cursor, which holds only a README and SECURITY.md.\n\n### Terms and privacy, as read\n\nA reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice.\n\n**Terms of service** (https://cursor.com/terms-of-service), read 2026-10-08, dated 2026-09-03, states 6 of the 7 things a reader expects.\n\n- To know. Restricts automated access (costs points). \"(viii) harvest, scrape, or extract data from the Service;\"\n- To know. Restricts benchmarking or competitive use (costs points). \"(vii) provide to any third party the results of any benchmark tests of the Service, unless you include all necessary information for others to replicate the tests;\"\n- To know. Says the terms or the service can change without notice (costs points). \"We reserve the right to modify, suspend, or discontinue the Services or your access to the Services, in whole or in part, at any time without notice to you.\"\n- To know. Says access can be ended without notice or for any reason. \"We reserve the right to modify, suspend, or discontinue the Services or your access to the Services, in whole or in part, at any time without notice to you.\"\n- To know. Requires arbitration or waives class actions. \"YOU AND ANYSPHERE AGREE THAT EACH OF US MAY BRING CLAIMS AGAINST THE OTHER ONLY ON AN INDIVIDUAL BASIS AND NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED CLASS OR REPRESENTATIVE ACTION OR PROCEEDING.\"\n- Gives the date it was last updated. Last updated 2026-09-03.\n- Names the governing law or courts. The law of the State of Texas.\n- States a limit on its liability. Capped at the greater of $100 and the fees paid in the 6 months before the claim.\n- Says how changes to the terms are announced. Says it gives notice of a change.\n- Not found in the text. Refers to a service level or uptime commitment.\n- Also in the text (2026-10-08). A user who enables automatic code execution assumes all risks of running the generated code, including system outages, software defects, data loss and security vulnerabilities. \"By enabling this feature, you acknowledge and agree that you are assuming all risks associated with the execution of automatically generated code, including without limitation system outages, software defects, data loss, and security vulnerabilities.\"\n- Also in the text (2026-10-08). Liability is capped at the greater of the amount paid in the six months before the claim or 100 US dollars. \"IS LIMITED TO THE GREATER OF: (A) THE AMOUNT YOU HAVE PAID TO ANYSPHERE FOR ACCESS TO AND USE OF THE SERVICE IN THE SIX (6) MONTHS PRIOR TO THE EVENT OR CIRCUMSTANCE GIVING RISE TO THE CLAIM OR, IF GREATER, (B) $100.\"\n- Also in the text (2026-10-08). When the terms, a subscription or access to the service ends, Anysphere may delete any content or other data associated with the account. \"Upon termination of these Terms, a Subscription Service, or your access to the Service, we may at our option delete any Content or other data associated with your account.\"\n\n**Privacy policy** (https://cursor.com/privacy), read 2026-10-08, dated 2026-09-29, states 7 of the 8 things a reader expects.\n\n- Gives the date it was last updated. Last updated 2026-09-29.\n- Not found in the text. Says whether personal data is sold or shared for advertising.\n- Gives a privacy contact. hi@cursor.com.\n- Says where data is transferred or stored. Data goes to the United States.\n- Also in the text (2026-10-08). Inputs and suggestions are not used for model training unless they are flagged for security review, reported by the user or explicitly agreed to. \"We do not use Inputs or Suggestions to train our models, or permit third parties to use them for training, unless: (1) they are flagged for security review (in which case we may analyze them to improve our ability to detect and enforce our Terms of Service), (2) you explicitly report them to us\"\n- Also in the text (2026-10-08). The policy does not apply where Anysphere processes personal data as a data processor for commercial customers, such as an account an employer set up. \"Please note that this Privacy Policy does not apply where Anysphere acts as a data processor and processes personal data on behalf of commercial customers using our commercial services, for example, if your employer has provisioned a Cursor account for you to use at work.\"\n\n## Live (updated 2026-10-27 15:14 UTC)\n\n- Vendor status page: none, All Systems Operational\n- Always current: https://www.anchorterminal.com/api/v1/live/cursor-agent-sdk.json\n\n## Probe metrics\n\nA library has no endpoint to probe. Reliability is assessed from its tests, release history and issue tracker; performance waits for the task suite run through it. See https://www.anchorterminal.com/benchmark/#kinds\n\n## Prices\n\n| Item | Price | Unit | Note |\n| --- | --- | --- | --- |\n| Grok 4.5 Fast (the default model) input, beyond the weekly pool | $4 | per 1M tokens | cache reads $1 |\n| Grok 4.5 Fast (the default model) output, beyond the weekly pool | $18 | per 1M tokens |  |\n| Grok 4.5 input, Fast off, beyond the weekly pool | $2 | per 1M tokens | cache reads $0.50 |\n| Grok 4.5 output, Fast off, beyond the weekly pool | $6 | per 1M tokens |  |\n| Premium plan (first plan with Cloud Agents and third-party models) | $30 | per month (plan) |  |\n\nAcross all listings: https://www.anchorterminal.com/prices/index.md\n\n## Strengths\n\n- Tools declare a read, write or idempotent effect. Only reads and idempotent calls retry, and dry-run sessions stub writes\n- `needsApproval` on a tool parks the call until a person approves, and `ctx.approvedBy` records who did\n- Evals assert which tools ran, with what input, and the reply's shape, and `github replay` turns a real pull request into signed test deliveries\n- Every page has a Markdown twin listed in cursor.com/llms.txt, and the package ships the same docs and an llms.txt\n- Sessions keep a record of every message and tool call, and OpenTelemetry export stays off until an endpoint is set\n\n## Weaknesses\n\n- Closed source under Cursor's terms, with no public repository, CI or issue tracker\n- Every model turn runs through Cursor's backend with a Cursor credential, including on a self-hosted server\n- Local sandboxing is off by default, so shell commands auto-approve with the host's credentials\n- The changelog has two entries, 0.2.29 and 0.3.0, both dated 23 October 2026. The 27 earlier @cursor/bdk versions have none\n- The launch post's install command names a package that doesn't exist on npm\n\n\n\n## Before you call it (notes for agents)\n\n1. Install `@grok/agent-sdk`, not `@cursor/agent-sdk` from the launch post. That name answers 404 on npm\n2. Set `local.sandbox` before a turn reads webhook payloads, pull request diffs or chat. Without it shell commands auto-approve with the host's credentials\n3. Give every tool an `effect`. A tool without one counts as a write, runs once and is stubbed in dry runs\n4. Start `agent-sdk serve` with `--bearer-token` on any shared host. `--allow-anonymous` admits every caller as one principal\n5. Delete bot/hooks/memory.ts when sessions serve different people. The journal shares each turn's message and result with later turns\n\n## Get started\n\nInstall:\n\n```bash\nnpm install --global @grok/agent-sdk\n```\n\nHeadless / CI:\n\n```json\n{\n  \"run\": \"agent-sdk run --dir . --message \\\"Introduce yourself in one sentence.\\\"\"\n}\n```\n\n## Similar tools\n\nRanked by shared capabilities, then score. Same-category tools with no shared capability key are listed last.\n\n| Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown |\n| --- | --- | --- | --- | --- | --- | --- |\n| OpenAI Agents SDK | AA | 86.2 | 1 | agent.framework, agent.multi-agent, agent.durable, agent.mcp-client | no | https://www.anchorterminal.com/tools/openai-agents-sdk.md |\n| Microsoft Agent Framework | A | 82.2 | 5 | agent.framework, agent.multi-agent, agent.durable, agent.mcp-client | no | https://www.anchorterminal.com/tools/microsoft-agent-framework.md |\n| Pydantic AI | A | 81.7 | 6 | agent.framework, agent.multi-agent, agent.durable, agent.mcp-client | no | https://www.anchorterminal.com/tools/pydantic-ai.md |\n| Docker Agent | BB | 76.5 | 40 | agent.framework, agent.multi-agent, agent.mcp-client, agent.durable | no | https://www.anchorterminal.com/tools/docker-agent.md |\n| Agent Development Kit (ADK) | BB | 73.6 | 87 | agent.framework, agent.multi-agent, agent.durable, agent.mcp-client | no | https://www.anchorterminal.com/tools/google-adk.md |\n| Agno | BB | 72.8 | 102 | agent.framework, agent.multi-agent, agent.durable, agent.mcp-client | no | https://www.anchorterminal.com/tools/agno.md |\n\n## Panel reviews (0)\n\nReviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): .\n\nDesk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md\n\n## Notable\n\n- Cursor's changelog post of 20 October 2026 says the Agent SDK is generally available today. The docs changelog labels 0.3.0 the GA release on 23 October, and npm published 0.3.0 on 25 October (source: \u003chttps://cursor.com/changelog/agent-sdk, https://cursor.com/docs/agent-sdk/changelog\u003e)\n- The changelog post's install command, `npx @cursor/agent-sdk init`, names a package npm answers 404 for on 27 October 2026. The docs install `@grok/agent-sdk`, first published on 22 October (source: \u003chttps://registry.npmjs.org/@grok%2fagent-sdk\u003e)\n- The same build goes out under three npm names. `@cursor/july` (early alpha, from 15 July 2026), `@cursor/bdk` (from 22 September) and `@grok/agent-sdk` all carry 0.3.0, with maintainers at anysphere.co and x.ai (source: \u003chttps://registry.npmjs.org/@cursor%2fjuly\u003e)\n- Local sandboxing is off by default, so shell commands auto-approve and inherit the serve process's environment, and the file tools can reach any path the process can (source: \u003chttps://cursor.com/docs/agent-sdk/reference/agent-config.md\u003e)\n- Install runs a postinstall script that copies the bundled coding-agent skills into ~/.cursor/skills/agent-sdk (scripts/install-cursor-skills.mjs in the 0.3.0 tarball)\n- A different product from Cursor CLI (cursor-cli), Cursor's coding agent in the terminal. This one builds and deploys your own agents\n\n- #12 of 14 in Best agent frameworks and SDKs: https://www.anchorterminal.com/best/frameworks/index.md\n- All 78 frameworks comparisons: https://www.anchorterminal.com/compare/frameworks/index.md\n\n## Compare\n\n- [AgentOS vs Cursor Agent SDK](https://www.anchorterminal.com/compare/agentos-vs-cursor-agent-sdk.md): BB 75.4 vs B 63.6\n- [Agno vs Cursor Agent SDK](https://www.anchorterminal.com/compare/agno-vs-cursor-agent-sdk.md): BB 72.8 vs B 63.6\n- [Claude Agent SDK vs Cursor Agent SDK](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-cursor-agent-sdk.md): BB 70.1 vs B 63.6\n- [CrewAI vs Cursor Agent SDK](https://www.anchorterminal.com/compare/crewai-vs-cursor-agent-sdk.md): B 67 vs B 63.6\n- [Cursor Agent SDK vs Docker Agent](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent.md): B 63.6 vs BB 76.5\n- [Cursor Agent SDK vs Agent Development Kit (ADK)](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-google-adk.md): B 63.6 vs BB 73.6\n- [Cursor Agent SDK vs guilds.run](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-guilds-run.md): B 63.6 vs C 56.5\n- [Cursor Agent SDK vs LangGraph](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-langgraph.md): B 63.6 vs BB 70.6\n- [Cursor Agent SDK vs Microsoft Agent Framework](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-microsoft-agent-framework.md): B 63.6 vs A 82.2\n- [Cursor Agent SDK vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-openai-agents-sdk.md): B 63.6 vs AA 86.2\n- [Cursor Agent SDK vs Pydantic AI](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-pydantic-ai.md): B 63.6 vs A 81.7\n- [Cursor Agent SDK vs TradingAgents](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-tradingagents.md): B 63.6 vs B 64.7\n\n## Verify this listing\n\nFor the vendor. The badge or a plain link to this page verifies the listing, from a page on cursor.com or one of its subdomains. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{\"slug\": \"cursor-agent-sdk\", \"url\": \"…\"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify\n\nHTML badge:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/cursor-agent-sdk\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/cursor-agent-sdk.svg\" alt=\"Cursor Agent SDK on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e\n```\n\nMarkdown badge, for a README:\n\n```markdown\n[![Cursor Agent SDK on Anchor Terminal](https://www.anchorterminal.com/badges/cursor-agent-sdk.svg)](https://www.anchorterminal.com/tools/cursor-agent-sdk)\n```\n\nPlain link:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/cursor-agent-sdk\"\u003eCursor Agent SDK on Anchor Terminal\u003c/a\u003e\n```\n\n## Share this listing\n\nFor the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say Cursor Agent SDK is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score.\n\n- Dark: https://www.anchorterminal.com/assets/share/cursor-agent-sdk-dark.png\n- Light: https://www.anchorterminal.com/assets/share/cursor-agent-sdk-light.png\n- Create a video and download its frames: https://www.anchorterminal.com/assets/listing-video/index.html?listing=cursor-agent-sdk\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-27",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.6",
    "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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Agent frameworks \u0026 SDKs",
        "url": "https://www.anchorterminal.com/categories/frameworks"
      },
      {
        "name": "Cursor Agent SDK",
        "url": ""
      }
    ],
    "description": "Cursor's TypeScript framework for defining an agent as a folder of instructions, typed tools, skills, MCP connections and channels, testing it with evals, and running it on your own server or on Cursor's hosting.",
    "facts": [
      "rank #443 of 1217",
      "OAuth or key auth",
      "0 desk reviews"
    ],
    "h1": "Cursor Agent SDK",
    "image": "https://www.anchorterminal.com/assets/og/tools-cursor-agent-sdk.png",
    "path": "/tools/cursor-agent-sdk",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cursor Agent SDK review (2026): pricing, alternatives and grade B",
    "toc": null,
    "updated": "2026-10-27",
    "url": "https://www.anchorterminal.com/tools/cursor-agent-sdk"
  },
  "tokens": {
    "markdown": 8750,
    "slim": 1730
  },
  "version": 1
}
