{
  "data": {
    "a": {
      "slug": "lm-studio",
      "name": "LM Studio",
      "vendor": "Element Labs, Inc.",
      "vendorUrl": "https://lmstudio.ai",
      "kind": "http-api",
      "category": "local-ai",
      "summary": "Desktop app and headless daemon from Element Labs for running open-weight models on the owner's machine with llama.cpp and MLX, plus the Splash engine on Apple silicon M3 or newer since 0.4.25.",
      "url": "https://www.anchorterminal.com/tools/lm-studio",
      "markdownUrl": "https://www.anchorterminal.com/tools/lm-studio.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/lm-studio.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/lm-studio.json",
      "repo": "https://github.com/lmstudio-ai/lmstudio-js",
      "license": "Proprietary. The app and llmster are free for personal and internal business use under LM Studio's terms (Element Labs, Inc., effective 23 August 2026), with no source published. The `lms` CLI and the TypeScript and Python SDKs are MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@lmstudio/sdk"
        },
        {
          "registry": "pypi",
          "name": "lmstudio"
        }
      ],
      "auth": "api-key",
      "authNotes": "No authentication by default. With Require Authentication on (Developer page, Server Settings, LM Studio 0.4.0 or later), every request needs an API token (`sk-lm-` prefix) as `Authorization: Bearer`, or `x-api-key` on the Anthropic-compatible endpoint. Tokens are named, carry permissions picked at creation, are shown once and can be edited or deleted. Calling the owner's mcp.json servers through the API needs authentication on. The server binds to localhost unless Serve on Local Network is on or `lms server start --bind 0.0.0.0` is used.",
      "pricing": "free",
      "pricingNotes": "The LM Studio app, llmster and the local server are free for personal and work use with no account or card (free at work since 8 July 2025, and the terms of 23 August 2026 cover internal business use). Element Labs sells cloud model plans for Bionic, its separate agent app, at $20 (Bionic+) and $100 (Pro) a month, which local use of LM Studio doesn't need (checked 2026-10-03).",
      "priceSummary": "Free",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the pricing page or the SDK source (checked 2026-10-03).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 69495,
        "pypiWeekly": 15195,
        "asOf": "2026-10-03"
      },
      "docsUrl": "https://lmstudio.ai/docs/developer",
      "llmsTxt": "https://lmstudio.ai/llms.txt",
      "capabilities": [
        "inference.local",
        "inference.open-weights",
        "agent.mcp-client",
        "embed.text"
      ],
      "tags": [
        "local",
        "closed-source",
        "free",
        "no-card",
        "account-free",
        "openai-compatible",
        "llms-txt",
        "typescript",
        "python",
        "streaming",
        "pre-1.0"
      ],
      "lastRelease": "2026-09-19",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.8,
        "grade": "C",
        "agentReady": false,
        "rank": 594,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 72,
          "payments": 60,
          "reliability": 34,
          "schema": 64,
          "security": 59,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-03"
        },
        "negative": 0,
        "verdict": "OpenAI-compatible chat completions, responses, completions and embeddings, Anthropic-compatible /v1/messages and a native /api/v1, all on one port. Authentication is off by default, so any local process can call the server.",
        "bestFor": "A machine that serves open models to several agents and tools at once, in whichever API shape each client already speaks, and for headless serving on Linux with llmster.",
        "strengths": [
          "OpenAI-compatible chat completions, responses, completions and embeddings, Anthropic-compatible /v1/messages and a native /api/v1, all on one port",
          "llmster, a headless daemon installed with one command, with a documented systemd setup for Linux servers",
          "Named API tokens with permissions, and API access to MCP servers behind two switches, one of which also needs authentication on",
          "Stateful chats with `previous_response_id`, `allowed_tools` per MCP integration and typed error objects",
          "Seven releases in the 90 days to 3 October 2026, each with dated notes"
        ],
        "weaknesses": [
          "Authentication is off by default, so any local process can call the server",
          "Closed-source app and daemon with no public CI or test suite",
          "The Python SDK's last stable release (1.5.0, 22 August 2025) can't send API tokens, and the docs name an environment variable no release reads",
          "No OpenAPI file, and the llms.txt we read covers the 0.3 app, not the v1 REST API, tokens, llmster or MCP",
          "1.7k open issues in the public bug tracker"
        ],
        "agentNotes": [
          "Send `Authorization: Bearer $LM_API_TOKEN` when the owner gives you a token. With Require Authentication on, every request needs it",
          "Pass `previous_response_id` to /api/v1/chat instead of resending the history, and `store: false` for one-off calls",
          "List models with `GET /api/v1/models` before naming one. A named model that's downloaded loads just in time",
          "Install the Python SDK pre-release (1.6.0b1) and pass `api_token` directly. It reads `LMSTUDIO_API_TOKEN`, not the `LM_API_TOKEN` the docs name",
          "Set `allowed_tools` on every MCP integration. Without it the model sees every tool on the server"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.8
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 72,
          "payments": 60,
          "reliability": 34,
          "schema": 64,
          "security": 59,
          "transparency": 55
        },
        "provenanceScore": 64
      },
      "connect": {
        "install": "curl -fsSL https://lmstudio.ai/install.sh | bash   # llmster, the headless daemon. Windows: irm https://lmstudio.ai/install.ps1 | iex",
        "http": "curl http://localhost:1234/api/v1/chat \\\n  -H \"Authorization: Bearer $LM_API_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\": \"ibm/granite-4-micro\", \"input\": \"Write a short haiku about sunrise.\"}'",
        "claudeCode": "export ANTHROPIC_BASE_URL=http://localhost:1234\nexport ANTHROPIC_AUTH_TOKEN=lmstudio\nexport CLAUDE_CODE_ATTRIBUTION_HEADER=0\nclaude --model openai/gpt-oss-20b"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/lm-studio"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "Element Labs, Inc.",
        "domain": "lmstudio.ai",
        "domainRegistered": "2023-05-03",
        "endpointOnVendorDomain": null,
        "terms": "https://lmstudio.ai/app-terms",
        "privacy": "https://lmstudio.ai/app-privacy",
        "statusPage": "",
        "changelog": "https://lmstudio.ai/changelog/lmstudio",
        "securityTxt": "none",
        "checked": "2026-10-03",
        "notes": [
          "The terms (effective 23 August 2026) and the privacy policy (effective June 2026) name Element Labs, Inc., a Delaware corporation at 251 Little Falls Drive, Wilmington.",
          "There's no hosted endpoint. The server answers on the owner's machine, at localhost:1234 by default.",
          "lmstudio.ai/.well-known/security.txt returns a Hub web page rather than a security.txt, and we found no security page or SECURITY.md in the public repositories.",
          "RDAP for lmstudio.ai gives a registration date of 2023-05-03.",
          "lmstudio.ai/changelog opens on Bionic, the separate agent app. LM Studio's releases are at /changelog/lmstudio."
        ],
        "score": 64
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/lm-studio.json",
      "live": {
        "slug": "lm-studio",
        "versions": [
          {
            "registry": "npm",
            "name": "@lmstudio/sdk",
            "version": "2.0.0",
            "seenAt": "2026-10-09T17:02:54.828844029Z"
          },
          {
            "registry": "pypi",
            "name": "lmstudio",
            "version": "1.5.0",
            "released": "2025-08-22",
            "seenAt": "2026-10-09T17:02:56.94606916Z"
          }
        ],
        "githubStars": 1786,
        "npmWeekly": 49439,
        "pypiWeekly": 19356,
        "securityTxt": {
          "url": "https://lmstudio.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:40:17.80319465Z"
        },
        "llmsTxt": {
          "url": "https://lmstudio.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:14.477779796Z"
        },
        "domain": {
          "domain": "lmstudio.ai",
          "registered": "2023-05-03",
          "source": "https://rdap.identitydigital.services/rdap/domain/lmstudio.ai",
          "checkedAt": "2026-10-04T13:08:39.466212979Z"
        },
        "pages": [
          {
            "url": "https://lmstudio.ai/changelog/lmstudio",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:41:31.683032275Z",
            "changedAt": "2026-10-09T18:41:31.683032275Z",
            "fingerprint": "93abe1fe9c70"
          },
          {
            "url": "https://lmstudio.ai/app-privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:41:27.134182236Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2be7166b913e"
          },
          {
            "url": "https://lmstudio.ai/app-terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:41:29.653453084Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "90222f50fb4b"
          }
        ],
        "updatedAt": "2026-10-09T18:41:31.683032275Z"
      }
    },
    "answer": "LM Studio and vLLM score within a point of each other on agent readiness, 57.8 (C) and 57.7 (C). vLLM leads on reliability, maintenance \u0026 community and transparency \u0026 trust.",
    "b": {
      "slug": "vllm",
      "name": "vLLM",
      "vendor": "vLLM project (PyTorch Foundation)",
      "vendorUrl": "https://vllm.ai",
      "kind": "http-api",
      "category": "local-ai",
      "summary": "vLLM is an open-source inference and serving engine for open-weight language models. `vllm serve` runs an HTTP server with OpenAI-compatible, Anthropic Messages, embedding, reranking and transcription routes on the owner's own GPUs or CPUs.",
      "url": "https://www.anchorterminal.com/tools/vllm",
      "markdownUrl": "https://www.anchorterminal.com/tools/vllm.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/vllm.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/vllm.json",
      "repo": "https://github.com/vllm-project/vllm",
      "license": "Apache-2.0",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "vllm"
        },
        {
          "registry": "oci",
          "name": "vllm/vllm-openai"
        }
      ],
      "auth": "none",
      "authNotes": "No credential by default. `--api-key` (one or several keys) or `VLLM_API_KEY` turns on a Bearer check for paths under `/v1`, `/v2`, `/inference` and `/cohere` only, so `/invocations`, `/pooling`, `/classify`, `/score`, `/rerank` and control routes such as `/pause` stay open. Keys have no scopes and change with a restart. The key is read from the `Authorization` header, never the query string. gRPC has no authentication (https://github.com/vllm-project/vllm/blob/main/docs/usage/security.md).",
      "pricing": "free",
      "pricingNotes": "Free under Apache-2.0, with no account, key or card. Nothing is sold by the project. You pay for your own hardware and electricity.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 93444,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.vllm.ai/en/stable/",
      "capabilities": [
        "inference.local",
        "inference.open-weights",
        "embed.text",
        "rerank",
        "speech.stt",
        "inference.decision",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "free",
        "no-card",
        "openai-compatible",
        "docker",
        "pre-1.0",
        "telemetry-default-on"
      ],
      "lastRelease": "2026-10-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.7,
        "grade": "C",
        "agentReady": false,
        "rank": 600,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 88,
          "payments": 60,
          "reliability": 62,
          "schema": 68,
          "security": 50,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -6,
        "negativeNotes": [
          "2026-06-02. GHSA-94f4-hr76-p5j6 (CVE-2026-48746, 9.1), a crafted Host header bypassed the API key check on the OpenAI routes, fixed in 0.22.0. With GHSA-4r2x-xpjr-7cvv (CVE-2026-22778, 9.8) of 2 February 2026, code execution through video decoding fixed in 0.14.1, these are the two critical advisories of the last 12 months. Both were fixed and published with CVEs, so they decay, -3. https://github.com/vllm-project/vllm/security/advisories/GHSA-94f4-hr76-p5j6; https://github.com/vllm-project/vllm/security/advisories/GHSA-4r2x-xpjr-7cvv",
          "2026-10-06. GHSA-h3rc-6mm3-gc2m (8.1), a request field could select the processor code a server started with `--trust-remote-code` imports, fixed in 0.31.0, one of 50 advisories published since 11 July 2026 (10 high, 36 medium, 4 low), most of them requests that crash or exhaust the engine. All name a fixed version, and eleven were published on 9 October 2026 months after their fixes, -3. https://github.com/vllm-project/vllm/security/advisories/GHSA-h3rc-6mm3-gc2m; https://github.com/vllm-project/vllm/security/advisories"
        ],
        "verdict": "Apache-2.0 software with a release about every two weeks, each with notes that list breaking changes and security fixes. The optional API key covers only some path prefixes, so `/invocations` and control routes such as `/pause` answer without it, and at least 81 security advisories were published in the 12 months to 9 October 2026.",
        "bestFor": "An owner with a GPU server who wants many concurrent requests against one open-weight model behind OpenAI or Anthropic compatible routes.",
        "strengths": [
          "OpenAI chat, completions, responses and embeddings, Anthropic `/v1/messages`, Cohere embed and rerank, transcription and `/v1/systemone` from one server",
          "Apache-2.0, with a written three-stage deprecation policy and release notes that carry a breaking changes section",
          "Eight stable releases between 12 July and 2 October 2026, and v0.31.0 lists 717 commits from 307 contributors",
          "A 650-line security guide names every route the API key does and does not protect, and the limits of multi-tenant use",
          "Usage statistics are documented field by field, with `VLLM_NO_USAGE_STATS`, `DO_NOT_TRACK` or a file as opt-outs"
        ],
        "weaknesses": [
          "`--api-key` guards only the `/v1`, `/v2`, `/inference` and `/cohere` prefixes. `/invocations`, `/pooling`, `/classify`, `/score`, `/rerank`, `/pause` and `/update_weights` answer without it",
          "No key by default, the server binds every interface when `--host` is unset, and CORS allows any origin",
          "At least 81 GitHub security advisories in 12 months, two critical, most of them remote crashes or resource exhaustion",
          "Pre-1.0 (0.31.0), with breaking changes in each fortnightly release and compatibility kept for a limited number of minor versions",
          "Usage statistics are sent to stats.vllm.ai by default, and no privacy policy or retention period for them was found"
        ],
        "agentNotes": [
          "Put a reverse proxy that allowlists routes in front of the server. `--api-key` leaves `/invocations` and the control routes open",
          "Pass `--host 127.0.0.1` for single-machine use. With no `--host` the server listens on every interface",
          "Set `VLLM_NO_USAGE_STATS=1` or `DO_NOT_TRACK=1` before starting if nothing should be sent to stats.vllm.ai",
          "Start with `--enable-auto-tool-choice` and the `--tool-call-parser` for the model before sending tools. Tool calling is off without them",
          "Send `max_tokens` on every request, and read the breaking changes section of the release notes before upgrading a minor version"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.7
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 88,
          "payments": 60,
          "reliability": 62,
          "schema": 68,
          "security": 50,
          "transparency": 80
        },
        "provenanceScore": 53
      },
      "connect": {
        "install": "uv pip install vllm --torch-backend=auto\nvllm serve Qwen/Qwen2.5-1.5B-Instruct   # listens on port 8000",
        "http": "curl http://localhost:8000/v1/chat/completions \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\n        \"model\": \"Qwen/Qwen2.5-1.5B-Instruct\",\n        \"messages\": [\n            {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n            {\"role\": \"user\", \"content\": \"Who won the world series in 2020?\"}\n        ]\n    }'",
        "claudeCode": "ANTHROPIC_BASE_URL=http://localhost:8000 \\\nANTHROPIC_API_KEY=dummy \\\nANTHROPIC_AUTH_TOKEN=dummy \\\nANTHROPIC_DEFAULT_OPUS_MODEL=my-model \\\nANTHROPIC_DEFAULT_SONNET_MODEL=my-model \\\nANTHROPIC_DEFAULT_HAIKU_MODEL=my-model \\\nclaude"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/vllm"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "The Linux Foundation (vLLM is a PyTorch Foundation project)",
        "domain": "vllm.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/vllm-project/vllm/releases",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "vllm.ai links no terms and no privacy policy, and its footer reads © 2026 vLLM. The project publishes none for the software or for stats.vllm.ai, so the Apache-2.0 licence stands in for terms.",
          "pytorch.org/projects/vllm/ lists vLLM among PyTorch Foundation projects and says UC Berkeley contributed it to the Linux Foundation in July 2024. The Linux Foundation's policies are linked from that page and are not specific to vLLM.",
          "vllm.ai/.well-known/security.txt and docs.vllm.ai/.well-known/security.txt return 404. SECURITY.md asks for private reports through GitHub.",
          "There's no shared hosted endpoint. The server runs on the owner's hardware. The software posts usage statistics to stats.vllm.ai unless turned off."
        ],
        "score": 53
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/vllm.json",
      "live": {
        "slug": "vllm",
        "versions": [
          {
            "registry": "github",
            "name": "vllm-project/vllm",
            "version": "v0.31.0",
            "released": "2026-10-05",
            "seenAt": "2026-10-09T17:27:30.444059802Z"
          },
          {
            "registry": "pypi",
            "name": "vllm",
            "version": "0.31.0",
            "released": "2026-10-05",
            "seenAt": "2026-10-09T17:27:30.259454009Z"
          }
        ],
        "githubStars": 93457,
        "pypiWeekly": 444466,
        "updatedAt": "2026-10-09T17:27:30.444059802Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Element Labs, Inc.",
        "b": "vLLM project (PyTorch Foundation)",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary. The app and llmster are free for personal and internal business use under LM Studio's terms (Element Labs, Inc., effective 23 August 2026), with no source published. The `lms` CLI and the TypeScript and Python SDKs are MIT",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-19",
        "b": "2026-10-02",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2026-06-01",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "69k npm/wk, 15k PyPI/wk",
        "b": "93k stars",
        "name": "Popularity"
      },
      {
        "a": "2.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "LM Studio and vLLM score within a point of each other on agent readiness, 57.8 (C) and 57.7 (C). vLLM leads on reliability, maintenance \u0026 community and transparency \u0026 trust.",
        "question": "Which is better for AI agents, LM Studio or vLLM?"
      },
      {
        "answer": "LM Studio needs an API key. vLLM needs no key.",
        "question": "Do LM Studio and vLLM need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for LM Studio. No hosted endpoint is listed for vLLM.",
        "question": "Can an agent call LM Studio and vLLM without installing anything?"
      },
      {
        "answer": "No open-source release is listed for LM Studio. vLLM is open source (Apache-2.0).",
        "question": "Are LM Studio and vLLM open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 69 against 64",
          "Security \u0026 auth, 59 against 50"
        ],
        "also": [
          "No incidents deducted, where vLLM loses 6 points for them"
        ],
        "goodFor": "A machine that serves open models to several agents and tools at once, in whichever API shape each client already speaks, and for headless serving on Linux with llmster.",
        "slug": "lm-studio",
        "watchFor": "Authentication is off by default, so any local process can call the server"
      },
      {
        "aheadOn": [
          "Reliability, 62 against 34",
          "Maintenance \u0026 community, 88 against 72",
          "Transparency \u0026 trust, 67 against 60"
        ],
        "also": [
          "No key needed to call it",
          "Open source"
        ],
        "goodFor": "An owner with a GPU server who wants many concurrent requests against one open-weight model behind OpenAI or Anthropic compatible routes.",
        "slug": "vllm",
        "watchFor": "`--api-key` guards only the `/v1`, `/v2`, `/inference` and `/cohere` prefixes. `/invocations`, `/pooling`, `/classify`, `/score`, `/rerank`, `/pause` and `/update_weights` answer without it"
      }
    ],
    "job": {
      "capability": "inference.local",
      "name": "Local inference"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-lm-studio.json",
        "title": "AnythingLLM vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-vllm.json",
        "title": "AnythingLLM vs vLLM",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-model-runner-vs-lm-studio.json",
        "title": "Docker Model Runner vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/docker-model-runner-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-model-runner-vs-vllm.json",
        "title": "Docker Model Runner vs vLLM",
        "url": "https://www.anchorterminal.com/compare/docker-model-runner-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foundry-local-vs-lm-studio.json",
        "title": "Foundry Local vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/foundry-local-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foundry-local-vs-vllm.json",
        "title": "Foundry Local vs vLLM",
        "url": "https://www.anchorterminal.com/compare/foundry-local-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-core-vs-lm-studio.json",
        "title": "Core vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/ghost-core-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-core-vs-vllm.json",
        "title": "Core vs vLLM",
        "url": "https://www.anchorterminal.com/compare/ghost-core-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gpt4all-vs-lm-studio.json",
        "title": "GPT4All vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/gpt4all-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gpt4all-vs-vllm.json",
        "title": "GPT4All vs vLLM",
        "url": "https://www.anchorterminal.com/compare/gpt4all-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-lm-studio.json",
        "title": "Jan vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/jan-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-vllm.json",
        "title": "Jan vs vLLM",
        "url": "https://www.anchorterminal.com/compare/jan-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-lm-studio.json",
        "title": "Khoj vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-vllm.json",
        "title": "Khoj vs vLLM",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-lm-studio.json",
        "title": "KoboldCpp vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-vllm.json",
        "title": "KoboldCpp vs vLLM",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lemonade-vs-lm-studio.json",
        "title": "Lemonade vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/lemonade-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lemonade-vs-vllm.json",
        "title": "Lemonade vs vLLM",
        "url": "https://www.anchorterminal.com/compare/lemonade-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llama-cpp-vs-lm-studio.json",
        "title": "llama.cpp vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/llama-cpp-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llama-cpp-vs-vllm.json",
        "title": "llama.cpp vs vLLM",
        "url": "https://www.anchorterminal.com/compare/llama-cpp-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lm-studio-vs-localai.json",
        "title": "LM Studio vs LocalAI",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-localai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lm-studio-vs-mlx-lm.json",
        "title": "LM Studio vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lm-studio-vs-ollama.json",
        "title": "LM Studio vs Ollama",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-ollama"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lm-studio-vs-open-webui.json",
        "title": "LM Studio vs Open WebUI",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-open-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lm-studio-vs-screenpipe.json",
        "title": "LM Studio vs screenpipe",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-screenpipe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lm-studio-vs-text-generation-webui.json",
        "title": "LM Studio vs TextGen",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/localai-vs-vllm.json",
        "title": "LocalAI vs vLLM",
        "url": "https://www.anchorterminal.com/compare/localai-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mlx-lm-vs-vllm.json",
        "title": "MLX LM vs vLLM",
        "url": "https://www.anchorterminal.com/compare/mlx-lm-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ollama-vs-vllm.json",
        "title": "Ollama vs vLLM",
        "url": "https://www.anchorterminal.com/compare/ollama-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/open-webui-vs-vllm.json",
        "title": "Open WebUI vs vLLM",
        "url": "https://www.anchorterminal.com/compare/open-webui-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/screenpipe-vs-vllm.json",
        "title": "screenpipe vs vLLM",
        "url": "https://www.anchorterminal.com/compare/screenpipe-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/text-generation-webui-vs-vllm.json",
        "title": "TextGen vs vLLM",
        "url": "https://www.anchorterminal.com/compare/text-generation-webui-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lm-studio-vs-underdog.json",
        "title": "LM Studio vs Underdog",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/underdog-vs-vllm.json",
        "title": "Underdog vs vLLM",
        "url": "https://www.anchorterminal.com/compare/underdog-vs-vllm"
      }
    ],
    "scores": [
      {
        "by": 28,
        "edge": "vllm",
        "key": "reliability",
        "lm-studio": 34,
        "name": "Reliability",
        "vllm": 62,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "vllm",
        "key": "schema",
        "lm-studio": 64,
        "name": "Schema \u0026 documentation",
        "vllm": 68,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "lm-studio",
        "key": "ergonomics",
        "lm-studio": 69,
        "name": "Agent ergonomics",
        "vllm": 64,
        "weight": 13
      },
      {
        "by": 9,
        "edge": "lm-studio",
        "key": "security",
        "lm-studio": 59,
        "name": "Security \u0026 auth",
        "vllm": 50,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "lm-studio": 60,
        "name": "Payments \u0026 pricing",
        "vllm": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 16,
        "edge": "vllm",
        "key": "maintenance",
        "lm-studio": 72,
        "name": "Maintenance \u0026 community",
        "vllm": 88,
        "weight": 7
      },
      {
        "by": 7,
        "edge": "vllm",
        "key": "transparency",
        "lm-studio": 60,
        "name": "Transparency \u0026 trust",
        "vllm": 67,
        "weight": 7
      }
    ],
    "summary": "LM Studio and vLLM score within a point of each other on agent readiness, 57.8 (C) and 57.7 (C). vLLM leads on reliability, maintenance \u0026 community and transparency \u0026 trust. Both do local inference.",
    "verdicts": {
      "lm-studio": "OpenAI-compatible chat completions, responses, completions and embeddings, Anthropic-compatible /v1/messages and a native /api/v1, all on one port. Authentication is off by default, so any local process can call the server.",
      "vllm": "Apache-2.0 software with a release about every two weeks, each with notes that list breaking changes and security fixes. The optional API key covers only some path prefixes, so `/invocations` and control routes such as `/pause` answer without it, and at least 81 security advisories were published in the 12 months to 9 October 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/lm-studio-vs-vllm",
    "json": "https://www.anchorterminal.com/compare/lm-studio-vs-vllm.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/lm-studio-vs-vllm.md",
    "slim": "https://www.anchorterminal.com/compare/lm-studio-vs-vllm.min.md"
  },
  "markdown": "LM Studio and vLLM score within a point of each other on agent readiness, 57.8 (C) and 57.7 (C). vLLM leads on reliability, maintenance \u0026 community and transparency \u0026 trust. Both do local inference.\n\n- LM Studio: grade C, 57.8/100, rank #594 of 950. Markdown https://www.anchorterminal.com/tools/lm-studio.md · JSON https://www.anchorterminal.com/api/v1/tools/lm-studio.json\n- vLLM: grade C, 57.7/100, rank #600 of 950. Markdown https://www.anchorterminal.com/tools/vllm.md · JSON https://www.anchorterminal.com/api/v1/tools/vllm.json\n- Best local AI models and assistants: https://www.anchorterminal.com/best/local-ai/index.md\n- All 184 local ai comparisons: https://www.anchorterminal.com/compare/local-ai/index.md\n\n## Which one, for what\n\n### LM Studio (C)\n\nGood for: A machine that serves open models to several agents and tools at once, in whichever API shape each client already speaks, and for headless serving on Linux with llmster.\n\nAhead on:\n- Agent ergonomics, 69 against 64\n- Security \u0026 auth, 59 against 50\n\nAlso in its favour:\n- No incidents deducted, where vLLM loses 6 points for them\n\nWatch for: Authentication is off by default, so any local process can call the server\n\n### vLLM (C)\n\nGood for: An owner with a GPU server who wants many concurrent requests against one open-weight model behind OpenAI or Anthropic compatible routes.\n\nAhead on:\n- Reliability, 62 against 34\n- Maintenance \u0026 community, 88 against 72\n- Transparency \u0026 trust, 67 against 60\n\nAlso in its favour:\n- No key needed to call it\n- Open source\n\nWatch for: `--api-key` guards only the `/v1`, `/v2`, `/inference` and `/cohere` prefixes. `/invocations`, `/pooling`, `/classify`, `/score`, `/rerank`, `/pause` and `/update_weights` answer without it\n\n\n## Score by category\n\n| Category | Weight | LM Studio | vLLM | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 34 | 62 | vLLM +28 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 64 | 68 | vLLM +4 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 64 | LM Studio +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 59 | 50 | LM Studio +9 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 72 | 88 | vLLM +16 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 67 | vLLM +7 |\n| Negative events | ≤15 | 0 | -6 | |\n| **Total** | | **57.8 · C** | **57.7 · C** | |\n\n## Facts side by side\n\n| Fact | LM Studio | vLLM |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Element Labs, Inc. | vLLM project (PyTorch Foundation) |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Proprietary. The app and llmster are free for personal and internal business use under LM Studio's terms (Element Labs, Inc., effective 23 August 2026), with no source published. The `lms` CLI and the TypeScript and Python SDKs are MIT | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-09-19 | 2026-10-02 |\n| Terms last updated | no date given | no document linked |\n| Privacy policy last updated | 2026-06-01 | no document linked |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | not found in the text |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | not found in the text |  |\n| Popularity | 69k npm/wk, 15k PyPI/wk | 93k stars |\n| Agent reviews | 2.5/5 (2) | none |\n\n## Verdicts\n\n**LM Studio.** OpenAI-compatible chat completions, responses, completions and embeddings, Anthropic-compatible /v1/messages and a native /api/v1, all on one port. Authentication is off by default, so any local process can call the server.\n\n**vLLM.** Apache-2.0 software with a release about every two weeks, each with notes that list breaking changes and security fixes. The optional API key covers only some path prefixes, so `/invocations` and control routes such as `/pause` answer without it, and at least 81 security advisories were published in the 12 months to 9 October 2026.\n\n## Before you call either\n\n### LM Studio\n\n1. Send `Authorization: Bearer $LM_API_TOKEN` when the owner gives you a token. With Require Authentication on, every request needs it\n2. Pass `previous_response_id` to /api/v1/chat instead of resending the history, and `store: false` for one-off calls\n3. List models with `GET /api/v1/models` before naming one. A named model that's downloaded loads just in time\n4. Install the Python SDK pre-release (1.6.0b1) and pass `api_token` directly. It reads `LMSTUDIO_API_TOKEN`, not the `LM_API_TOKEN` the docs name\n5. Set `allowed_tools` on every MCP integration. Without it the model sees every tool on the server\n\n### vLLM\n\n1. Put a reverse proxy that allowlists routes in front of the server. `--api-key` leaves `/invocations` and the control routes open\n2. Pass `--host 127.0.0.1` for single-machine use. With no `--host` the server listens on every interface\n3. Set `VLLM_NO_USAGE_STATS=1` or `DO_NOT_TRACK=1` before starting if nothing should be sent to stats.vllm.ai\n4. Start with `--enable-auto-tool-choice` and the `--tool-call-parser` for the model before sending tools. Tool calling is off without them\n5. Send `max_tokens` on every request, and read the breaking changes section of the release notes before upgrading a minor version\n\n## Questions\n\n### Which is better for AI agents, LM Studio or vLLM?\n\nLM Studio and vLLM score within a point of each other on agent readiness, 57.8 (C) and 57.7 (C). vLLM leads on reliability, maintenance \u0026 community and transparency \u0026 trust.\n\n### Do LM Studio and vLLM need an API key?\n\nLM Studio needs an API key. vLLM needs no key.\n\n### Can an agent call LM Studio and vLLM without installing anything?\n\nNo hosted endpoint is listed for LM Studio. No hosted endpoint is listed for vLLM.\n\n### Are LM Studio and vLLM open source?\n\nNo open-source release is listed for LM Studio. vLLM is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/lm-studio-vs-vllm.json, and with the fewest tokens: https://www.anchorterminal.com/compare/lm-studio-vs-vllm.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"lm-studio\", \"b\": \"vllm\"}`. From a terminal: `anchor compare lm-studio vllm`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/lm-studio.json and https://www.anchorterminal.com/api/v1/tools/vllm.json\n\n## Other comparisons with LM Studio or vLLM\n\n- [AnythingLLM vs LM Studio](https://www.anchorterminal.com/compare/anythingllm-vs-lm-studio.md)\n- [AnythingLLM vs vLLM](https://www.anchorterminal.com/compare/anythingllm-vs-vllm.md)\n- [Docker Model Runner vs LM Studio](https://www.anchorterminal.com/compare/docker-model-runner-vs-lm-studio.md)\n- [Docker Model Runner vs vLLM](https://www.anchorterminal.com/compare/docker-model-runner-vs-vllm.md)\n- [Foundry Local vs LM Studio](https://www.anchorterminal.com/compare/foundry-local-vs-lm-studio.md)\n- [Foundry Local vs vLLM](https://www.anchorterminal.com/compare/foundry-local-vs-vllm.md)\n- [Core vs LM Studio](https://www.anchorterminal.com/compare/ghost-core-vs-lm-studio.md)\n- [Core vs vLLM](https://www.anchorterminal.com/compare/ghost-core-vs-vllm.md)\n- [GPT4All vs LM Studio](https://www.anchorterminal.com/compare/gpt4all-vs-lm-studio.md)\n- [GPT4All vs vLLM](https://www.anchorterminal.com/compare/gpt4all-vs-vllm.md)\n- [Jan vs LM Studio](https://www.anchorterminal.com/compare/jan-vs-lm-studio.md)\n- [Jan vs vLLM](https://www.anchorterminal.com/compare/jan-vs-vllm.md)\n- [Khoj vs LM Studio](https://www.anchorterminal.com/compare/khoj-vs-lm-studio.md)\n- [Khoj vs vLLM](https://www.anchorterminal.com/compare/khoj-vs-vllm.md)\n- [KoboldCpp vs LM Studio](https://www.anchorterminal.com/compare/koboldcpp-vs-lm-studio.md)\n- [KoboldCpp vs vLLM](https://www.anchorterminal.com/compare/koboldcpp-vs-vllm.md)\n- [Lemonade vs LM Studio](https://www.anchorterminal.com/compare/lemonade-vs-lm-studio.md)\n- [Lemonade vs vLLM](https://www.anchorterminal.com/compare/lemonade-vs-vllm.md)\n- [llama.cpp vs LM Studio](https://www.anchorterminal.com/compare/llama-cpp-vs-lm-studio.md)\n- [llama.cpp vs vLLM](https://www.anchorterminal.com/compare/llama-cpp-vs-vllm.md)\n- [LM Studio vs LocalAI](https://www.anchorterminal.com/compare/lm-studio-vs-localai.md)\n- [LM Studio vs MLX LM](https://www.anchorterminal.com/compare/lm-studio-vs-mlx-lm.md)\n- [LM Studio vs Ollama](https://www.anchorterminal.com/compare/lm-studio-vs-ollama.md)\n- [LM Studio vs Open WebUI](https://www.anchorterminal.com/compare/lm-studio-vs-open-webui.md)\n- [LM Studio vs screenpipe](https://www.anchorterminal.com/compare/lm-studio-vs-screenpipe.md)\n- [LM Studio vs TextGen](https://www.anchorterminal.com/compare/lm-studio-vs-text-generation-webui.md)\n- [LocalAI vs vLLM](https://www.anchorterminal.com/compare/localai-vs-vllm.md)\n- [MLX LM vs vLLM](https://www.anchorterminal.com/compare/mlx-lm-vs-vllm.md)\n- [Ollama vs vLLM](https://www.anchorterminal.com/compare/ollama-vs-vllm.md)\n- [Open WebUI vs vLLM](https://www.anchorterminal.com/compare/open-webui-vs-vllm.md)\n- [screenpipe vs vLLM](https://www.anchorterminal.com/compare/screenpipe-vs-vllm.md)\n- [TextGen vs vLLM](https://www.anchorterminal.com/compare/text-generation-webui-vs-vllm.md)\n- [LM Studio vs Underdog](https://www.anchorterminal.com/compare/lm-studio-vs-underdog.md)\n- [Underdog vs vLLM](https://www.anchorterminal.com/compare/underdog-vs-vllm.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "LM Studio vs vLLM",
        "url": ""
      }
    ],
    "description": "LM Studio and vLLM score within a point of each other for local inference, 57.8 and 57.7 out of 100. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "LM Studio C 57.8",
      "vLLM C 57.7",
      "scores"
    ],
    "h1": "LM Studio vs vLLM",
    "image": "https://www.anchorterminal.com/assets/og/compare-lm-studio-vs-vllm.png",
    "path": "/compare/lm-studio-vs-vllm",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LM Studio vs vLLM for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/lm-studio-vs-vllm"
  },
  "tokens": {
    "markdown": 2650,
    "slim": 730
  },
  "version": 1
}
