{
  "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",
      "dns": "cursor-agent-sdk.grade.anchorterminal.com",
      "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.7,
        "grade": "B",
        "agentReady": false,
        "rank": 503,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 15,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 74,
          "payments": 30,
          "reliability": 45,
          "schema": 82,
          "security": 68,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "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.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.7
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 74,
          "payments": 30,
          "reliability": 45,
          "schema": 82,
          "security": 68,
          "transparency": 49
        },
        "provenanceScore": 92,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-10-28",
          "oldest": "2026-11-02",
          "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-11-02",
        "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.",
          "On 2 November 2026 status.cursor.com answered with a redirect to status.x.ai, whose page answered a Cloudflare block, so the status page couldn't be read."
        ],
        "score": 92
      },
      "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-11-07T19:21:41.168239107Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@grok/agent-sdk",
            "version": "0.6.0",
            "seenAt": "2026-11-06T23:19:06.91158327Z"
          }
        ],
        "npmWeekly": 9330,
        "securityTxt": {
          "url": "https://cursor.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T16:01:25.031295704Z"
        },
        "llmsTxt": {
          "url": "https://cursor.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:13.986094369Z"
        },
        "domain": {
          "domain": "cursor.com",
          "registered": "1995-12-20",
          "source": "https://rdap.verisign.com/com/v1/domain/cursor.com",
          "checkedAt": "2026-11-01T14:10:15.995316039Z"
        },
        "pages": [
          {
            "url": "https://cursor.com/docs/agent-sdk/changelog",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:02:17.860421755Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e878680a2c18"
          },
          {
            "url": "https://cursor.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:02:21.713695997Z",
            "changedAt": "2026-10-21T00:22:04.890633076Z",
            "fingerprint": "60c67a53fa8c"
          },
          {
            "url": "https://cursor.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:02:23.744923691Z",
            "changedAt": "2026-10-21T00:22:07.052190293Z",
            "fingerprint": "d31f70e876bc"
          }
        ],
        "updatedAt": "2026-11-07T19:21:41.168239107Z"
      }
    },
    "answer": "LlamaIndex Framework scores 70 (BB) on agent readiness against Cursor Agent SDK's 63.7 (B), and leads in 4 of 7 scored categories. Cursor Agent SDK leads on agent ergonomics and maintenance \u0026 community.",
    "b": {
      "slug": "llamaindex",
      "name": "LlamaIndex Framework",
      "vendor": "LlamaIndex",
      "vendorUrl": "https://developers.llamaindex.ai/python/framework/",
      "kind": "framework",
      "category": "frameworks",
      "summary": "The LlamaIndex Framework is LlamaIndex's open-source Python toolkit for retrieval and agents, with FunctionAgent, ReActAgent and CodeActAgent, multi-agent AgentWorkflow, event-driven Workflows, MCP tools and hundreds of integration packages.",
      "url": "https://www.anchorterminal.com/tools/llamaindex",
      "markdownUrl": "https://www.anchorterminal.com/tools/llamaindex.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/llamaindex.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/llamaindex.json",
      "dns": "llamaindex.grade.anchorterminal.com",
      "repo": "https://github.com/run-llama/llama_index",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "llama-index"
        },
        {
          "registry": "pypi",
          "name": "llama-index-core"
        },
        {
          "registry": "pypi",
          "name": "llama-index-workflows"
        },
        {
          "registry": "pypi",
          "name": "llama-index-tools-mcp"
        }
      ],
      "auth": "none",
      "authNotes": "A library with no credentials of its own. The default LLM and embeddings are OpenAI's and read an OpenAI key; integrations take their own keys.",
      "pricing": "free",
      "pricingNotes": "Free and open source under MIT. You pay for model calls. LlamaParse and LlamaCloud are separate paid services with their own Anchor Terminal listing.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the framework docs or the repository (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 52833,
        "npmWeekly": null,
        "pypiWeekly": 1260039,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://developers.llamaindex.ai/python/framework/",
      "llmsTxt": "https://developers.llamaindex.ai/llms.txt",
      "capabilities": [
        "agent.framework",
        "agent.multi-agent",
        "agent.durable",
        "agent.mcp-client"
      ],
      "tags": [
        "framework",
        "python",
        "open-source",
        "llms-txt",
        "mcp",
        "rag",
        "workflows"
      ],
      "lastRelease": "2026-09-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70,
        "grade": "BB",
        "agentReady": true,
        "rank": 217,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 69,
          "payments": 60,
          "reliability": 70,
          "schema": 85,
          "security": 74,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": -2,
        "negativeNotes": [
          "2025-11 to 2026-11. Advisories for llama-index-core first published in the last 12 months are GHSA-488g-hw5f-x29p (uncontrolled resource consumption, 2 February 2026, moderate, fixed in 0.12.41) and the PYSEC re-publications in 2026 of 2025 path-traversal, denial-of-service and temporary-file issues fixed by 0.13.0. Fixed and documented, so 2 points. https://osv.dev/vulnerability/GHSA-488g-hw5f-x29p"
        ],
        "verdict": "An MIT Python framework for retrieval and agents, with three agent types, multi-agent AgentWorkflow, resumable event-driven Workflows, MCP tools and a huntr bug bounty, and no telemetry found. Core is still 0.14 with breaking minors, OpenAI is the silent default, and approval and injection handling are left to the application.",
        "bestFor": "Python teams building retrieval-heavy agents over their own data, with many connectors.",
        "strengths": [
          "FunctionAgent, ReActAgent, CodeActAgent and multi-agent AgentWorkflow over one Workflows engine",
          "Workflow context serialises and resumes, with a DBOS package for durable runs",
          "Hundreds of integration packages for models, vector stores and data loaders",
          "No telemetry found in llama-index-core",
          "huntr bug bounty and public advisories with fixed versions"
        ],
        "weaknesses": [
          "Core is 0.14.x, and minor versions such as 0.13 and 0.14 carried breaking changes",
          "OpenAI is the default LLM and embedding provider unless Settings is changed",
          "No per-tool approval primitive; the threat model leaves input validation to the application",
          "Several 2025 path-traversal and denial-of-service advisories in core and readers"
        ],
        "agentNotes": [
          "Set Settings.llm and Settings.embed_model explicitly so calls don't go to OpenAI by default",
          "Install llama-index-tools-mcp for MCP tools and pass only the allowed tools the task needs",
          "Use Workflow human-in-the-loop events before tools that write or send",
          "Pin llama-index-core to a minor version, since minors have broken APIs",
          "Upgrade llama-index-core to 0.13.0 or later to clear the 2025 advisories"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 69,
          "payments": 60,
          "reliability": 70,
          "schema": 85,
          "security": 74,
          "transparency": 72
        },
        "provenanceScore": 61,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install llama-index   # MCP tools: pip install llama-index-tools-mcp"
      },
      "letme": {
        "capability": "https://letme.dev/agent.framework",
        "tool": "https://letme.dev/llamaindex"
      },
      "sameCompany": [
        "llamaparse"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "LlamaIndex, Inc.",
        "domain": "llamaindex.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "https://www.llamaindex.ai/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/run-llama/llama_index/blob/main/CHANGELOG.md",
        "securityTxt": "unknown",
        "checked": "2026-11-06",
        "notes": [
          "The framework is MIT-licensed; the company facts follow the LlamaParse listing.",
          "developers.llamaindex.ai/robots.txt allows all crawlers.",
          "The privacy policy link is the company's; the library collects nothing itself. Neither the terms nor the privacy policy was re-read for this listing."
        ],
        "score": 61
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/llamaindex.json",
      "live": {
        "slug": "llamaindex",
        "versions": [
          {
            "registry": "github",
            "name": "run-llama/llama_index",
            "version": "v0.14.25",
            "released": "2026-09-21",
            "seenAt": "2026-11-06T23:41:01.613169751Z"
          },
          {
            "registry": "pypi",
            "name": "llama-index",
            "version": "0.14.25",
            "released": "2026-09-21",
            "seenAt": "2026-11-06T23:40:55.516520624Z"
          },
          {
            "registry": "pypi",
            "name": "llama-index-core",
            "version": "0.14.25",
            "released": "2026-09-21",
            "seenAt": "2026-11-06T23:40:55.720658841Z"
          },
          {
            "registry": "pypi",
            "name": "llama-index-tools-mcp",
            "version": "0.6.0",
            "released": "2026-08-31",
            "seenAt": "2026-11-06T23:41:00.102033357Z"
          },
          {
            "registry": "pypi",
            "name": "llama-index-workflows",
            "version": "2.26.1",
            "released": "2026-10-21",
            "seenAt": "2026-11-06T23:40:57.534551463Z"
          }
        ],
        "githubStars": 52835,
        "pypiWeekly": 409969,
        "securityTxt": {
          "url": "https://llamaindex.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:24.67649536Z"
        },
        "llmsTxt": {
          "url": "https://developers.llamaindex.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:53.290758373Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/run-llama/llama_index/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:23:19.050779794Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "51de27bb70e4"
          },
          {
            "url": "https://www.llamaindex.ai/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:30:58.312656283Z",
            "changedAt": "2026-11-06T13:51:36.031111139Z",
            "fingerprint": "22f247245013"
          }
        ],
        "updatedAt": "2026-11-07T16:01:24.67649536Z"
      }
    },
    "edges": [
      {
        "by": 30,
        "category": "payments",
        "leads": "llamaindex",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "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.",
          "b": "Self-hosted rule. Free MIT packages with nothing to buy for the framework itself (20 + 20 + 20). No payment protocol (0). LlamaCloud is graded on its own listing. 0+20+20+20 = 60."
        },
        "scores": {
          "a": 30,
          "b": 60
        }
      },
      {
        "by": 25,
        "category": "reliability",
        "leads": "llamaindex",
        "name": "Reliability",
        "reasons": {
          "a": "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.",
          "b": "Local-package reading. Official PyPI packages with Python 3.10 to below 4.0 (20). Public unit-test, type-check, lint, coverage and CodeQL workflows, with the type-check, lint and CodeQL runs on main passing on 3 November (25). 379 open issues and 1,291 open issues and pull requests on 6 November, with 241 issues opened in the 90 days to 3 November. Of the 50 newest, 28 had a comment and 3 were closed; a stale bot and an issue classifier run on the repository (12). A dated, generated changelog per package, but core is 0.x and minors such as 0.13 and 0.14 carried breaking changes (8). Core isn't 1.0; Workflows is at 2.x, so partial (5). 20+25+12+8+5 = 70."
        },
        "scores": {
          "a": 45,
          "b": 70
        }
      },
      {
        "by": 7,
        "category": "ergonomics",
        "leads": "cursor-agent-sdk",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "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.",
          "b": "Framework reading. MCP tools through a separate llama-index-tools-mcp package, with allowed tools selectable (18). Memory token limits, iteration caps and streaming events (16). Tool errors returned to the agent, with few typed errors (12). Workflow context serialises and resumes, and the DBOS package makes runs durable (16). Few required parameters, but OpenAI is the silent default for LLM and embeddings, Python here with a separate TypeScript edition (11). 18+16+12+16+11 = 73."
        },
        "scores": {
          "a": 80,
          "b": 73
        }
      },
      {
        "by": 6,
        "category": "security",
        "leads": "llamaindex",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "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, document 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 the three package names in OSV on 2 November (14). SOC 2 and ISO 27001 aren't scored on the framework reading. 18+12+10+14+14 = 68.",
          "b": "Framework reading (telemetry defaults, approvals, guardrails, sandboxing). No telemetry found in llama-index-core (25). Human-in-the-loop events in Workflows and agents can wait for a person, but there's no per-tool approval primitive and CodeActAgent's executor is the developer's to supply (12). The threat model puts input validation on the application, with no prompt-injection guidance in the agent pages (5). Instrumentation events and callback handlers for tracing (14). A huntr bug bounty, GitHub private reporting and public advisories with fixed versions (18). 25+12+5+14+18 = 74."
        },
        "scores": {
          "a": 68,
          "b": 74
        }
      },
      {
        "by": 5,
        "category": "maintenance",
        "leads": "cursor-agent-sdk",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "0.3.0 on npm on 25 October 2026, per the 27 October check (npm not re-read on 2 November), and the docs changelog still ends at 0.3.0 of 23 October (30). Five @grok/agent-sdk versions from 22 to 25 October and 29 @cursor/bdk versions since 22 September, per the 27 October check (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.",
          "b": "llama-index-core 0.14.25 on 21 September 2026, 46 days before this check (20). Two core changelog entries in the 90 days (19 August and 21 September), with integration packages and Workflows (2.24.1 to 2.26.1) publishing in between, so partial (12). 379 open issues and 1,291 open issues and pull requests on 6 November, with 241 issues opened in the 90 days to 3 November. Of the 50 newest, 28 had a comment and 3 were closed; a stale bot and an issue classifier run on the repository (12). Core, Workflows and integrations are current (15). CI and CodeQL passing on main and a stale-package policy that moves unmaintained integrations out of main (10). 20+12+12+15+10 = 69."
        },
        "scores": {
          "a": 74,
          "b": 69
        }
      }
    ],
    "facts": [
      {
        "a": "Agent framework",
        "b": "Agent framework",
        "name": "Kind"
      },
      {
        "a": "Cursor",
        "b": "LlamaIndex",
        "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": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-25",
        "b": "2026-09-21",
        "name": "Last release"
      },
      {
        "a": "2026-09-03",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-29",
        "b": "2026-08-24",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "53k stars, 1.3M PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "LlamaIndex Framework scores 70 (BB) on agent readiness against Cursor Agent SDK's 63.7 (B), and leads in 4 of 7 scored categories. Cursor Agent SDK leads on agent ergonomics and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Cursor Agent SDK or LlamaIndex Framework?"
      },
      {
        "answer": "No open-source release is listed for Cursor Agent SDK. LlamaIndex Framework is open source (MIT).",
        "question": "Are Cursor Agent SDK and LlamaIndex Framework open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 80 against 73",
          "Maintenance \u0026 community, 74 against 69"
        ],
        "also": null,
        "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, 70 against 45",
          "Security \u0026 auth, 74 against 68",
          "Payments \u0026 pricing, 60 against 30"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "No key needed to call it",
          "Open source"
        ],
        "goodFor": "Python teams building retrieval-heavy agents over their own data, with many connectors.",
        "slug": "llamaindex",
        "watchFor": "Core is 0.14.x, and minor versions such as 0.13 and 0.14 carried breaking changes"
      }
    ],
    "history": {
      "cursor-agent-sdk": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-28",
          "delta": 0.1,
          "from": 63.6,
          "fromGrade": "B",
          "to": 63.7,
          "toGrade": "B"
        }
      ],
      "llamaindex": null
    },
    "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-llamaindex.json",
        "title": "AgentOS vs LlamaIndex Framework",
        "url": "https://www.anchorterminal.com/compare/agentos-vs-llamaindex"
      },
      {
        "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-llamaindex.json",
        "title": "Agno vs LlamaIndex Framework",
        "url": "https://www.anchorterminal.com/compare/agno-vs-llamaindex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boxlang-ai-vs-cursor-agent-sdk.json",
        "title": "BoxLang AI vs Cursor Agent SDK",
        "url": "https://www.anchorterminal.com/compare/boxlang-ai-vs-cursor-agent-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boxlang-ai-vs-llamaindex.json",
        "title": "BoxLang AI vs LlamaIndex Framework",
        "url": "https://www.anchorterminal.com/compare/boxlang-ai-vs-llamaindex"
      },
      {
        "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-llamaindex.json",
        "title": "Claude Agent SDK vs LlamaIndex Framework",
        "url": "https://www.anchorterminal.com/compare/claude-agent-sdk-vs-llamaindex"
      },
      {
        "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-llamaindex.json",
        "title": "CrewAI vs LlamaIndex Framework",
        "url": "https://www.anchorterminal.com/compare/crewai-vs-llamaindex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-docker-agent.json",
        "title": "Cursor Agent SDK vs Docker Agent",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-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-mastra.json",
        "title": "Cursor Agent SDK vs Mastra",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-mastra"
      },
      {
        "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-smolagents.json",
        "title": "Cursor Agent SDK vs smolagents",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-strands-agents.json",
        "title": "Cursor Agent SDK vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-strands-agents"
      },
      {
        "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/cursor-agent-sdk-vs-vercel-ai-sdk.json",
        "title": "Cursor Agent SDK vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-vercel-ai-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-agent-vs-llamaindex.json",
        "title": "Docker Agent vs LlamaIndex Framework",
        "url": "https://www.anchorterminal.com/compare/docker-agent-vs-llamaindex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-adk-vs-llamaindex.json",
        "title": "Agent Development Kit (ADK) vs LlamaIndex Framework",
        "url": "https://www.anchorterminal.com/compare/google-adk-vs-llamaindex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guilds-run-vs-llamaindex.json",
        "title": "guilds.run vs LlamaIndex Framework",
        "url": "https://www.anchorterminal.com/compare/guilds-run-vs-llamaindex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langgraph-vs-llamaindex.json",
        "title": "LangGraph vs LlamaIndex Framework",
        "url": "https://www.anchorterminal.com/compare/langgraph-vs-llamaindex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-mastra.json",
        "title": "LlamaIndex Framework vs Mastra",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-mastra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-microsoft-agent-framework.json",
        "title": "LlamaIndex Framework vs Microsoft Agent Framework",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-microsoft-agent-framework"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-openai-agents-sdk.json",
        "title": "LlamaIndex Framework vs OpenAI Agents SDK",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-openai-agents-sdk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-pydantic-ai.json",
        "title": "LlamaIndex Framework vs Pydantic AI",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-pydantic-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-smolagents.json",
        "title": "LlamaIndex Framework vs smolagents",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-smolagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-strands-agents.json",
        "title": "LlamaIndex Framework vs Strands Agents",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-strands-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-tradingagents.json",
        "title": "LlamaIndex Framework vs TradingAgents",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-tradingagents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamaindex-vs-vercel-ai-sdk.json",
        "title": "LlamaIndex Framework vs AI SDK",
        "url": "https://www.anchorterminal.com/compare/llamaindex-vs-vercel-ai-sdk"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 25,
        "cursor-agent-sdk": 45,
        "edge": "llamaindex",
        "key": "reliability",
        "llamaindex": 70,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "cursor-agent-sdk": 82,
        "edge": "llamaindex",
        "key": "schema",
        "llamaindex": 85,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 7,
        "cursor-agent-sdk": 80,
        "edge": "cursor-agent-sdk",
        "key": "ergonomics",
        "llamaindex": 73,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 6,
        "cursor-agent-sdk": 68,
        "edge": "llamaindex",
        "key": "security",
        "llamaindex": 74,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 30,
        "cursor-agent-sdk": 30,
        "edge": "llamaindex",
        "key": "payments",
        "llamaindex": 60,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "cursor-agent-sdk": 74,
        "edge": "cursor-agent-sdk",
        "key": "maintenance",
        "llamaindex": 69,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 4,
        "cursor-agent-sdk": 71,
        "edge": "cursor-agent-sdk",
        "key": "transparency",
        "llamaindex": 67,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "LlamaIndex Framework scores 70 (BB) on agent readiness against Cursor Agent SDK's 63.7 (B), and leads in 4 of 7 scored categories. Cursor Agent SDK leads on agent ergonomics and maintenance \u0026 community. Both do agent frameworks.",
    "tasks": null,
    "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.",
      "llamaindex": "An MIT Python framework for retrieval and agents, with three agent types, multi-agent AgentWorkflow, resumable event-driven Workflows, MCP tools and a huntr bug bounty, and no telemetry found. Core is still 0.14 with breaking minors, OpenAI is the silent default, and approval and injection handling are left to the application."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-llamaindex",
    "json": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-llamaindex.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-llamaindex.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-llamaindex.min.md"
  },
  "markdown": "LlamaIndex Framework scores 70 (BB) on agent readiness against Cursor Agent SDK's 63.7 (B), and leads in 4 of 7 scored categories. Cursor Agent SDK leads on agent ergonomics and maintenance \u0026 community. Both do agent frameworks.\n\n- Cursor Agent SDK: grade B, 63.7/100, rank #503 of 1510. Markdown https://www.anchorterminal.com/tools/cursor-agent-sdk.md · JSON https://www.anchorterminal.com/api/v1/tools/cursor-agent-sdk.json\n- LlamaIndex Framework: grade BB, 70/100, rank #217 of 1510. Markdown https://www.anchorterminal.com/tools/llamaindex.md · JSON https://www.anchorterminal.com/api/v1/tools/llamaindex.json\n- Best agent frameworks and SDKs: https://www.anchorterminal.com/best/frameworks/index.md\n- All 171 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\nAhead on:\n- Agent ergonomics, 80 against 73\n- Maintenance \u0026 community, 74 against 69\n\nWatch for: Closed source under Cursor's terms, with no public repository, CI or issue tracker\n\n### LlamaIndex Framework (BB)\n\nGood for: Python teams building retrieval-heavy agents over their own data, with many connectors.\n\nAhead on:\n- Reliability, 70 against 45\n- Security \u0026 auth, 74 against 68\n- Payments \u0026 pricing, 60 against 30\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- No key needed to call it\n- Open source\n\nWatch for: Core is 0.14.x, and minor versions such as 0.13 and 0.14 carried breaking changes\n\n\n## Why the edge\n\n### Payments \u0026 pricing: LlamaIndex Framework +30\n\n- Cursor Agent SDK (30): 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- LlamaIndex Framework (60): Self-hosted rule. Free MIT packages with nothing to buy for the framework itself (20 + 20 + 20). No payment protocol (0). LlamaCloud is graded on its own listing. 0+20+20+20 = 60.\n\n### Reliability: LlamaIndex Framework +25\n\n- Cursor Agent SDK (45): 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- LlamaIndex Framework (70): Local-package reading. Official PyPI packages with Python 3.10 to below 4.0 (20). Public unit-test, type-check, lint, coverage and CodeQL workflows, with the type-check, lint and CodeQL runs on main passing on 3 November (25). 379 open issues and 1,291 open issues and pull requests on 6 November, with 241 issues opened in the 90 days to 3 November. Of the 50 newest, 28 had a comment and 3 were closed; a stale bot and an issue classifier run on the repository (12). A dated, generated changelog per package, but core is 0.x and minors such as 0.13 and 0.14 carried breaking changes (8). Core isn't 1.0; Workflows is at 2.x, so partial (5). 20+25+12+8+5 = 70.\n\n### Agent ergonomics: Cursor Agent SDK +7\n\n- Cursor Agent SDK (80): 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- LlamaIndex Framework (73): Framework reading. MCP tools through a separate llama-index-tools-mcp package, with allowed tools selectable (18). Memory token limits, iteration caps and streaming events (16). Tool errors returned to the agent, with few typed errors (12). Workflow context serialises and resumes, and the DBOS package makes runs durable (16). Few required parameters, but OpenAI is the silent default for LLM and embeddings, Python here with a separate TypeScript edition (11). 18+16+12+16+11 = 73.\n\n### Security \u0026 auth: LlamaIndex Framework +6\n\n- Cursor Agent SDK (68): 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, document 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 the three package names in OSV on 2 November (14). SOC 2 and ISO 27001 aren't scored on the framework reading. 18+12+10+14+14 = 68.\n- LlamaIndex Framework (74): Framework reading (telemetry defaults, approvals, guardrails, sandboxing). No telemetry found in llama-index-core (25). Human-in-the-loop events in Workflows and agents can wait for a person, but there's no per-tool approval primitive and CodeActAgent's executor is the developer's to supply (12). The threat model puts input validation on the application, with no prompt-injection guidance in the agent pages (5). Instrumentation events and callback handlers for tracing (14). A huntr bug bounty, GitHub private reporting and public advisories with fixed versions (18). 25+12+5+14+18 = 74.\n\n### Maintenance \u0026 community: Cursor Agent SDK +5\n\n- Cursor Agent SDK (74): 0.3.0 on npm on 25 October 2026, per the 27 October check (npm not re-read on 2 November), and the docs changelog still ends at 0.3.0 of 23 October (30). Five @grok/agent-sdk versions from 22 to 25 October and 29 @cursor/bdk versions since 22 September, per the 27 October check (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- LlamaIndex Framework (69): llama-index-core 0.14.25 on 21 September 2026, 46 days before this check (20). Two core changelog entries in the 90 days (19 August and 21 September), with integration packages and Workflows (2.24.1 to 2.26.1) publishing in between, so partial (12). 379 open issues and 1,291 open issues and pull requests on 6 November, with 241 issues opened in the 90 days to 3 November. Of the 50 newest, 28 had a comment and 3 were closed; a stale bot and an issue classifier run on the repository (12). Core, Workflows and integrations are current (15). CI and CodeQL passing on main and a stale-package policy that moves unmaintained integrations out of main (10). 20+12+12+15+10 = 69.\n\n## Score by category\n\n| Category | Weight | Cursor Agent SDK | LlamaIndex Framework | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 70 | LlamaIndex Framework +25 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 82 | 85 | LlamaIndex Framework +3 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 73 | Cursor Agent SDK +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 68 | 74 | LlamaIndex Framework +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 60 | LlamaIndex Framework +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 74 | 69 | Cursor Agent SDK +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 67 | Cursor Agent SDK +4 |\n| Negative events | ≤15 | 0 | -2 | |\n| **Total** | | **63.7 · B** | **70 · BB** | |\n\n## Facts side by side\n\n| Fact | Cursor Agent SDK | LlamaIndex Framework |\n| --- | --- | --- |\n| Kind | Agent framework | Agent framework |\n| Vendor | Cursor | LlamaIndex |\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 | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-25 | 2026-09-21 |\n| Terms last updated | 2026-09-03 | no document linked |\n| Privacy policy last updated | 2026-09-29 | 2026-08-24 |\n| Customer content may train models | not found in the text | not read yet |\n| Terms restrict automated access | yes | not read yet |\n| Terms restrict benchmarking | yes | not read yet |\n| Terms or service can change without notice | yes | not read yet |\n| Arbitration or class-action waiver | yes | not read yet |\n| Popularity | none | 53k stars, 1.3M PyPI/wk |\n\n## How the scores have moved\n\n### Cursor Agent SDK\n\n- +0.1 on 28 October 2026: checklist\n\n### LlamaIndex Framework\n\nNo score change since it was listed.\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**LlamaIndex Framework.** An MIT Python framework for retrieval and agents, with three agent types, multi-agent AgentWorkflow, resumable event-driven Workflows, MCP tools and a huntr bug bounty, and no telemetry found. Core is still 0.14 with breaking minors, OpenAI is the silent default, and approval and injection handling are left to the application.\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### LlamaIndex Framework\n\n1. Set Settings.llm and Settings.embed_model explicitly so calls don't go to OpenAI by default\n2. Install llama-index-tools-mcp for MCP tools and pass only the allowed tools the task needs\n3. Use Workflow human-in-the-loop events before tools that write or send\n4. Pin llama-index-core to a minor version, since minors have broken APIs\n5. Upgrade llama-index-core to 0.13.0 or later to clear the 2025 advisories\n\n## Questions\n\n### Which is better for AI agents, Cursor Agent SDK or LlamaIndex Framework?\n\nLlamaIndex Framework scores 70 (BB) on agent readiness against Cursor Agent SDK's 63.7 (B), and leads in 4 of 7 scored categories. Cursor Agent SDK leads on agent ergonomics and maintenance \u0026 community.\n\n### Are Cursor Agent SDK and LlamaIndex Framework open source?\n\nNo open-source release is listed for Cursor Agent SDK. LlamaIndex Framework is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-llamaindex.json, and with the fewest tokens: https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-llamaindex.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"cursor-agent-sdk\", \"b\": \"llamaindex\"}`. From a terminal: `anchor compare cursor-agent-sdk llamaindex`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/cursor-agent-sdk.json and https://www.anchorterminal.com/api/v1/tools/llamaindex.json\n\n## Other comparisons with Cursor Agent SDK or LlamaIndex Framework\n\n- [AgentOS vs Cursor Agent SDK](https://www.anchorterminal.com/compare/agentos-vs-cursor-agent-sdk.md)\n- [AgentOS vs LlamaIndex Framework](https://www.anchorterminal.com/compare/agentos-vs-llamaindex.md)\n- [Agno vs Cursor Agent SDK](https://www.anchorterminal.com/compare/agno-vs-cursor-agent-sdk.md)\n- [Agno vs LlamaIndex Framework](https://www.anchorterminal.com/compare/agno-vs-llamaindex.md)\n- [BoxLang AI vs Cursor Agent SDK](https://www.anchorterminal.com/compare/boxlang-ai-vs-cursor-agent-sdk.md)\n- [BoxLang AI vs LlamaIndex Framework](https://www.anchorterminal.com/compare/boxlang-ai-vs-llamaindex.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 LlamaIndex Framework](https://www.anchorterminal.com/compare/claude-agent-sdk-vs-llamaindex.md)\n- [CrewAI vs Cursor Agent SDK](https://www.anchorterminal.com/compare/crewai-vs-cursor-agent-sdk.md)\n- [CrewAI vs LlamaIndex Framework](https://www.anchorterminal.com/compare/crewai-vs-llamaindex.md)\n- [Cursor Agent SDK vs Docker Agent](https://www.anchorterminal.com/compare/cursor-agent-sdk-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 Mastra](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-mastra.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 smolagents](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-smolagents.md)\n- [Cursor Agent SDK vs Strands Agents](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-strands-agents.md)\n- [Cursor Agent SDK vs TradingAgents](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-tradingagents.md)\n- [Cursor Agent SDK vs AI SDK](https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-vercel-ai-sdk.md)\n- [Docker Agent vs LlamaIndex Framework](https://www.anchorterminal.com/compare/docker-agent-vs-llamaindex.md)\n- [Agent Development Kit (ADK) vs LlamaIndex Framework](https://www.anchorterminal.com/compare/google-adk-vs-llamaindex.md)\n- [guilds.run vs LlamaIndex Framework](https://www.anchorterminal.com/compare/guilds-run-vs-llamaindex.md)\n- [LangGraph vs LlamaIndex Framework](https://www.anchorterminal.com/compare/langgraph-vs-llamaindex.md)\n- [LlamaIndex Framework vs Mastra](https://www.anchorterminal.com/compare/llamaindex-vs-mastra.md)\n- [LlamaIndex Framework vs Microsoft Agent Framework](https://www.anchorterminal.com/compare/llamaindex-vs-microsoft-agent-framework.md)\n- [LlamaIndex Framework vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/llamaindex-vs-openai-agents-sdk.md)\n- [LlamaIndex Framework vs Pydantic AI](https://www.anchorterminal.com/compare/llamaindex-vs-pydantic-ai.md)\n- [LlamaIndex Framework vs smolagents](https://www.anchorterminal.com/compare/llamaindex-vs-smolagents.md)\n- [LlamaIndex Framework vs Strands Agents](https://www.anchorterminal.com/compare/llamaindex-vs-strands-agents.md)\n- [LlamaIndex Framework vs TradingAgents](https://www.anchorterminal.com/compare/llamaindex-vs-tradingagents.md)\n- [LlamaIndex Framework vs AI SDK](https://www.anchorterminal.com/compare/llamaindex-vs-vercel-ai-sdk.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-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "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 LlamaIndex Framework",
        "url": ""
      }
    ],
    "description": "LlamaIndex Framework scores 70 (BB) to Cursor Agent SDK's 63.7 (B) for agent frameworks. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Cursor Agent SDK B 63.7",
      "LlamaIndex Framework BB 70",
      "scores"
    ],
    "h1": "Cursor Agent SDK vs LlamaIndex Framework",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/cursor-agent-sdk-vs-llamaindex",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cursor Agent SDK vs LlamaIndex Framework for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/cursor-agent-sdk-vs-llamaindex"
  },
  "tokens": {
    "markdown": 4750,
    "slim": 2630
  },
  "version": 1
}
