{
  "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",
      "dns": "lm-studio.grade.anchorterminal.com",
      "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-10-31",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.1,
        "grade": "C",
        "agentReady": false,
        "rank": 877,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 72,
          "payments": 60,
          "reliability": 36,
          "schema": 56,
          "security": 59,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": -2,
        "negativeNotes": [
          "-2, 30 October 2026. CVE-2026-119979 (VulnCheck, CVSS 4.0 8.7 High, published 30 October 2026), a path traversal in the model downloader that let a crafted model repository write files outside the models directory and run a Python payload on every launch. Fixed in 0.4.22+1 (28 August 2026), whose notes don't mention it, and published under two months ago, so it counts 2. https://www.vulncheck.com/advisories/lm-studio-before-0.4.22-1-path-traversal-via-model-downloader"
        ],
        "verdict": "OpenAI-compatible and Anthropic-compatible endpoints plus a native /api/v1 on one port, with eight dated releases between August and October 2026. Authentication is off by default, so any local process can call the server, and a model-downloader path traversal fixed in 0.4.22+1 was disclosed by VulnCheck with no vendor advisory.",
        "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",
          "Eight releases in the 90 days to 4 November 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",
          "A High path traversal in the model downloader (CVE-2026-119979) was fixed silently and disclosed by a third party"
        ],
        "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.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.1
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 72,
          "payments": 60,
          "reliability": 36,
          "schema": 56,
          "security": 59,
          "transparency": 53
        },
        "provenanceScore": 70,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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": 70
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/lm-studio.json",
      "live": {
        "slug": "lm-studio",
        "versions": [
          {
            "registry": "npm",
            "name": "@lmstudio/sdk",
            "version": "2.1.0",
            "seenAt": "2026-11-06T23:41:04.409380313Z"
          },
          {
            "registry": "pypi",
            "name": "lmstudio",
            "version": "1.5.0",
            "released": "2025-08-22",
            "seenAt": "2026-11-06T23:41:06.365638562Z"
          }
        ],
        "githubStars": 1807,
        "npmWeekly": 71393,
        "pypiWeekly": 35026,
        "securityTxt": {
          "url": "https://lmstudio.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:49.367688138Z"
        },
        "llmsTxt": {
          "url": "https://lmstudio.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:53.370660931Z"
        },
        "domain": {
          "domain": "lmstudio.ai",
          "registered": "2023-05-03",
          "source": "https://rdap.identitydigital.services/rdap/domain/lmstudio.ai",
          "checkedAt": "2026-11-01T14:07:09.194398863Z"
        },
        "pages": [
          {
            "url": "https://lmstudio.ai/changelog/lmstudio",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:13:25.27243665Z",
            "changedAt": "2026-10-31T06:15:40.035263188Z",
            "fingerprint": "6edf134191d4"
          },
          {
            "url": "https://lmstudio.ai/app-privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:13:20.297309747Z",
            "changedAt": "2026-10-20T00:01:04.915304023Z",
            "fingerprint": "4795475d4402"
          },
          {
            "url": "https://lmstudio.ai/app-terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:13:23.088749234Z",
            "changedAt": "2026-10-18T23:33:05.946599795Z",
            "fingerprint": "e7f39a1b51f0"
          }
        ],
        "github": {
          "repo": "lmstudio-ai/lmstudio-js",
          "checkedAt": "2026-11-02T09:01:26.936895012Z",
          "stars": 1806,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-28T16:06:40Z",
          "openIssues": 88,
          "openPRs": 13,
          "issuesOpened90d": 12,
          "issuesClosed90d": 3,
          "prsMerged90d": 48,
          "replies": {
            "sampled": 25,
            "unanswered": 18,
            "medianDays": 0.7
          }
        },
        "updatedAt": "2026-11-07T16:00:49.367688138Z"
      }
    },
    "answer": "LM Studio scores 55.1 (C) on agent readiness against PrivateGPT's 53.2 (D), and leads in 3 of 7 scored categories. PrivateGPT leads on reliability and schema \u0026 documentation.",
    "b": {
      "slug": "privategpt",
      "name": "PrivateGPT",
      "vendor": "Zylon (PriBAI Technology Spain S.L.)",
      "vendorUrl": "https://docs.privategpt.dev",
      "kind": "http-api",
      "category": "local-ai",
      "summary": "PrivateGPT is Zylon's open-source server that puts an Anthropic-style messages API, document ingestion, retrieval with citations, built-in tools and MCP connectors in front of any OpenAI-compatible local model server. The owner runs it.",
      "url": "https://www.anchorterminal.com/tools/privategpt",
      "markdownUrl": "https://www.anchorterminal.com/tools/privategpt.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/privategpt.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/privategpt.json",
      "dns": "privategpt.grade.anchorterminal.com",
      "repo": "https://github.com/zylon-ai/private-gpt",
      "license": "Apache-2.0",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "oci",
          "name": "zylonai/private-gpt"
        }
      ],
      "auth": "none",
      "authNotes": "Authentication is off by default. When `server.auth.enabled` is set, every request must carry one static secret in the `Authorization` header, compared with the whole header value. There are no per-user keys, scopes or rotation, and the docs show it as a Bearer token, a Basic value and an Anthropic API key in different places (checked 2026-11-06).",
      "pricing": "free",
      "pricingNotes": "Free under Apache-2.0 with no account or card. The cost is the owner's hardware and model server. Zylon sells a separate enterprise platform built on PrivateGPT through demos, with no public price (checked 2026-11-06).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the source, the OpenAPI file or the docs (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 57600,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.privategpt.dev/introduction",
      "llmsTxt": "https://docs.privategpt.dev/llms.txt",
      "openapi": "https://raw.githubusercontent.com/zylon-ai/private-gpt/main/fern/openapi/openapi.json",
      "capabilities": [
        "inference.local",
        "memory.search",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "docker",
        "openapi",
        "llms-txt",
        "rag",
        "mcp-client",
        "anthropic-compatible",
        "python",
        "free"
      ],
      "lastRelease": "2026-06-18",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.2,
        "grade": "D",
        "agentReady": false,
        "rank": 954,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 41,
          "payments": 60,
          "reliability": 70,
          "schema": 83,
          "security": 32,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": -7,
        "negativeNotes": [
          "Issue #2269, opened 11 June 2026, reports that the async ingestion API reads any local path given as a URI artifact. The stale bot closed it as not planned on 5 July with no maintainer reply, and `load_file_from_uri` in the source of 29 October 2026 still falls back to reading a local file for any value that isn't a URL, s3 or base64. With authentication off and a 0.0.0.0 bind by default, that is an open file-read path on a default install. Read from the source, not run (-7). https://github.com/zylon-ai/private-gpt/issues/2269"
        ],
        "verdict": "PrivateGPT 1.0 is an Apache-2.0 server that gives local models an Anthropic-style messages API with retrieval, citations, tools and MCP, documented by an OpenAPI file and llms.txt. A default start has authentication off, listens on every interface and reads local paths given as URIs, and a public report of that was closed without a reply.",
        "bestFor": "A local backend for apps and agents that want an Anthropic-style API with document retrieval, citations and tools over local models.",
        "strengths": [
          "Messages API modelled on Anthropic's, so Claude Code and Anthropic SDKs work by changing the base URL",
          "OpenAPI file of 38 paths, llms.txt and Markdown copies of every docs page",
          "Retrieval with citations, async ingestion, web, database and tabular tools, and remote MCP servers in one API",
          "Apache-2.0, with no telemetry to Zylon found in the source and OpenTelemetry tracing off by default",
          "Works with Ollama, llama.cpp, vLLM, LM Studio or any OpenAI-compatible server"
        ],
        "weaknesses": [
          "Authentication is off by default, the server binds 0.0.0.0 and CORS allows every origin",
          "When on, authentication is one shared static secret, with no per-user keys or scopes",
          "A June 2026 report of local file reads through URI artifacts was closed by a stale bot, and the source still reads local paths",
          "No release since 1.0.1 in June 2026 while main has moved on, including a breaking change",
          "Code execution runs as a host subprocess with resource limits, not in a container"
        ],
        "agentNotes": [
          "Turn on `server.auth` and bind to 127.0.0.1 before exposing an instance, since a default start answers any caller",
          "Point Anthropic SDKs or Claude Code at the server with `ANTHROPIC_BASE_URL=http://localhost:8080`",
          "Start an OpenAI-compatible model server and an embedding server first, and set `OPENAI_API_BASE` and `OPENAI_EMBEDDING_API_BASE`",
          "Pass ingested documents through `tool_context` to get answers with citations",
          "Treat web fetch, search and MCP results as untrusted, since PrivateGPT documents no prompt-injection handling"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.2
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 41,
          "payments": 60,
          "reliability": 70,
          "schema": 83,
          "security": 32,
          "transparency": 67
        },
        "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": "brew tap zylon-ai/tap\nbrew install private-gpt",
        "http": "curl http://localhost:8080/v1/messages \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\": \"qwen3.5:35b\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain retrieval-augmented generation.\"}]}'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/privategpt"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "PriBAI Technology Spain S.L.",
        "domain": "privategpt.dev",
        "domainRegistered": "2023-10-16",
        "endpointOnVendorDomain": null,
        "terms": "https://github.com/zylon-ai/private-gpt/blob/main/LICENSE",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/zylon-ai/private-gpt/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "Self-hosted software with no hosted endpoint, so the Apache-2.0 licence stands in for terms and no privacy policy is scored.",
          "The zylon.ai terms name PriBAI Technology Spain S.L. (VAT ESB56550130) under Spanish law and cover the website and Zylon services. They forbid access through bots, scripts or scrapers, outside standard search engine or browser use. We read the terms and two public pages.",
          "RDAP gives privategpt.dev a registration date of 16 October 2023.",
          "docs.privategpt.dev/.well-known/security.txt and www.zylon.ai/.well-known/security.txt answer 404. SECURITY.md in the repository is the reporting route.",
          "docs.privategpt.dev and www.zylon.ai robots.txt allow our reader. wheels.privategpt.dev has no robots.txt (404)."
        ],
        "score": 61
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/privategpt.json",
      "live": {
        "slug": "privategpt",
        "versions": [
          {
            "registry": "github",
            "name": "zylon-ai/private-gpt",
            "version": "v1.0.1",
            "released": "2026-06-18",
            "seenAt": "2026-11-06T23:58:40.643071731Z"
          }
        ],
        "githubStars": 57632,
        "securityTxt": {
          "url": "https://privategpt.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:53.351491852Z"
        },
        "llmsTxt": {
          "url": "https://docs.privategpt.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:41.730243326Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/zylon-ai/private-gpt/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:24:15.016082629Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "767d5dd99544"
          },
          {
            "url": "https://raw.githubusercontent.com/zylon-ai/private-gpt/main/LICENSE",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:24:17.075442465Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "839fbbcddc72"
          }
        ],
        "updatedAt": "2026-11-07T15:59:53.351491852Z"
      }
    },
    "edges": [
      {
        "by": 34,
        "category": "reliability",
        "leads": "privategpt",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the local-software lines, since LM Studio and llmster run on the owner's machine with no hosted service behind the API. Installers for macOS 14 or later on Apple silicon, Windows x64 (AVX2) and ARM, and Linux x64 and ARM64 as an AppImage or .deb on Ubuntu 20.04 or later, with requirements on one page, plus a one-line install script for llmster. 0.4.22 (28 August 2026) enabled in-app updates for the AppImage and .deb installs (20). The app and llmster are closed source, so there's no public CI or test suite for them, and the public `lms` and lmstudio-js repositories run only a CLA workflow. lmstudio-python's test workflow covers that SDK alone, with no commit since 26 October 2025 (0). Open issues in the public bug tracker per the 3 October check (1.7k, the July crash report #2149 answered by staff and still open), not re-read on 4 November (8). Versions run 0.4.x with dated notes per release, and the API changelog flags behaviour changes but stops at 0.4.1, per the 3 October check (8). 0.4.28, pre-1.0 (0). 20+0+8+8+0 = 36.",
          "b": "Read with the local-software lines, since PrivateGPT runs on the owner's hardware with no hosted service behind it. Homebrew tap, `uv tool install` from Zylon's own wheel index (not PyPI) and Docker Hub images `zylonai/private-gpt` 1.0.1 of 18 June 2026. Python 3.11 only, stated in pyproject.toml, and it needs a separate OpenAI-compatible model server (17 of 20). tests.yml runs format, lint, typecheck and the tests affected by each push on main, with the full suite of 217 test files on release pull requests. We couldn't see run results because the GitHub API refused us, and issue #2441 of 1 November reports the Claude spec update workflow failing (15 of 25). GitHub shows 3 open issues of about 1,250, because a stale bot closes quiet issues, two security reports among them, with no maintainer reply (12 of 25). release-please keeps a changelog with breaking changes marked, but no release has been cut since 1.0.1 while main carries 51 commits since 8 August, among them a breaking observability change of 23 October (11 of 15). Version 1.0.1 (15). 17 + 15 + 12 + 11 + 15 = 70."
        },
        "scores": {
          "a": 36,
          "b": 70
        }
      },
      {
        "by": 31,
        "category": "maintenance",
        "leads": "lm-studio",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "0.4.28 on 31 October 2026 on the dated changelog (30). Eight releases in the 90 days from 6 August, 0.4.21 (12 August) to 0.4.28, plus lmstudio-js tags for SDK 2.0.0 (21 September) and 2.1.0 (14 October) (20). Closed-source app, so the 0 to 15 scale for closed services. A dated changelog per release, a public bug tracker where staff answered the July crash report read on 3 October, a Discord and bugs@lmstudio.ai (10). Official SDKs for TypeScript (@lmstudio/sdk 2.1.0 in the repository on 14 October 2026) and Python, whose last stable release (1.5.0, 22 August 2025) predates API tokens (9). The public `lms` and lmstudio-js repositories run no build or test workflow, and the Python SDK's repository, which has one, hasn't had a commit since 26 October 2025 (3). 30+20+10+9+3 = 72.",
          "b": "The last release is 1.0.1, dated 16 June 2026 in the changelog and tagged 18 June, 141 days before the check (10 of 30). No release or dated changelog entry in the 90 days since 8 August (0 of 20). Maintainers commit most days and outside pull requests merged in October, but 23 pull requests are open and the stale bot closes issues, including two security reports, with no maintainer reply (13 of 25). Homebrew tap, wheel index and Docker images ship with releases, and Anthropic SDKs work against it. No product MCP server of its own, though it connects to remote MCP servers (10 of 15). Dependabot, uv.lock, actions pinned by commit since 19 October and dependency CVE upgrades in June, July and August (8 of 10). 10 + 0 + 13 + 10 + 8 = 41."
        },
        "scores": {
          "a": 72,
          "b": 41
        }
      },
      {
        "by": 27,
        "category": "schema",
        "leads": "privategpt",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Read with the API lines. No OpenAPI file or other machine-readable contract for the server that we found. Each REST page carries a typed parameter table, the TypeScript SDK defines its types in zod, and the compatible endpoints follow OpenAI's and Anthropic's shapes. Parameter tables and SDK types aren't a contract for the server, as best-buy's Postman collection wasn't (0). An llms.txt of about 2,850 lines at lmstudio.ai that, in what our reader saw, describes the 0.3 app and doesn't mention the v1 REST API, API tokens, llmster or MCP. The docs source is public Markdown on GitHub (6). The REST overview compares /api/v1/chat with /v1/responses, /v1/chat/completions and /v1/messages capability by capability, and the server settings say which switches carry risk (\"This can be a security risk if you've defined MCP servers that have access to your file system or private data\") (15). Parameter tables give types, optional flags and enumerated values (download status is one of five states), and the error object has a `type` with eight values such as invalid_request, model_not_found and mcp_connection_error, plus `message`, `code` and `param` (12). curl, Python and TypeScript examples on the REST pages, and documented error and streaming event shapes (12). Versioned paths (/api/v0, then /api/v1 since 0.4.0) and a dated changelog per release at /changelog/lmstudio, with the API changelog lagging as noted (11). 0+6+15+12+12+11 = 56.",
          "b": "An OpenAPI file of 38 paths in the repository (fern/openapi/openapi.json, version 1.0.1), also served by each instance at /openapi.json, with the messages API modelled on Anthropic's (25). docs.privategpt.dev serves llms.txt, a Markdown copy of every page and a docs MCP server (10). The docs explain each endpoint group, startup and model discovery, and a compatibility table says which parts of the Claude API are supported, partial or missing, such as prompt caching and OAuth (15 of 20). Pydantic models with literal type discriminators and required fields, while settings and tool context are wide objects (12 of 15). curl examples for each guide and a `/v1/messages/validate` route, with error shapes not documented as a list (9 of 15). `/v1` paths and a dated changelog, though releases trail main by more than four months (12 of 15). 25 + 10 + 15 + 12 + 9 + 12 = 83."
        },
        "scores": {
          "a": 56,
          "b": 83
        }
      },
      {
        "by": 27,
        "category": "security",
        "leads": "lm-studio",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Read with the tool checklist. Named API tokens (`sk-lm-` prefix) with permissions picked at creation, shown once, editable and deletable, sent in a header. Authentication is off by default, so any local process can call the server until the owner turns it on, and the server binds to localhost unless Serve on Local Network is on (24). Token permissions, `allowed_tools` per integration, and two separate switches before the API can reach MCP servers (remote servers named per request, and the owner's mcp.json servers, which also need authentication on). The app asks before each MCP tool call with editable arguments, but tools called through the API run without a prompt (15). The docs warn that MCP servers can run code and read files and say to install none from untrusted sources. Nothing on injected instructions in tool results or documents (6). `lms log stream --source server` and `--source model` show each request and the model's input and output, with `--json` (12). No security.txt (lmstudio.ai answers that path with a Hub web page), no SECURITY.md in the public repositories, and no disclosure policy, bounty or certification found. The changelog's \"Security hardening\" lines in 0.4.16 and 0.4.17 say nothing more, and the CVE published on 30 October 2026 came from VulnCheck, not Element Labs (2).",
          "b": "Read with the tool checklist. Authentication is off by default, and when on it is one static secret compared with the whole `Authorization` header, with a sample `secret:key` value in settings.yaml. There are no per-user keys or scopes, `private-gpt serve` binds 0.0.0.0 by default and CORS allows every origin, so a default start answers anyone on the network. The docs disagree on the header (Bearer, Basic or an Anthropic key) (6 of 30). Tools are chosen per request and code execution has internet off by default, but bash runs as a host subprocess with resource limits, not in a container, and nothing asks for approval (6 of 20). Web fetch, web search, documents and MCP servers bring untrusted text to the model. A public prompt-injection report (#2270) was closed by the stale bot, and no guidance was found beyond a 19 October change that bounds tool output (3 of 15). OpenTelemetry traces cover every request, model call, tool and sandbox step, off by default, with local JSON lines exporters (10 of 15). SECURITY.md since 23 July 2026 asks for private reports through GitHub or Discord. No bounty, no certification, and the June and July security reports in issues were closed by a bot with no reply (7 of 20). 6 + 6 + 3 + 10 + 7 = 32."
        },
        "scores": {
          "a": 59,
          "b": 32
        }
      },
      {
        "by": 5,
        "category": "ergonomics",
        "leads": "lm-studio",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Read with the API lines. `/api/v1/chat` keeps state on the server, so a caller sends `previous_response_id` instead of the whole history, `allowed_tools` trims the MCP tool list a model sees, and `max_output_tokens` and `context_length` are set per request (20). Model listing has no paging. `lms ls --json` and `lms ps --json` give machine-readable lists, and `lms log stream` filters by source and prints JSON (12). Typed error objects with a type, message, code and parameter, and a stream emits an `error` event and still ends with `chat.end` (16). Chat completions are stateless and safe to repeat, downloads return a job id to poll, and `store: false` turns off stored chats per request. No retry or idempotency guidance (8). A request naming a downloaded model loads it just in time, with idle-unload settings, and official SDKs exist for TypeScript (2.0.0) and Python, though Python's last stable release is from August 2025 (13).",
          "b": "Read for an HTTP API an agent calls on a local instance. Token counting, `top_k` style retrieval settings, citation output and response byte caps let a caller size context (18 of 25). Artifact listing by namespace and retrieval filters, with no documented cursor pagination (12 of 20). FastAPI validation errors name the field and the validate route checks a request before running it, but there is no error catalogue (12 of 20). Async messages and ingestion return task ids with status, cancel and delete routes. No idempotency keys were found (10 of 20). Anthropic SDKs and Claude Code work by pointing `ANTHROPIC_BASE_URL` at the server, but a model server and an embedding server have to be configured first (12 of 15). 18 + 12 + 12 + 10 + 12 = 64."
        },
        "scores": {
          "a": 69,
          "b": 64
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Element Labs, Inc.",
        "b": "Zylon (PriBAI Technology Spain S.L.)",
        "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": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-31",
        "b": "2026-06-18",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-06-01",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "69k npm/wk, 15k PyPI/wk",
        "b": "58k stars",
        "name": "Popularity"
      },
      {
        "a": "2.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "LM Studio scores 55.1 (C) on agent readiness against PrivateGPT's 53.2 (D), and leads in 3 of 7 scored categories. PrivateGPT leads on reliability and schema \u0026 documentation.",
        "question": "Which is better for AI agents, LM Studio or PrivateGPT?"
      },
      {
        "answer": "LM Studio needs an API key. PrivateGPT needs no key.",
        "question": "Do LM Studio and PrivateGPT need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for LM Studio. No hosted endpoint is listed for PrivateGPT.",
        "question": "Can an agent call LM Studio and PrivateGPT without installing anything?"
      },
      {
        "answer": "No open-source release is listed for LM Studio. PrivateGPT is open source (Apache-2.0).",
        "question": "Are LM Studio and PrivateGPT open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 69 against 64",
          "Security \u0026 auth, 59 against 32",
          "Maintenance \u0026 community, 72 against 41"
        ],
        "also": [
          "Free to start without a card"
        ],
        "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, 70 against 36",
          "Schema \u0026 documentation, 83 against 56"
        ],
        "also": [
          "No key needed to call it",
          "Open source"
        ],
        "goodFor": "A local backend for apps and agents that want an Anthropic-style API with document retrieval, citations and tools over local models.",
        "slug": "privategpt",
        "watchFor": "Authentication is off by default, the server binds 0.0.0.0 and CORS allows every origin"
      }
    ],
    "history": {
      "lm-studio": [
        {
          "causes": [
            "security",
            "correction"
          ],
          "date": "2026-11-04",
          "delta": -3,
          "from": 58.1,
          "fromGrade": "C",
          "to": 55.1,
          "toGrade": "C"
        },
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-10-28",
          "delta": 0.2,
          "from": 57.9,
          "fromGrade": "C",
          "to": 58.1,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 57.8,
          "fromGrade": "C",
          "to": 57.9,
          "toGrade": "C"
        }
      ],
      "privategpt": null
    },
    "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-privategpt.json",
        "title": "AnythingLLM vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-privategpt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-lm-studio.json",
        "title": "Berth vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/berth-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-privategpt.json",
        "title": "Berth vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/berth-vs-privategpt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-lm-studio.json",
        "title": "BitRun vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-privategpt.json",
        "title": "BitRun vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-privategpt"
      },
      {
        "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-privategpt.json",
        "title": "Docker Model Runner vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/docker-model-runner-vs-privategpt"
      },
      {
        "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-privategpt.json",
        "title": "Foundry Local vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/foundry-local-vs-privategpt"
      },
      {
        "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-privategpt.json",
        "title": "Core vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/ghost-core-vs-privategpt"
      },
      {
        "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-privategpt.json",
        "title": "GPT4All vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/gpt4all-vs-privategpt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperqwen-vs-lm-studio.json",
        "title": "HyperQwen vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/hyperqwen-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperqwen-vs-privategpt.json",
        "title": "HyperQwen vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/hyperqwen-vs-privategpt"
      },
      {
        "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-privategpt.json",
        "title": "Jan vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/jan-vs-privategpt"
      },
      {
        "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/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-privategpt.json",
        "title": "KoboldCpp vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-privategpt"
      },
      {
        "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-privategpt.json",
        "title": "Lemonade vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/lemonade-vs-privategpt"
      },
      {
        "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-privategpt.json",
        "title": "llama.cpp vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/llama-cpp-vs-privategpt"
      },
      {
        "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/lm-studio-vs-vllm.json",
        "title": "LM Studio vs vLLM",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/localai-vs-privategpt.json",
        "title": "LocalAI vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/localai-vs-privategpt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mlx-lm-vs-privategpt.json",
        "title": "MLX LM vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/mlx-lm-vs-privategpt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ollama-vs-privategpt.json",
        "title": "Ollama vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/ollama-vs-privategpt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/open-webui-vs-privategpt.json",
        "title": "Open WebUI vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/open-webui-vs-privategpt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/privategpt-vs-screenpipe.json",
        "title": "PrivateGPT vs screenpipe",
        "url": "https://www.anchorterminal.com/compare/privategpt-vs-screenpipe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/privategpt-vs-text-generation-webui.json",
        "title": "PrivateGPT vs TextGen",
        "url": "https://www.anchorterminal.com/compare/privategpt-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/privategpt-vs-vllm.json",
        "title": "PrivateGPT vs vLLM",
        "url": "https://www.anchorterminal.com/compare/privategpt-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-privategpt.json",
        "title": "Khoj vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-privategpt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/localghost-vs-privategpt.json",
        "title": "LocalGhost vs PrivateGPT",
        "url": "https://www.anchorterminal.com/compare/localghost-vs-privategpt"
      },
      {
        "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"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 34,
        "edge": "privategpt",
        "key": "reliability",
        "lm-studio": 36,
        "name": "Reliability",
        "privategpt": 70,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 27,
        "edge": "privategpt",
        "key": "schema",
        "lm-studio": 56,
        "name": "Schema \u0026 documentation",
        "privategpt": 83,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "lm-studio",
        "key": "ergonomics",
        "lm-studio": 69,
        "name": "Agent ergonomics",
        "privategpt": 64,
        "weight": 13
      },
      {
        "by": 27,
        "edge": "lm-studio",
        "key": "security",
        "lm-studio": 59,
        "name": "Security \u0026 auth",
        "privategpt": 32,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "lm-studio": 60,
        "name": "Payments \u0026 pricing",
        "privategpt": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 31,
        "edge": "lm-studio",
        "key": "maintenance",
        "lm-studio": 72,
        "name": "Maintenance \u0026 community",
        "privategpt": 41,
        "weight": 7
      },
      {
        "by": 2,
        "edge": "privategpt",
        "key": "transparency",
        "lm-studio": 62,
        "name": "Transparency \u0026 trust",
        "privategpt": 64,
        "weight": 7
      }
    ],
    "summary": "LM Studio scores 55.1 (C) on agent readiness against PrivateGPT's 53.2 (D), and leads in 3 of 7 scored categories. PrivateGPT leads on reliability and schema \u0026 documentation. Both do local inference.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "lm-studio": "OpenAI-compatible and Anthropic-compatible endpoints plus a native /api/v1 on one port, with eight dated releases between August and October 2026. Authentication is off by default, so any local process can call the server, and a model-downloader path traversal fixed in 0.4.22+1 was disclosed by VulnCheck with no vendor advisory.",
      "privategpt": "PrivateGPT 1.0 is an Apache-2.0 server that gives local models an Anthropic-style messages API with retrieval, citations, tools and MCP, documented by an OpenAPI file and llms.txt. A default start has authentication off, listens on every interface and reads local paths given as URIs, and a public report of that was closed without a reply."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/lm-studio-vs-privategpt",
    "json": "https://www.anchorterminal.com/compare/lm-studio-vs-privategpt.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/lm-studio-vs-privategpt.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/lm-studio-vs-privategpt.min.md"
  },
  "markdown": "LM Studio scores 55.1 (C) on agent readiness against PrivateGPT's 53.2 (D), and leads in 3 of 7 scored categories. PrivateGPT leads on reliability and schema \u0026 documentation. Both do local inference.\n\n- LM Studio: grade C, 55.1/100, rank #877 of 1486. Markdown https://www.anchorterminal.com/tools/lm-studio.md · JSON https://www.anchorterminal.com/api/v1/tools/lm-studio.json\n- PrivateGPT: grade D, 53.2/100, rank #954 of 1486. Markdown https://www.anchorterminal.com/tools/privategpt.md · JSON https://www.anchorterminal.com/api/v1/tools/privategpt.json\n- Best local AI models and assistants: https://www.anchorterminal.com/best/local-ai/index.md\n- All 280 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 32\n- Maintenance \u0026 community, 72 against 41\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: Authentication is off by default, so any local process can call the server\n\n### PrivateGPT (D)\n\nGood for: A local backend for apps and agents that want an Anthropic-style API with document retrieval, citations and tools over local models.\n\nAhead on:\n- Reliability, 70 against 36\n- Schema \u0026 documentation, 83 against 56\n\nAlso in its favour:\n- No key needed to call it\n- Open source\n\nWatch for: Authentication is off by default, the server binds 0.0.0.0 and CORS allows every origin\n\n\n## Why the edge\n\n### Reliability: PrivateGPT +34\n\n- LM Studio (36): Read with the local-software lines, since LM Studio and llmster run on the owner's machine with no hosted service behind the API. Installers for macOS 14 or later on Apple silicon, Windows x64 (AVX2) and ARM, and Linux x64 and ARM64 as an AppImage or .deb on Ubuntu 20.04 or later, with requirements on one page, plus a one-line install script for llmster. 0.4.22 (28 August 2026) enabled in-app updates for the AppImage and .deb installs (20). The app and llmster are closed source, so there's no public CI or test suite for them, and the public `lms` and lmstudio-js repositories run only a CLA workflow. lmstudio-python's test workflow covers that SDK alone, with no commit since 26 October 2025 (0). Open issues in the public bug tracker per the 3 October check (1.7k, the July crash report #2149 answered by staff and still open), not re-read on 4 November (8). Versions run 0.4.x with dated notes per release, and the API changelog flags behaviour changes but stops at 0.4.1, per the 3 October check (8). 0.4.28, pre-1.0 (0). 20+0+8+8+0 = 36.\n- PrivateGPT (70): Read with the local-software lines, since PrivateGPT runs on the owner's hardware with no hosted service behind it. Homebrew tap, `uv tool install` from Zylon's own wheel index (not PyPI) and Docker Hub images `zylonai/private-gpt` 1.0.1 of 18 June 2026. Python 3.11 only, stated in pyproject.toml, and it needs a separate OpenAI-compatible model server (17 of 20). tests.yml runs format, lint, typecheck and the tests affected by each push on main, with the full suite of 217 test files on release pull requests. We couldn't see run results because the GitHub API refused us, and issue #2441 of 1 November reports the Claude spec update workflow failing (15 of 25). GitHub shows 3 open issues of about 1,250, because a stale bot closes quiet issues, two security reports among them, with no maintainer reply (12 of 25). release-please keeps a changelog with breaking changes marked, but no release has been cut since 1.0.1 while main carries 51 commits since 8 August, among them a breaking observability change of 23 October (11 of 15). Version 1.0.1 (15). 17 + 15 + 12 + 11 + 15 = 70.\n\n### Maintenance \u0026 community: LM Studio +31\n\n- LM Studio (72): 0.4.28 on 31 October 2026 on the dated changelog (30). Eight releases in the 90 days from 6 August, 0.4.21 (12 August) to 0.4.28, plus lmstudio-js tags for SDK 2.0.0 (21 September) and 2.1.0 (14 October) (20). Closed-source app, so the 0 to 15 scale for closed services. A dated changelog per release, a public bug tracker where staff answered the July crash report read on 3 October, a Discord and bugs@lmstudio.ai (10). Official SDKs for TypeScript (@lmstudio/sdk 2.1.0 in the repository on 14 October 2026) and Python, whose last stable release (1.5.0, 22 August 2025) predates API tokens (9). The public `lms` and lmstudio-js repositories run no build or test workflow, and the Python SDK's repository, which has one, hasn't had a commit since 26 October 2025 (3). 30+20+10+9+3 = 72.\n- PrivateGPT (41): The last release is 1.0.1, dated 16 June 2026 in the changelog and tagged 18 June, 141 days before the check (10 of 30). No release or dated changelog entry in the 90 days since 8 August (0 of 20). Maintainers commit most days and outside pull requests merged in October, but 23 pull requests are open and the stale bot closes issues, including two security reports, with no maintainer reply (13 of 25). Homebrew tap, wheel index and Docker images ship with releases, and Anthropic SDKs work against it. No product MCP server of its own, though it connects to remote MCP servers (10 of 15). Dependabot, uv.lock, actions pinned by commit since 19 October and dependency CVE upgrades in June, July and August (8 of 10). 10 + 0 + 13 + 10 + 8 = 41.\n\n### Schema \u0026 documentation: PrivateGPT +27\n\n- LM Studio (56): Read with the API lines. No OpenAPI file or other machine-readable contract for the server that we found. Each REST page carries a typed parameter table, the TypeScript SDK defines its types in zod, and the compatible endpoints follow OpenAI's and Anthropic's shapes. Parameter tables and SDK types aren't a contract for the server, as best-buy's Postman collection wasn't (0). An llms.txt of about 2,850 lines at lmstudio.ai that, in what our reader saw, describes the 0.3 app and doesn't mention the v1 REST API, API tokens, llmster or MCP. The docs source is public Markdown on GitHub (6). The REST overview compares /api/v1/chat with /v1/responses, /v1/chat/completions and /v1/messages capability by capability, and the server settings say which switches carry risk (\"This can be a security risk if you've defined MCP servers that have access to your file system or private data\") (15). Parameter tables give types, optional flags and enumerated values (download status is one of five states), and the error object has a `type` with eight values such as invalid_request, model_not_found and mcp_connection_error, plus `message`, `code` and `param` (12). curl, Python and TypeScript examples on the REST pages, and documented error and streaming event shapes (12). Versioned paths (/api/v0, then /api/v1 since 0.4.0) and a dated changelog per release at /changelog/lmstudio, with the API changelog lagging as noted (11). 0+6+15+12+12+11 = 56.\n- PrivateGPT (83): An OpenAPI file of 38 paths in the repository (fern/openapi/openapi.json, version 1.0.1), also served by each instance at /openapi.json, with the messages API modelled on Anthropic's (25). docs.privategpt.dev serves llms.txt, a Markdown copy of every page and a docs MCP server (10). The docs explain each endpoint group, startup and model discovery, and a compatibility table says which parts of the Claude API are supported, partial or missing, such as prompt caching and OAuth (15 of 20). Pydantic models with literal type discriminators and required fields, while settings and tool context are wide objects (12 of 15). curl examples for each guide and a `/v1/messages/validate` route, with error shapes not documented as a list (9 of 15). `/v1` paths and a dated changelog, though releases trail main by more than four months (12 of 15). 25 + 10 + 15 + 12 + 9 + 12 = 83.\n\n### Security \u0026 auth: LM Studio +27\n\n- LM Studio (59): Read with the tool checklist. Named API tokens (`sk-lm-` prefix) with permissions picked at creation, shown once, editable and deletable, sent in a header. Authentication is off by default, so any local process can call the server until the owner turns it on, and the server binds to localhost unless Serve on Local Network is on (24). Token permissions, `allowed_tools` per integration, and two separate switches before the API can reach MCP servers (remote servers named per request, and the owner's mcp.json servers, which also need authentication on). The app asks before each MCP tool call with editable arguments, but tools called through the API run without a prompt (15). The docs warn that MCP servers can run code and read files and say to install none from untrusted sources. Nothing on injected instructions in tool results or documents (6). `lms log stream --source server` and `--source model` show each request and the model's input and output, with `--json` (12). No security.txt (lmstudio.ai answers that path with a Hub web page), no SECURITY.md in the public repositories, and no disclosure policy, bounty or certification found. The changelog's \"Security hardening\" lines in 0.4.16 and 0.4.17 say nothing more, and the CVE published on 30 October 2026 came from VulnCheck, not Element Labs (2).\n- PrivateGPT (32): Read with the tool checklist. Authentication is off by default, and when on it is one static secret compared with the whole `Authorization` header, with a sample `secret:key` value in settings.yaml. There are no per-user keys or scopes, `private-gpt serve` binds 0.0.0.0 by default and CORS allows every origin, so a default start answers anyone on the network. The docs disagree on the header (Bearer, Basic or an Anthropic key) (6 of 30). Tools are chosen per request and code execution has internet off by default, but bash runs as a host subprocess with resource limits, not in a container, and nothing asks for approval (6 of 20). Web fetch, web search, documents and MCP servers bring untrusted text to the model. A public prompt-injection report (#2270) was closed by the stale bot, and no guidance was found beyond a 19 October change that bounds tool output (3 of 15). OpenTelemetry traces cover every request, model call, tool and sandbox step, off by default, with local JSON lines exporters (10 of 15). SECURITY.md since 23 July 2026 asks for private reports through GitHub or Discord. No bounty, no certification, and the June and July security reports in issues were closed by a bot with no reply (7 of 20). 6 + 6 + 3 + 10 + 7 = 32.\n\n### Agent ergonomics: LM Studio +5\n\n- LM Studio (69): Read with the API lines. `/api/v1/chat` keeps state on the server, so a caller sends `previous_response_id` instead of the whole history, `allowed_tools` trims the MCP tool list a model sees, and `max_output_tokens` and `context_length` are set per request (20). Model listing has no paging. `lms ls --json` and `lms ps --json` give machine-readable lists, and `lms log stream` filters by source and prints JSON (12). Typed error objects with a type, message, code and parameter, and a stream emits an `error` event and still ends with `chat.end` (16). Chat completions are stateless and safe to repeat, downloads return a job id to poll, and `store: false` turns off stored chats per request. No retry or idempotency guidance (8). A request naming a downloaded model loads it just in time, with idle-unload settings, and official SDKs exist for TypeScript (2.0.0) and Python, though Python's last stable release is from August 2025 (13).\n- PrivateGPT (64): Read for an HTTP API an agent calls on a local instance. Token counting, `top_k` style retrieval settings, citation output and response byte caps let a caller size context (18 of 25). Artifact listing by namespace and retrieval filters, with no documented cursor pagination (12 of 20). FastAPI validation errors name the field and the validate route checks a request before running it, but there is no error catalogue (12 of 20). Async messages and ingestion return task ids with status, cancel and delete routes. No idempotency keys were found (10 of 20). Anthropic SDKs and Claude Code work by pointing `ANTHROPIC_BASE_URL` at the server, but a model server and an embedding server have to be configured first (12 of 15). 18 + 12 + 12 + 10 + 12 = 64.\n\n## Score by category\n\n| Category | Weight | LM Studio | PrivateGPT | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 36 | 70 | PrivateGPT +34 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 56 | 83 | PrivateGPT +27 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 64 | LM Studio +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 59 | 32 | LM Studio +27 |\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 | 41 | LM Studio +31 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 62 | 64 | PrivateGPT +2 |\n| Negative events | ≤15 | -2 | -7 | |\n| **Total** | | **55.1 · C** | **53.2 · D** | |\n\n## Facts side by side\n\n| Fact | LM Studio | PrivateGPT |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Element Labs, Inc. | Zylon (PriBAI Technology Spain S.L.) |\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 | yes |\n| Last release | 2026-10-31 | 2026-06-18 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | 2026-06-01 | no document linked |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 69k npm/wk, 15k PyPI/wk | 58k stars |\n| Agent reviews | 2.5/5 (2) | none |\n\n## How the scores have moved\n\n### LM Studio\n\n- -3.0 on 4 November 2026: security, correction\n- +0.2 on 28 October 2026: new evidence\n- +0.1 on 27 October 2026: checklist\n\n### PrivateGPT\n\nNo score change since it was listed.\n\n## Verdicts\n\n**LM Studio.** OpenAI-compatible and Anthropic-compatible endpoints plus a native /api/v1 on one port, with eight dated releases between August and October 2026. Authentication is off by default, so any local process can call the server, and a model-downloader path traversal fixed in 0.4.22+1 was disclosed by VulnCheck with no vendor advisory.\n\n**PrivateGPT.** PrivateGPT 1.0 is an Apache-2.0 server that gives local models an Anthropic-style messages API with retrieval, citations, tools and MCP, documented by an OpenAPI file and llms.txt. A default start has authentication off, listens on every interface and reads local paths given as URIs, and a public report of that was closed without a reply.\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### PrivateGPT\n\n1. Turn on `server.auth` and bind to 127.0.0.1 before exposing an instance, since a default start answers any caller\n2. Point Anthropic SDKs or Claude Code at the server with `ANTHROPIC_BASE_URL=http://localhost:8080`\n3. Start an OpenAI-compatible model server and an embedding server first, and set `OPENAI_API_BASE` and `OPENAI_EMBEDDING_API_BASE`\n4. Pass ingested documents through `tool_context` to get answers with citations\n5. Treat web fetch, search and MCP results as untrusted, since PrivateGPT documents no prompt-injection handling\n\n## Questions\n\n### Which is better for AI agents, LM Studio or PrivateGPT?\n\nLM Studio scores 55.1 (C) on agent readiness against PrivateGPT's 53.2 (D), and leads in 3 of 7 scored categories. PrivateGPT leads on reliability and schema \u0026 documentation.\n\n### Do LM Studio and PrivateGPT need an API key?\n\nLM Studio needs an API key. PrivateGPT needs no key.\n\n### Can an agent call LM Studio and PrivateGPT without installing anything?\n\nNo hosted endpoint is listed for LM Studio. No hosted endpoint is listed for PrivateGPT.\n\n### Are LM Studio and PrivateGPT open source?\n\nNo open-source release is listed for LM Studio. PrivateGPT 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-privategpt.json, and with the fewest tokens: https://www.anchorterminal.com/compare/lm-studio-vs-privategpt.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"lm-studio\", \"b\": \"privategpt\"}`. From a terminal: `anchor compare lm-studio privategpt`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/lm-studio.json and https://www.anchorterminal.com/api/v1/tools/privategpt.json\n\n## Other comparisons with LM Studio or PrivateGPT\n\n- [AnythingLLM vs LM Studio](https://www.anchorterminal.com/compare/anythingllm-vs-lm-studio.md)\n- [AnythingLLM vs PrivateGPT](https://www.anchorterminal.com/compare/anythingllm-vs-privategpt.md)\n- [Berth vs LM Studio](https://www.anchorterminal.com/compare/berth-vs-lm-studio.md)\n- [Berth vs PrivateGPT](https://www.anchorterminal.com/compare/berth-vs-privategpt.md)\n- [BitRun vs LM Studio](https://www.anchorterminal.com/compare/bitrun-vs-lm-studio.md)\n- [BitRun vs PrivateGPT](https://www.anchorterminal.com/compare/bitrun-vs-privategpt.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 PrivateGPT](https://www.anchorterminal.com/compare/docker-model-runner-vs-privategpt.md)\n- [Foundry Local vs LM Studio](https://www.anchorterminal.com/compare/foundry-local-vs-lm-studio.md)\n- [Foundry Local vs PrivateGPT](https://www.anchorterminal.com/compare/foundry-local-vs-privategpt.md)\n- [Core vs LM Studio](https://www.anchorterminal.com/compare/ghost-core-vs-lm-studio.md)\n- [Core vs PrivateGPT](https://www.anchorterminal.com/compare/ghost-core-vs-privategpt.md)\n- [GPT4All vs LM Studio](https://www.anchorterminal.com/compare/gpt4all-vs-lm-studio.md)\n- [GPT4All vs PrivateGPT](https://www.anchorterminal.com/compare/gpt4all-vs-privategpt.md)\n- [HyperQwen vs LM Studio](https://www.anchorterminal.com/compare/hyperqwen-vs-lm-studio.md)\n- [HyperQwen vs PrivateGPT](https://www.anchorterminal.com/compare/hyperqwen-vs-privategpt.md)\n- [Jan vs LM Studio](https://www.anchorterminal.com/compare/jan-vs-lm-studio.md)\n- [Jan vs PrivateGPT](https://www.anchorterminal.com/compare/jan-vs-privategpt.md)\n- [Khoj vs LM Studio](https://www.anchorterminal.com/compare/khoj-vs-lm-studio.md)\n- [KoboldCpp vs LM Studio](https://www.anchorterminal.com/compare/koboldcpp-vs-lm-studio.md)\n- [KoboldCpp vs PrivateGPT](https://www.anchorterminal.com/compare/koboldcpp-vs-privategpt.md)\n- [Lemonade vs LM Studio](https://www.anchorterminal.com/compare/lemonade-vs-lm-studio.md)\n- [Lemonade vs PrivateGPT](https://www.anchorterminal.com/compare/lemonade-vs-privategpt.md)\n- [llama.cpp vs LM Studio](https://www.anchorterminal.com/compare/llama-cpp-vs-lm-studio.md)\n- [llama.cpp vs PrivateGPT](https://www.anchorterminal.com/compare/llama-cpp-vs-privategpt.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- [LM Studio vs vLLM](https://www.anchorterminal.com/compare/lm-studio-vs-vllm.md)\n- [LocalAI vs PrivateGPT](https://www.anchorterminal.com/compare/localai-vs-privategpt.md)\n- [MLX LM vs PrivateGPT](https://www.anchorterminal.com/compare/mlx-lm-vs-privategpt.md)\n- [Ollama vs PrivateGPT](https://www.anchorterminal.com/compare/ollama-vs-privategpt.md)\n- [Open WebUI vs PrivateGPT](https://www.anchorterminal.com/compare/open-webui-vs-privategpt.md)\n- [PrivateGPT vs screenpipe](https://www.anchorterminal.com/compare/privategpt-vs-screenpipe.md)\n- [PrivateGPT vs TextGen](https://www.anchorterminal.com/compare/privategpt-vs-text-generation-webui.md)\n- [PrivateGPT vs vLLM](https://www.anchorterminal.com/compare/privategpt-vs-vllm.md)\n- [Khoj vs PrivateGPT](https://www.anchorterminal.com/compare/khoj-vs-privategpt.md)\n- [LocalGhost vs PrivateGPT](https://www.anchorterminal.com/compare/localghost-vs-privategpt.md)\n- [LM Studio vs Underdog](https://www.anchorterminal.com/compare/lm-studio-vs-underdog.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": "LM Studio vs PrivateGPT",
        "url": ""
      }
    ],
    "description": "LM Studio scores 55.1 (C) to PrivateGPT's 53.2 (D) for local inference. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "LM Studio C 55.1",
      "PrivateGPT D 53.2",
      "scores"
    ],
    "h1": "LM Studio vs PrivateGPT",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/lm-studio-vs-privategpt",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LM Studio vs PrivateGPT for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/lm-studio-vs-privategpt"
  },
  "tokens": {
    "markdown": 5600,
    "slim": 3280
  },
  "version": 1
}
