{
  "data": {
    "a": {
      "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"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-27"
        },
        "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
        }
      },
      "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"
      ],
      "area": "frameworks",
      "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
      },
      "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"
      }
    },
    "answer": "Docker Agent scores 76.5 (BB) on agent readiness against Cursor Agent SDK's 63.6 (B), and leads in every scored category.",
    "b": {
      "slug": "docker-agent",
      "name": "Docker Agent",
      "vendor": "Docker",
      "vendorUrl": "https://docker.github.io/docker-agent/",
      "kind": "framework",
      "category": "frameworks",
      "summary": "Docker's open-source runtime for building and running AI agents from YAML or HCL files, formerly cagent. It runs as a `docker agent` CLI plugin with a terminal UI, headless mode, HTTP, MCP and A2A servers, and a Go library.",
      "url": "https://www.anchorterminal.com/tools/docker-agent",
      "markdownUrl": "https://www.anchorterminal.com/tools/docker-agent.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/docker-agent.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/docker-agent.json",
      "repo": "https://github.com/docker/docker-agent",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "oci",
          "name": "docker/docker-agent"
        },
        {
          "registry": "go",
          "name": "github.com/docker/docker-agent"
        }
      ],
      "auth": "none",
      "authNotes": "No account of its own. Model keys come from provider environment variables, `--env-from-file`, an account login or Docker Model Runner for local models. The servers it starts take an optional Bearer token (`--auth-token`), which HTTP MCP requires on a non-loopback address.",
      "pricing": "free",
      "pricingNotes": "Free and Apache-2.0, with nothing to buy for the CLI. You pay your model provider, or nothing with a local model through Docker Model Runner. Cloud sandboxes need a Docker login and weren't priced in this check.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the README (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 4029,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docker.github.io/docker-agent/",
      "llmsTxt": "https://docker.github.io/docker-agent/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.multi-agent",
        "agent.mcp-client",
        "agent.durable"
      ],
      "tags": [
        "framework",
        "open-source",
        "go",
        "local",
        "free",
        "no-card",
        "llms-txt",
        "docker"
      ],
      "lastRelease": "2026-10-09",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 76.5,
        "grade": "BB",
        "agentReady": true,
        "rank": 40,
        "ranked": true,
        "rankOf": 1217,
        "categoryRank": 4,
        "methodology": "0.6",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 81,
          "maintenance": 96,
          "payments": 60,
          "reliability": 88,
          "schema": 90,
          "security": 70,
          "transparency": 80
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-17"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-09-01. GHSA-8f6v-26r8-3r4h (high). `read_skill` was treated as read-only and could be auto-approved, yet it ran shell commands embedded in local skill files, so opening a repository that ships skills could run commands without a prompt. Affects 1.32.5 up to 1.130.0. Fixed in 1.130.0 and published, inside six months, -2. https://github.com/docker/docker-agent/security/advisories/GHSA-8f6v-26r8-3r4h",
          "2026-08-20. GHSA-f2g7-cxrq-x54m (high). `docker agent serve a2a` created unattended sessions with tool approval disabled, so a client that could reach the endpoint could run tools without approval. The listener binds to loopback by default. Affects 1.8.2 up to 1.126.0. Fixed in 1.126.0 and published, inside six months, -2. https://github.com/docker/docker-agent/security/advisories/GHSA-f2g7-cxrq-x54m"
        ],
        "verdict": "An agent with an MCP server is eight lines of YAML, and the same file runs in a terminal, headless, or as an HTTP, MCP or A2A server. Usage telemetry is on by default and can carry prompts passed as command arguments, and two high-severity approval bypasses were fixed in August and September 2026.",
        "bestFor": "Teams already on Docker who want agents defined in a file, shared through an OCI registry and run the same way in a terminal, in CI or behind an HTTP, MCP or A2A server.",
        "strengths": [
          "An agent with one MCP server is eight lines of YAML, with a published JSON Schema for the config",
          "Four safety modes, allow, ask and deny rules, and a `--sandbox` flag that runs the agent in a Docker Sandboxes VM",
          "Headless `run --exec` with NDJSON events, structured output, and budgets for cost, tokens and time",
          "The same config runs as an HTTP API, an OpenAI-compatible chat server, an MCP server or an A2A server",
          "v1.150.0 on 9 October 2026, with 40 tagged releases in the 90 days to 17 October and a dated changelog"
        ],
        "weaknesses": [
          "Usage telemetry is on by default and command events can include prompts passed as arguments",
          "Two high-severity advisories in 2026, each letting tools or shell commands run without approval, both fixed",
          "Breaking changes ship in minor releases, three of them between July and September 2026",
          "`max_iterations` is unlimited and no budget is set unless the config declares one",
          "The `--listen` control plane has no built-in authentication, and A2A support is described as early"
        ],
        "agentNotes": [
          "Set `TELEMETRY_ENABLED=false` before `run` or `exec` with a prompt on the command line. Telemetry is on by default and sends positional arguments",
          "For unattended runs pass `--safety restricted` with an allow-list, or `--sandbox`. Without a policy, `--exec` rejects every tool call that needs approval",
          "Set `max_iterations` and a `budget` block in the config. Both are unlimited by default",
          "Run 1.130.0 or later. Earlier versions ran shell commands embedded in local skills, and A2A sessions before 1.126.0 skipped tool approval",
          "Review `runtime.safety` in any config pulled from a registry or URL. An author default of `autonomous` runs every tool call unprompted"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.6",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 76.5
          }
        ],
        "editorialScores": {
          "ergonomics": 81,
          "maintenance": 96,
          "payments": 60,
          "reliability": 88,
          "schema": 90,
          "security": 70,
          "transparency": 75
        },
        "provenanceScore": 84,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-17",
            "maintenance": "2026-10-17",
            "payments": "2026-10-17",
            "reliability": "2026-10-17",
            "schema": "2026-10-17",
            "security": "2026-10-17",
            "transparency": "2026-10-17"
          },
          "last": "2026-10-17",
          "oldest": "2026-10-17",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "brew install docker-agent   # bundled with Docker Desktop 4.63 and later as `docker agent`",
        "claudeCode": "claude mcp add --transport stdio myagent --env OPENAI_API_KEY=$OPENAI_API_KEY --env ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY -- docker agent serve mcp myorg/agent:tag --working-dir $(pwd)",
        "headless": {
          "command": "docker agent run --exec --safety restricted agent.yaml --json \"$TASK\"",
          "env": {
            "OPENAI_API_KEY": "\u003ckey\u003e",
            "TELEMETRY_ENABLED": "false"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/docker-agent"
      },
      "sameCompany": [
        "docker-model-runner"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Docker, Inc.",
        "domain": "docker.com",
        "domainRegistered": "1995-01-25",
        "endpointOnVendorDomain": null,
        "terms": "https://www.docker.com/legal/docker-terms-use/",
        "privacy": "https://www.docker.com/legal/privacy/",
        "statusPage": "",
        "changelog": "https://github.com/docker/docker-agent/blob/main/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-10-17",
        "notes": [
          "The repository is under GitHub's docker organisation and SECURITY.md sends reports to security@docker.com. Docker's privacy policy names Docker, Inc.",
          "www.docker.com/.well-known/security.txt gives security@docker.com, a policy URL and an expiry of 1 January 2030, re-read on 17 October 2026.",
          "Main-branch docs are on docker.github.io/docker-agent and the stable docs on docs.docker.com/ai/docker-agent. By 17 October 2026 the telemetry and OpenTelemetry pages had moved from the community section to the configuration section, and the old paths still load.",
          "Docker's general terms and privacy policy are listed. Neither the README nor the telemetry page says which terms govern the open-source CLI.",
          "No status page is listed because the software runs on the owner's machine. Usage telemetry goes to api.docker.com/events/v1/track per pkg/telemetry/client.go.",
          "RDAP for docker.com gives a registration date of 1995-01-25."
        ],
        "score": 84
      },
      "requirements": {
        "card": "unknown",
        "freeTier": true,
        "minutes": 5,
        "credential": "api-key",
        "hosting": [
          "self-hosted"
        ],
        "euResidency": "unknown",
        "trainsOnData": "no",
        "zeroRetention": "unknown",
        "selfHost": "yes"
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/docker-agent.json",
      "live": {
        "slug": "docker-agent",
        "versions": [
          {
            "registry": "github",
            "name": "docker/docker-agent",
            "version": "v1.152.0",
            "released": "2026-10-21",
            "seenAt": "2026-10-27T10:56:20.290789152Z"
          }
        ],
        "githubStars": 4611,
        "securityTxt": {
          "url": "https://docker.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-01-01T05:00:00.000Z",
          "checkedAt": "2026-10-26T15:30:40.559027759Z"
        },
        "llmsTxt": {
          "url": "https://docker.github.io/docker-agent/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-27T14:57:50.677327378Z"
        },
        "domain": {
          "domain": "docker.com",
          "registered": "1995-01-25",
          "source": "https://rdap.verisign.com/com/v1/domain/docker.com",
          "checkedAt": "2026-10-25T14:02:09.027030725Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/docker/docker-agent/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-27T03:54:29.600073446Z",
            "changedAt": "2026-10-22T01:25:34.665887657Z",
            "fingerprint": "6158fd2c3bdf"
          },
          {
            "url": "https://www.docker.com/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-27T04:00:04.769444253Z",
            "changedAt": "2026-10-09T18:49:41.704132769Z",
            "fingerprint": "8e523e7e5859"
          },
          {
            "url": "https://www.docker.com/legal/docker-terms-use/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-27T04:00:02.692721794Z",
            "changedAt": "2026-10-27T04:00:02.692721794Z",
            "fingerprint": "c5928e2b4366"
          }
        ],
        "github": {
          "repo": "docker/docker-agent",
          "checkedAt": "2026-10-26T07:23:54.667559583Z",
          "stars": 4609,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-26T06:34:48Z",
          "openIssues": 37,
          "openPRs": 30,
          "issuesOpened90d": 154,
          "issuesClosed90d": 129,
          "prsMerged90d": 633,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 44,
            "failure": 6,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-23T08:22:20Z"
          },
          "advisories": [
            {
              "ghsa": "GHSA-8f6v-26r8-3r4h",
              "severity": "high",
              "published": "2026-09-01T16:46:23Z"
            },
            {
              "ghsa": "GHSA-f2g7-cxrq-x54m",
              "severity": "high",
              "published": "2026-08-20T13:03:08Z"
            }
          ],
          "replies": {
            "sampled": 25,
            "unanswered": 7,
            "medianDays": 0.7
          }
        },
        "updatedAt": "2026-10-27T14:57:50.677327378Z"
      }
    },
    "facts": [
      {
        "a": "Agent framework",
        "b": "Agent framework",
        "name": "Kind"
      },
      {
        "a": "Cursor",
        "b": "Docker",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Your plan",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "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",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-25",
        "b": "2026-10-09",
        "name": "Last release"
      },
      {
        "a": "2026-09-03",
        "b": "2026-08-26",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-29",
        "b": "2026-08-26",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "4k stars",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2.8/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Docker Agent scores 76.5 (BB) on agent readiness against Cursor Agent SDK's 63.6 (B), and leads in every scored category.",
        "question": "Which is better for AI agents, Cursor Agent SDK or Docker Agent?"
      },
      {
        "answer": "No open-source release is listed for Cursor Agent SDK. Docker Agent is open source (Apache-2.0).",
        "question": "Are Cursor Agent SDK and Docker Agent open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "No incidents deducted, where Docker Agent loses 4 points for them"
        ],
        "goodFor": "Teams already on Cursor who want version-controlled agents for pull request review, triage and Slack, with evals in CI and one-command hosting.",
        "slug": "cursor-agent-sdk",
        "watchFor": "Closed source under Cursor's terms, with no public repository, CI or issue tracker"
      },
      {
        "aheadOn": [
          "Reliability, 88 against 45",
          "Schema \u0026 documentation, 90 against 82",
          "Payments \u0026 pricing, 60 against 30",
          "Maintenance \u0026 community, 96 against 74",
          "Transparency \u0026 trust, 80 against 70"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "No key needed to call it",
          "Free to start without a card",
          "Open source"
        ],
        "goodFor": "Teams already on Docker who want agents defined in a file, shared through an OCI registry and run the same way in a terminal, in CI or behind an HTTP, MCP or A2A server.",
        "slug": "docker-agent",
        "watchFor": "Usage telemetry is on by default and command events can include prompts passed as arguments"
      }
    ],
    "job": {
      "capability": "agent.framework",
      "name": "Agent frameworks"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentos-vs-cursor-agent-sdk.json",
        "title": "AgentOS vs Cursor Agent SDK",
        "url": "https://www.anchorterminal.com/compare/agentos-vs-cursor-agent-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentos-vs-docker-agent.json",
        "title": "AgentOS vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/agentos-vs-docker-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agno-vs-cursor-agent-sdk.json",
        "title": "Agno vs Cursor Agent SDK",
        "url": "https://www.anchorterminal.com/compare/agno-vs-cursor-agent-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agno-vs-docker-agent.json",
        "title": "Agno vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/agno-vs-docker-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-cursor-agent-sdk.json",
        "title": "Claude Agent SDK vs Cursor Agent SDK",
        "url": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-cursor-agent-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-docker-agent.json",
        "title": "Claude Agent SDK vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-docker-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-cursor-agent-sdk.json",
        "title": "CrewAI vs Cursor Agent SDK",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-cursor-agent-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crewai-vs-docker-agent.json",
        "title": "CrewAI vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-docker-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-google-adk.json",
        "title": "Cursor Agent SDK vs Agent Development Kit (ADK)",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-google-adk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-guilds-run.json",
        "title": "Cursor Agent SDK vs guilds.run",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-guilds-run"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-langgraph.json",
        "title": "Cursor Agent SDK vs LangGraph",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-langgraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-microsoft-agent-framework.json",
        "title": "Cursor Agent SDK vs Microsoft Agent Framework",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-microsoft-agent-framework"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-openai-agents-sdk.json",
        "title": "Cursor Agent SDK vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-pydantic-ai.json",
        "title": "Cursor Agent SDK vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-tradingagents.json",
        "title": "Cursor Agent SDK vs TradingAgents",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-tradingagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-google-adk.json",
        "title": "Docker Agent vs Agent Development Kit (ADK)",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-google-adk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-guilds-run.json",
        "title": "Docker Agent vs guilds.run",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-guilds-run"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-langgraph.json",
        "title": "Docker Agent vs LangGraph",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-langgraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-microsoft-agent-framework.json",
        "title": "Docker Agent vs Microsoft Agent Framework",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-microsoft-agent-framework"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-openai-agents-sdk.json",
        "title": "Docker Agent vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.json",
        "title": "Docker Agent vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-tradingagents.json",
        "title": "Docker Agent vs TradingAgents",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-tradingagents"
      }
    ],
    "scores": [
      {
        "by": 43,
        "cursor-agent-sdk": 45,
        "docker-agent": 88,
        "edge": "docker-agent",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "cursor-agent-sdk": 82,
        "docker-agent": 90,
        "edge": "docker-agent",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 1,
        "cursor-agent-sdk": 80,
        "docker-agent": 81,
        "edge": "docker-agent",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 2,
        "cursor-agent-sdk": 68,
        "docker-agent": 70,
        "edge": "docker-agent",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 30,
        "cursor-agent-sdk": 30,
        "docker-agent": 60,
        "edge": "docker-agent",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 22,
        "cursor-agent-sdk": 74,
        "docker-agent": 96,
        "edge": "docker-agent",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 10,
        "cursor-agent-sdk": 70,
        "docker-agent": 80,
        "edge": "docker-agent",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Docker Agent scores 76.5 (BB) on agent readiness against Cursor Agent SDK's 63.6 (B), and leads in every scored category. Both do agent frameworks.",
    "tutorials": [],
    "verdicts": {
      "cursor-agent-sdk": "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.",
      "docker-agent": "An agent with an MCP server is eight lines of YAML, and the same file runs in a terminal, headless, or as an HTTP, MCP or A2A server. Usage telemetry is on by default and can carry prompts passed as command arguments, and two high-severity approval bypasses were fixed in August and September 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent",
    "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent.min.md"
  },
  "markdown": "Docker Agent scores 76.5 (BB) on agent readiness against Cursor Agent SDK's 63.6 (B), and leads in every scored category. Both do agent frameworks.\n\n- Cursor Agent SDK: grade B, 63.6/100, rank #443 of 1217. Markdown https://www.anchorterminal.com/tools/cursor-agent-sdk.md · JSON https://www.anchorterminal.com/api/v1/tools/cursor-agent-sdk.json\n- Docker Agent: grade BB, 76.5/100, rank #40 of 1217. Markdown https://www.anchorterminal.com/tools/docker-agent.md · JSON https://www.anchorterminal.com/api/v1/tools/docker-agent.json\n- 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## Which one, for what\n\n### Cursor Agent SDK (B)\n\nGood for: Teams already on Cursor who want version-controlled agents for pull request review, triage and Slack, with evals in CI and one-command hosting.\n\nAlso in its favour:\n- No incidents deducted, where Docker Agent loses 4 points for them\n\nWatch for: Closed source under Cursor's terms, with no public repository, CI or issue tracker\n\n### Docker Agent (BB)\n\nGood for: Teams already on Docker who want agents defined in a file, shared through an OCI registry and run the same way in a terminal, in CI or behind an HTTP, MCP or A2A server.\n\nAhead on:\n- Reliability, 88 against 45\n- Schema \u0026 documentation, 90 against 82\n- Payments \u0026 pricing, 60 against 30\n- Maintenance \u0026 community, 96 against 74\n- Transparency \u0026 trust, 80 against 70\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- No key needed to call it\n- Free to start without a card\n- Open source\n\nWatch for: Usage telemetry is on by default and command events can include prompts passed as arguments\n\n\n## Score by category\n\n| Category | Weight | Cursor Agent SDK | Docker Agent | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 88 | Docker Agent +43 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 82 | 90 | Docker Agent +8 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 81 | Docker Agent +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 68 | 70 | Docker Agent +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 60 | Docker Agent +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 74 | 96 | Docker Agent +22 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 70 | 80 | Docker Agent +10 |\n| Negative events | ≤15 | 0 | -4 | |\n| **Total** | | **63.6 · B** | **76.5 · BB** | |\n\n## Facts side by side\n\n| Fact | Cursor Agent SDK | Docker Agent |\n| --- | --- | --- |\n| Kind | Agent framework | Agent framework |\n| Vendor | Cursor | Docker |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | OAuth or key | None |\n| Pricing | Your plan | Free |\n| x402 | no | no |\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 | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-25 | 2026-10-09 |\n| Terms last updated | 2026-09-03 | 2026-08-26 |\n| Privacy policy last updated | 2026-09-29 | 2026-08-26 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | none | 4k stars |\n| Agent reviews | none | 2.8/5 (4) |\n\n## Verdicts\n\n**Cursor Agent SDK.** 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.\n\n**Docker Agent.** An agent with an MCP server is eight lines of YAML, and the same file runs in a terminal, headless, or as an HTTP, MCP or A2A server. Usage telemetry is on by default and can carry prompts passed as command arguments, and two high-severity approval bypasses were fixed in August and September 2026.\n\n## Before you call either\n\n### Cursor Agent SDK\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### Docker Agent\n\n1. Set `TELEMETRY_ENABLED=false` before `run` or `exec` with a prompt on the command line. Telemetry is on by default and sends positional arguments\n2. For unattended runs pass `--safety restricted` with an allow-list, or `--sandbox`. Without a policy, `--exec` rejects every tool call that needs approval\n3. Set `max_iterations` and a `budget` block in the config. Both are unlimited by default\n4. Run 1.130.0 or later. Earlier versions ran shell commands embedded in local skills, and A2A sessions before 1.126.0 skipped tool approval\n5. Review `runtime.safety` in any config pulled from a registry or URL. An author default of `autonomous` runs every tool call unprompted\n\n## Questions\n\n### Which is better for AI agents, Cursor Agent SDK or Docker Agent?\n\nDocker Agent scores 76.5 (BB) on agent readiness against Cursor Agent SDK's 63.6 (B), and leads in every scored category.\n\n### Are Cursor Agent SDK and Docker Agent open source?\n\nNo open-source release is listed for Cursor Agent SDK. Docker Agent is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent.json, and with the fewest tokens: https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"cursor-agent-sdk\", \"b\": \"docker-agent\"}`. From a terminal: `anchor compare cursor-agent-sdk docker-agent`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/cursor-agent-sdk.json and https://www.anchorterminal.com/api/v1/tools/docker-agent.json\n\n## Other comparisons with Cursor Agent SDK or Docker Agent\n\n- [AgentOS vs Cursor Agent SDK](https://www.anchorterminal.com/compare/agentos-vs-cursor-agent-sdk.md)\n- [AgentOS vs Docker Agent](https://www.anchorterminal.com/compare/agentos-vs-docker-agent.md)\n- [Agno vs Cursor Agent SDK](https://www.anchorterminal.com/compare/agno-vs-cursor-agent-sdk.md)\n- [Agno vs Docker Agent](https://www.anchorterminal.com/compare/agno-vs-docker-agent.md)\n- [Claude Agent SDK vs Cursor Agent SDK](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-cursor-agent-sdk.md)\n- [Claude Agent SDK vs Docker Agent](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-docker-agent.md)\n- [CrewAI vs Cursor Agent SDK](https://www.anchorterminal.com/compare/crewai-vs-cursor-agent-sdk.md)\n- [CrewAI vs Docker Agent](https://www.anchorterminal.com/compare/crewai-vs-docker-agent.md)\n- [Cursor Agent SDK vs Agent Development Kit (ADK)](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-google-adk.md)\n- [Cursor Agent SDK vs guilds.run](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-guilds-run.md)\n- [Cursor Agent SDK vs LangGraph](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-langgraph.md)\n- [Cursor Agent SDK vs Microsoft Agent Framework](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-microsoft-agent-framework.md)\n- [Cursor Agent SDK vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-openai-agents-sdk.md)\n- [Cursor Agent SDK vs Pydantic AI](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-pydantic-ai.md)\n- [Cursor Agent SDK vs TradingAgents](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-tradingagents.md)\n- [Docker Agent vs Agent Development Kit (ADK)](https://www.anchorterminal.com/compare/docker-agent-vs-google-adk.md)\n- [Docker Agent vs guilds.run](https://www.anchorterminal.com/compare/docker-agent-vs-guilds-run.md)\n- [Docker Agent vs LangGraph](https://www.anchorterminal.com/compare/docker-agent-vs-langgraph.md)\n- [Docker Agent vs Microsoft Agent Framework](https://www.anchorterminal.com/compare/docker-agent-vs-microsoft-agent-framework.md)\n- [Docker Agent vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/docker-agent-vs-openai-agents-sdk.md)\n- [Docker Agent vs Pydantic AI](https://www.anchorterminal.com/compare/docker-agent-vs-pydantic-ai.md)\n- [Docker Agent vs TradingAgents](https://www.anchorterminal.com/compare/docker-agent-vs-tradingagents.md)\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": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Cursor Agent SDK vs Docker Agent",
        "url": ""
      }
    ],
    "description": "Docker Agent scores 76.5 (BB) to Cursor Agent SDK's 63.6 (B) for agent frameworks. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Cursor Agent SDK B 63.6",
      "Docker Agent BB 76.5",
      "scores"
    ],
    "h1": "Cursor Agent SDK vs Docker Agent",
    "image": "https://www.anchorterminal.com/assets/og/compare-cursor-agent-sdk-vs-docker-agent.png",
    "path": "/compare/cursor-agent-sdk-vs-docker-agent",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cursor Agent SDK vs Docker Agent for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-27",
    "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 680
  },
  "version": 1
}
