{
  "data": {
    "a": {
      "slug": "berth",
      "name": "Berth",
      "vendor": "Trevin Tindall (T-Crypt on GitHub)",
      "vendorUrl": "https://github.com/T-Crypt",
      "kind": "http-api",
      "category": "local-ai",
      "summary": "Berth is an open-source Go daemon and CLI that leases one GPU to local inference engines, image pipelines and games in turn, with a priority queue, measured VRAM handoffs and a preview OpenAI-compatible gateway on loopback.",
      "url": "https://www.anchorterminal.com/tools/berth",
      "markdownUrl": "https://www.anchorterminal.com/tools/berth.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/berth.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/berth.json",
      "repo": "https://github.com/T-Crypt/berth",
      "license": "Apache-2.0. The Berth name, the Pilot mascot and the artwork in assets/ are excluded from the licence, per the NOTICE file",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "go",
          "name": "github.com/T-Crypt/berth"
        }
      ],
      "auth": "api-key",
      "authNotes": "The gateway (`berth gateway`, 127.0.0.1:9799) takes one bearer key on every API route. The key is created on first use in `~/.config/berth/api.key` with mode 600, a group- or world-readable file is refused, `berth key` prints it, and the comparison is constant-time. The gateway binds loopback only, refuses non-loopback Host names and any request with a browser Origin. The key has no scopes and no documented rotation command. The daemon itself answers on a Unix socket with mode 600 in a 700 directory, so only the owning user can lease the card. The harbor web UI (127.0.0.1:9798) is read-only with no login, and its actions need a device paired with `berth pair`. The wake page and the optional `--comfyui-listen` port take no key by design.",
      "pricing": "free",
      "pricingNotes": "Free under Apache-2.0 with nothing to buy and no account. No hosted service.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the docs or the changelog (checked 2026-10-28). Nothing is sold.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 245,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-28"
      },
      "docsUrl": "https://t-crypt.github.io/berth/",
      "capabilities": [
        "inference.local",
        "compute.gpu"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "free",
        "no-card",
        "apache-2.0",
        "openai-compatible",
        "go",
        "cli",
        "linux",
        "windows",
        "gpu",
        "agent-skill",
        "alpha",
        "pre-1.0",
        "new"
      ],
      "lastRelease": "2026-10-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.6,
        "grade": "B",
        "agentReady": false,
        "rank": 283,
        "ranked": true,
        "rankOf": 1218,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 76,
          "payments": 60,
          "reliability": 76,
          "schema": 69,
          "security": 51,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-28"
        },
        "negative": 0,
        "verdict": "Berth coordinates one NVIDIA card between engines, ComfyUI and games, grants a lease only after the driver shows memory free, and gives agents a skill, JSON output and a keyed loopback gateway. It is 17 days old, alpha and maintained by one developer, with Windows and AMD experimental and no machine-readable API spec.",
        "bestFor": "Someone running several GPU programs (llama.cpp, llama-swap, Ollama, vLLM, ComfyUI, games) on one NVIDIA card who wants them to take turns, and agents that need to ask for the card.",
        "strengths": [
          "A lease is granted only after the driver shows the previous holder's memory free, and processes it did not start are reported, never killed",
          "Every reporting command takes `--format json|yaml`, with results on stdout and exit codes 0, 1, 2 and 75 by one documented rule",
          "Gateway failures return 503 with Retry-After and a machine code such as `outranked`, `engine_oom` or `no_headroom`",
          "CI builds, vets, lints and tests on Linux and Windows, and releases publish SHA256SUMS that `berth update` checks",
          "Apache-2.0, no account and no telemetry upload, with the one GitHub update check documented and switchable off"
        ],
        "weaknesses": [
          "First released on 11 October 2026 and called alpha. Windows, AMD and multiple GPUs are experimental, and the gateway is a preview",
          "One bearer key with no scopes or documented rotation controls every gateway route, including switch and stop",
          "No OpenAPI file or llms.txt. The gateway's own routes are documented in Markdown with curl examples",
          "No SECURITY.md, security.txt or disclosure route, and the harbor has no login when bound past loopback",
          "Linux and NVIDIA only for full support, through nvidia-smi. Intel and Apple GPUs are not supported"
        ],
        "agentNotes": [
          "Run `berth status --format json` before starting, stopping or switching any GPU engine. If berthd is unreachable, no engine is protected",
          "Never kill a process to free VRAM. Ask for the card with `berth run`, `berth hold` or a gateway request, and report stowaways to the user",
          "Send gateway requests to http://127.0.0.1:9799/v1 with `Authorization: Bearer $(berth key)`, and use `\"stream\": true` for cold starts of up to minutes",
          "On a 503, read the `code` and wait for `Retry-After`. A pinned holder (a game or `berth hold`) answers 409 to stop and is the user's call",
          "Ask the user before `berth reclaim LEASE --yes`, any berth.toml edit or `berth update`. Each changes the node"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.6
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 76,
          "payments": 60,
          "reliability": 76,
          "schema": 69,
          "security": 51,
          "transparency": 74
        },
        "provenanceScore": 61,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-28",
            "maintenance": "2026-10-28",
            "payments": "2026-10-28",
            "reliability": "2026-10-28",
            "schema": "2026-10-28",
            "security": "2026-10-28",
            "transparency": "2026-10-28"
          },
          "last": "2026-10-28",
          "oldest": "2026-10-28",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "go install github.com/T-Crypt/berth/cmd/berth@latest      # or a release binary checked against SHA256SUMS\nberth service install --harbor\nberth status\nberth run --as llama --priority foreground -- llama-server -m model.gguf --port 8080",
        "http": "curl -s http://127.0.0.1:9799/v1/berth/board -H \"Authorization: Bearer $(berth key)\"",
        "claudeCode": "berth skill install   # writes the Berth and ComfyUI skills, including to ~/.claude/skills"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/berth"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "Trevin Tindall (T-Crypt on GitHub)",
        "domain": "",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/T-Crypt/berth/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-28",
        "notes": [
          "The project has no website of its own. The docs are an MkDocs site at https://t-crypt.github.io/berth/. The NOTICE and README name Trevin Tindall (T-Crypt) as the creator and maintainer, and the licence is Apache-2.0.",
          "No terms, privacy policy, SECURITY.md or security.txt. The changelog has a Security heading for v0.3.4.",
          "The software runs on the owner's machine, so there is no vendor endpoint or status page to check.",
          "T-Crypt/berth is the original. jenerestain/berth, sefator/berth and Bacongineer/berth-upstream keep its module path, copyright and links, and are forks of earlier snapshots."
        ],
        "score": 61
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/berth.json"
    },
    "answer": "Berth scores 67.6 (B) on agent readiness against vLLM's 57.8 (C), and leads in 4 of 7 scored categories. vLLM leads on maintenance \u0026 community.",
    "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.8,
        "grade": "C",
        "agentReady": false,
        "rank": 688,
        "ranked": true,
        "rankOf": 1218,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 88,
          "payments": 60,
          "reliability": 62,
          "schema": 68,
          "security": 50,
          "transparency": 68
        },
        "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.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.8
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 88,
          "payments": 60,
          "reliability": 62,
          "schema": 68,
          "security": 50,
          "transparency": 80
        },
        "provenanceScore": 56,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-09",
            "maintenance": "2026-10-09",
            "payments": "2026-10-09",
            "reliability": "2026-10-09",
            "schema": "2026-10-09",
            "security": "2026-10-09",
            "transparency": "2026-10-09"
          },
          "last": "2026-10-09",
          "lastMoved": "2026-10-27",
          "oldest": "2026-10-09",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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": 56
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/vllm.json",
      "live": {
        "slug": "vllm",
        "versions": [
          {
            "registry": "github",
            "name": "vllm-project/vllm",
            "version": "v0.32.0",
            "released": "2026-10-18",
            "seenAt": "2026-10-27T11:40:55.525289712Z"
          },
          {
            "registry": "pypi",
            "name": "vllm",
            "version": "0.32.0",
            "released": "2026-10-18",
            "seenAt": "2026-10-27T11:40:55.410283647Z"
          }
        ],
        "githubStars": 95678,
        "pypiWeekly": 563551,
        "securityTxt": {
          "url": "https://vllm.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-27T15:32:38.738270794Z"
        },
        "domain": {
          "domain": "vllm.ai",
          "registered": "2023-06-19",
          "source": "https://rdap.identitydigital.services/rdap/domain/vllm.ai",
          "checkedAt": "2026-10-25T13:51:38.019213292Z"
        },
        "github": {
          "repo": "vllm-project/vllm",
          "checkedAt": "2026-10-26T08:16:16.30413937Z",
          "stars": 95553,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-26T07:59:01Z",
          "openIssues": 2721,
          "openPRs": 6737,
          "issuesOpened90d": 2459,
          "issuesClosed90d": 1772,
          "prsMerged90d": 4617,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 48,
            "failure": 0,
            "other": 2,
            "latest": "success",
            "latestAt": "2026-10-26T08:03:00Z"
          },
          "advisories": [
            {
              "ghsa": "GHSA-vvpg-rrww-wpmh",
              "severity": "low",
              "published": "2026-10-20T07:37:49Z"
            },
            {
              "ghsa": "GHSA-8397-8qf6-f2gm",
              "severity": "medium",
              "published": "2026-10-20T07:37:27Z"
            },
            {
              "ghsa": "GHSA-gq5q-89c7-vhvx",
              "severity": "medium",
              "published": "2026-10-20T07:37:11Z"
            },
            {
              "ghsa": "GHSA-h3rc-j82p-2c3h",
              "severity": "high",
              "published": "2026-10-20T07:36:56Z"
            },
            {
              "ghsa": "GHSA-6757-hggm-hp2w",
              "severity": "high",
              "published": "2026-10-20T07:36:30Z"
            },
            {
              "ghsa": "GHSA-frvg-qw88-hww9",
              "cve": "CVE-2026-94624",
              "severity": "medium",
              "published": "2026-10-20T07:35:45Z"
            },
            {
              "ghsa": "GHSA-q97c-p368-75c4",
              "severity": "medium",
              "published": "2026-10-20T07:35:17Z"
            },
            {
              "ghsa": "GHSA-x567-49g5-p4cf",
              "severity": "medium",
              "published": "2026-10-20T07:34:11Z"
            },
            {
              "ghsa": "GHSA-542m-9234-8gvf",
              "severity": "medium",
              "published": "2026-10-20T07:33:26Z"
            },
            {
              "ghsa": "GHSA-w9r6-29q4-pvpr",
              "severity": "medium",
              "published": "2026-10-09T08:27:08Z"
            },
            {
              "ghsa": "GHSA-4m6g-h9mv-wqjc",
              "severity": "high",
              "published": "2026-10-09T08:24:22Z"
            },
            {
              "ghsa": "GHSA-34qw-q2h2-jp3m",
              "severity": "medium",
              "published": "2026-10-09T08:21:43Z"
            },
            {
              "ghsa": "GHSA-mm38-5g96-7j6x",
              "severity": "high",
              "published": "2026-10-09T08:12:07Z"
            },
            {
              "ghsa": "GHSA-vfp2-c8pq-v6h6",
              "severity": "high",
              "published": "2026-10-09T07:58:03Z"
            },
            {
              "ghsa": "GHSA-r45p-7qwx-qwjw",
              "severity": "medium",
              "published": "2026-10-09T07:55:16Z"
            },
            {
              "ghsa": "GHSA-w2v2-5662-8v5q",
              "severity": "medium",
              "published": "2026-10-09T07:49:41Z"
            },
            {
              "ghsa": "GHSA-6pgw-f3pv-4h8q",
              "severity": "medium",
              "published": "2026-10-09T07:47:33Z"
            },
            {
              "ghsa": "GHSA-rwfw-xvg3-3937",
              "severity": "medium",
              "published": "2026-10-09T07:47:04Z"
            },
            {
              "ghsa": "GHSA-8c65-hq7q-r7jm",
              "severity": "high",
              "published": "2026-10-09T07:34:18Z"
            },
            {
              "ghsa": "GHSA-rhcx-5729-88vg",
              "severity": "high",
              "published": "2026-10-09T06:39:02Z"
            },
            {
              "ghsa": "GHSA-6cxc-2vcg-w5qc",
              "severity": "low",
              "published": "2026-10-06T20:45:08Z"
            },
            {
              "ghsa": "GHSA-p92p-rxj5-7p2x",
              "cve": "CVE-2026-114050",
              "severity": "medium",
              "published": "2026-10-06T07:10:22Z"
            },
            {
              "ghsa": "GHSA-rh6f-3x46-j33q",
              "severity": "medium",
              "published": "2026-10-06T07:08:41Z"
            },
            {
              "ghsa": "GHSA-h3rc-6mm3-gc2m",
              "severity": "high",
              "published": "2026-10-06T07:06:53Z"
            },
            {
              "ghsa": "GHSA-gx7p-2j49-hfq4",
              "severity": "high",
              "published": "2026-10-06T07:04:54Z"
            },
            {
              "ghsa": "GHSA-823j-m4cj-hmjf",
              "cve": "CVE-2026-114052",
              "severity": "high",
              "published": "2026-10-06T06:59:51Z"
            },
            {
              "ghsa": "GHSA-4xqp-c3mv-qff7",
              "severity": "medium",
              "published": "2026-10-06T06:58:15Z"
            },
            {
              "ghsa": "GHSA-ph3r-5jfg-f84f",
              "cve": "CVE-2026-105753",
              "severity": "medium",
              "published": "2026-09-28T07:37:56Z"
            },
            {
              "ghsa": "GHSA-m52c-39rh-f3gp",
              "severity": "medium",
              "published": "2026-09-28T07:35:57Z"
            },
            {
              "ghsa": "GHSA-935w-9g4m-p28p",
              "cve": "CVE-2026-105752",
              "severity": "low",
              "published": "2026-09-28T07:34:45Z"
            },
            {
              "ghsa": "GHSA-x6mc-67gf-chw4",
              "cve": "CVE-2026-105758",
              "severity": "medium",
              "published": "2026-09-23T10:25:42Z"
            },
            {
              "ghsa": "GHSA-5fj9-pfhr-6j48",
              "cve": "CVE-2026-105759",
              "severity": "medium",
              "published": "2026-09-23T10:23:16Z"
            },
            {
              "ghsa": "GHSA-58v5-2m8f-94pr",
              "cve": "CVE-2026-105760",
              "severity": "medium",
              "published": "2026-09-23T10:20:52Z"
            },
            {
              "ghsa": "GHSA-ph72-cqr5-qpp7",
              "cve": "CVE-2026-105754",
              "severity": "medium",
              "published": "2026-09-23T10:17:44Z"
            },
            {
              "ghsa": "GHSA-85xf-c7hm-whqw",
              "cve": "CVE-2026-105757",
              "severity": "medium",
              "published": "2026-09-23T10:16:15Z"
            },
            {
              "ghsa": "GHSA-2phq-3phc-84px",
              "cve": "CVE-2026-105755",
              "severity": "medium",
              "published": "2026-09-23T10:15:01Z"
            },
            {
              "ghsa": "GHSA-2823-qmq8-rwvj",
              "cve": "CVE-2026-105756",
              "severity": "medium",
              "published": "2026-09-23T10:12:17Z"
            },
            {
              "ghsa": "GHSA-hhv2-872h-628q",
              "severity": "medium",
              "published": "2026-09-12T14:47:49Z"
            },
            {
              "ghsa": "GHSA-v5gm-qgmv-gc6c",
              "severity": "medium",
              "published": "2026-09-12T14:45:55Z"
            },
            {
              "ghsa": "GHSA-qff2-492f-9fm4",
              "severity": "medium",
              "published": "2026-09-12T14:43:57Z"
            },
            {
              "ghsa": "GHSA-3mqx-f33v-vgp9",
              "severity": "medium",
              "published": "2026-09-12T08:56:01Z"
            },
            {
              "ghsa": "GHSA-j682-9xp5-rrf3",
              "cve": "CVE-2026-100649",
              "severity": "low",
              "published": "2026-09-12T08:54:27Z"
            },
            {
              "ghsa": "GHSA-p6g9-7v3x-m8mv",
              "severity": "medium",
              "published": "2026-09-12T08:52:51Z"
            },
            {
              "ghsa": "GHSA-jcq2-4gch-5qhf",
              "cve": "CVE-2026-100648",
              "severity": "medium",
              "published": "2026-09-12T08:51:06Z"
            },
            {
              "ghsa": "GHSA-wpww-v874-ph2p",
              "cve": "CVE-2026-100647",
              "severity": "medium",
              "published": "2026-09-12T08:49:34Z"
            },
            {
              "ghsa": "GHSA-25q3-v2hm-8vpf",
              "cve": "CVE-2026-93592",
              "severity": "high",
              "published": "2026-09-03T18:08:31Z"
            },
            {
              "ghsa": "GHSA-8pw2-6jv3-mj5j",
              "cve": "CVE-2026-69147",
              "severity": "medium",
              "published": "2026-08-28T18:09:24Z"
            },
            {
              "ghsa": "GHSA-3c86-2m5g-59q7",
              "cve": "CVE-2026-90553",
              "severity": "high",
              "published": "2026-08-28T18:05:36Z"
            },
            {
              "ghsa": "GHSA-936p-m5pv-vvjf",
              "cve": "CVE-2026-90554",
              "severity": "medium",
              "published": "2026-08-28T18:04:03Z"
            },
            {
              "ghsa": "GHSA-99f2-hwrc-gvq8",
              "cve": "CVE-2026-90555",
              "severity": "medium",
              "published": "2026-08-28T18:03:19Z"
            },
            {
              "ghsa": "GHSA-hcwq-8wjf-3gcr",
              "cve": "CVE-2026-57173",
              "severity": "medium",
              "published": "2026-08-23T07:21:14Z"
            },
            {
              "ghsa": "GHSA-4hhp-h66f-j5j7",
              "cve": "CVE-2026-73560",
              "severity": "medium",
              "published": "2026-08-13T15:46:24Z"
            },
            {
              "ghsa": "GHSA-cqm8-jxg6-fqfq",
              "cve": "CVE-2026-78684",
              "severity": "medium",
              "published": "2026-08-11T06:42:07Z"
            },
            {
              "ghsa": "GHSA-7m6h-x95x-82q5",
              "cve": "CVE-2026-73558",
              "severity": "medium",
              "published": "2026-08-11T06:40:00Z"
            },
            {
              "ghsa": "GHSA-pr7f-p5mw-fc87",
              "cve": "CVE-2026-73557",
              "severity": "medium",
              "published": "2026-07-27T09:21:25Z"
            },
            {
              "ghsa": "GHSA-48jh-3gj7-fg8v",
              "cve": "CVE-2026-73556",
              "severity": "medium",
              "published": "2026-07-27T09:20:51Z"
            },
            {
              "ghsa": "GHSA-hwrm-c4cx-rf4j",
              "cve": "CVE-2026-73555",
              "severity": "low",
              "published": "2026-07-27T09:19:03Z"
            },
            {
              "ghsa": "GHSA-8737-qx52-hjff",
              "cve": "CVE-2026-71486",
              "severity": "medium",
              "published": "2026-07-27T09:18:41Z"
            },
            {
              "ghsa": "GHSA-87x5-vmc3-756j",
              "cve": "CVE-2026-73559",
              "severity": "medium",
              "published": "2026-07-27T09:17:18Z"
            },
            {
              "ghsa": "GHSA-v82g-2437-67m2",
              "cve": "CVE-2026-55646",
              "severity": "medium",
              "published": "2026-07-02T07:53:16Z"
            },
            {
              "ghsa": "GHSA-rwxx-mrjm-wc2m",
              "cve": "CVE-2026-55574",
              "severity": "medium",
              "published": "2026-07-02T07:51:56Z"
            },
            {
              "ghsa": "GHSA-8wr5-jm2h-8r4f",
              "cve": "CVE-2026-54234",
              "severity": "high",
              "published": "2026-07-02T07:50:33Z"
            },
            {
              "ghsa": "GHSA-33cg-gxv8-3p8g",
              "cve": "CVE-2026-55514",
              "severity": "medium",
              "published": "2026-07-02T07:12:18Z"
            },
            {
              "ghsa": "GHSA-q8gq-377p-jq3r",
              "cve": "CVE-2026-41523",
              "severity": "high",
              "published": "2026-06-14T08:08:23Z"
            },
            {
              "ghsa": "GHSA-6pr9-rp53-2pmc",
              "cve": "CVE-2026-54233",
              "severity": "medium",
              "published": "2026-06-11T12:57:00Z"
            },
            {
              "ghsa": "GHSA-hgg8-fqqc-vfmw",
              "cve": "CVE-2026-54236",
              "severity": "medium",
              "published": "2026-06-11T12:41:26Z"
            },
            {
              "ghsa": "GHSA-5jv2-g5wq-cmr4",
              "cve": "CVE-2026-53923",
              "severity": "medium",
              "published": "2026-06-11T12:39:47Z"
            },
            {
              "ghsa": "GHSA-8jr5-v98p-w75m",
              "cve": "CVE-2026-12491",
              "severity": "medium",
              "published": "2026-06-11T12:37:26Z"
            },
            {
              "ghsa": "GHSA-7h4p-rffg-7823",
              "cve": "CVE-2026-54235",
              "severity": "medium",
              "published": "2026-06-11T12:35:05Z"
            },
            {
              "ghsa": "GHSA-3ww4-5jv9-j5gm",
              "cve": "CVE-2026-47155",
              "severity": "medium",
              "published": "2026-06-10T14:11:37Z"
            },
            {
              "ghsa": "GHSA-jrf6-vqxq-pjv2",
              "cve": "CVE-2026-54232",
              "severity": "high",
              "published": "2026-06-09T15:00:23Z"
            },
            {
              "ghsa": "GHSA-94f4-hr76-p5j6",
              "cve": "CVE-2026-48746",
              "severity": "critical",
              "published": "2026-06-02T16:12:56Z"
            },
            {
              "ghsa": "GHSA-83vm-p52w-f9pw",
              "cve": "CVE-2026-44223",
              "severity": "medium",
              "published": "2026-04-28T20:03:19Z"
            },
            {
              "ghsa": "GHSA-hpv8-x276-m59f",
              "cve": "CVE-2026-44222",
              "severity": "medium",
              "published": "2026-04-27T18:00:06Z"
            },
            {
              "ghsa": "GHSA-pf3h-qjgv-vcpr",
              "cve": "CVE-2026-34753",
              "severity": "medium",
              "published": "2026-04-03T15:23:37Z"
            },
            {
              "ghsa": "GHSA-pq5c-rjhq-qp7p",
              "cve": "CVE-2026-34755",
              "severity": "medium",
              "published": "2026-04-03T15:10:39Z"
            },
            {
              "ghsa": "GHSA-3mwp-wvh9-7528",
              "cve": "CVE-2026-34756",
              "severity": "medium",
              "published": "2026-04-03T14:49:03Z"
            },
            {
              "ghsa": "GHSA-6c4r-fmh3-7rh8",
              "cve": "CVE-2026-34760",
              "severity": "medium",
              "published": "2026-03-30T20:26:30Z"
            },
            {
              "ghsa": "GHSA-7972-pg2x-xr59",
              "cve": "CVE-2026-27893",
              "severity": "high",
              "published": "2026-03-26T23:48:23Z"
            },
            {
              "ghsa": "GHSA-v359-jj2v-j536",
              "cve": "CVE-2026-25960",
              "severity": "medium",
              "published": "2026-03-09T17:58:39Z"
            },
            {
              "ghsa": "GHSA-4r2x-xpjr-7cvv",
              "cve": "CVE-2026-22778",
              "severity": "critical",
              "published": "2026-02-02T14:58:53Z"
            },
            {
              "ghsa": "GHSA-qh4c-xf7m-gxfc",
              "cve": "CVE-2026-24779",
              "severity": "high",
              "published": "2026-01-27T15:10:43Z"
            },
            {
              "ghsa": "GHSA-2pc9-4j83-qjmr",
              "cve": "CVE-2026-22807",
              "severity": "high",
              "published": "2026-01-21T15:50:41Z"
            },
            {
              "ghsa": "GHSA-wv77-2vpf-vmmg",
              "cve": "CVE-2025-62372",
              "severity": "medium",
              "published": "2026-01-21T13:36:26Z"
            },
            {
              "ghsa": "GHSA-grg2-63fw-f2qr",
              "cve": "CVE-2026-22773",
              "severity": "medium",
              "published": "2026-01-09T19:48:58Z"
            },
            {
              "ghsa": "GHSA-mcmc-2m55-j8jj",
              "severity": "high",
              "published": "2026-01-08T17:02:04Z"
            },
            {
              "ghsa": "GHSA-8fr4-5q9j-m8gm",
              "cve": "CVE-2025-66448",
              "severity": "high",
              "published": "2025-12-01T19:39:22Z"
            },
            {
              "ghsa": "GHSA-69j4-grxj-j64p",
              "cve": "CVE-2025-62426",
              "severity": "medium",
              "published": "2025-11-20T19:11:08Z"
            },
            {
              "ghsa": "GHSA-mrw7-hf4f-83pf",
              "cve": "CVE-2025-62164",
              "severity": "high",
              "published": "2025-11-20T19:03:26Z"
            },
            {
              "ghsa": "GHSA-pmqf-x6x8-p7qw",
              "cve": "CVE-2025-62372",
              "severity": "medium",
              "published": "2025-11-20T18:58:11Z"
            },
            {
              "ghsa": "GHSA-6fvq-23cw-5628",
              "cve": "CVE-2025-61620",
              "severity": "medium",
              "published": "2025-10-07T00:24:34Z"
            },
            {
              "ghsa": "GHSA-3f6c-7fw2-ppm4",
              "cve": "CVE-2025-6242",
              "severity": "high",
              "published": "2025-10-07T00:20:45Z"
            },
            {
              "ghsa": "GHSA-wr9h-g72x-mwhm",
              "cve": "CVE-2025-59425",
              "severity": "high",
              "published": "2025-10-07T00:18:47Z"
            },
            {
              "ghsa": "GHSA-rxc4-3w6r-4v47",
              "cve": "CVE-2025-48956",
              "severity": "high",
              "published": "2025-08-20T23:25:54Z"
            },
            {
              "ghsa": "GHSA-79j6-g2m3-jgfw",
              "cve": "CVE-2025-9141",
              "severity": "high",
              "published": "2025-08-20T23:25:39Z"
            },
            {
              "ghsa": "GHSA-vrq3-r879-7m65",
              "cve": "CVE-2025-48944",
              "severity": "medium",
              "published": "2025-05-28T17:28:13Z"
            },
            {
              "ghsa": "GHSA-9hcf-v7m4-6m2j",
              "cve": "CVE-2025-48943",
              "severity": "medium",
              "published": "2025-05-28T17:16:13Z"
            },
            {
              "ghsa": "GHSA-c65p-x677-fgj6",
              "cve": "CVE-2025-46722",
              "severity": "medium",
              "published": "2025-05-28T17:06:31Z"
            },
            {
              "ghsa": "GHSA-j828-28rj-hfhp",
              "severity": "medium",
              "published": "2025-05-28T17:04:52Z"
            },
            {
              "ghsa": "GHSA-hjq4-87xh-g4fv",
              "cve": "CVE-2025-47277",
              "severity": "critical",
              "published": "2025-05-20T14:18:47Z"
            }
          ]
        },
        "updatedAt": "2026-10-27T15:32:38.738270794Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Trevin Tindall (T-Crypt on GitHub)",
        "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": "Apache-2.0. The Berth name, the Pilot mascot and the artwork in assets/ are excluded from the licence, per the NOTICE file",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-23",
        "b": "2026-10-02",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "245 stars",
        "b": "93k stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Berth scores 67.6 (B) on agent readiness against vLLM's 57.8 (C), and leads in 4 of 7 scored categories. vLLM leads on maintenance \u0026 community.",
        "question": "Which is better for AI agents, Berth or vLLM?"
      },
      {
        "answer": "Berth needs an API key. vLLM needs no key.",
        "question": "Do Berth and vLLM need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Berth. No hosted endpoint is listed for vLLM.",
        "question": "Can an agent call Berth and vLLM without installing anything?"
      },
      {
        "answer": "Yes. Berth is open source (Apache-2.0. The Berth name, the Pilot mascot and the artwork in assets/ are excluded from the licence, per the NOTICE file). vLLM is open source (Apache-2.0).",
        "question": "Are Berth and vLLM open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 76 against 62",
          "Agent ergonomics, 75 against 64"
        ],
        "also": [
          "No incidents deducted, where vLLM loses 6 points for them"
        ],
        "goodFor": "Someone running several GPU programs (llama.cpp, llama-swap, Ollama, vLLM, ComfyUI, games) on one NVIDIA card who wants them to take turns, and agents that need to ask for the card.",
        "slug": "berth",
        "watchFor": "First released on 11 October 2026 and called alpha. Windows, AMD and multiple GPUs are experimental, and the gateway is a preview"
      },
      {
        "aheadOn": [
          "Maintenance \u0026 community, 88 against 76"
        ],
        "also": [
          "No key needed to call it"
        ],
        "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-berth.json",
        "title": "AnythingLLM vs Berth",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-berth"
      },
      {
        "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/berth-vs-bitrun.json",
        "title": "Berth vs BitRun",
        "url": "https://www.anchorterminal.com/compare/berth-vs-bitrun"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-docker-model-runner.json",
        "title": "Berth vs Docker Model Runner",
        "url": "https://www.anchorterminal.com/compare/berth-vs-docker-model-runner"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-foundry-local.json",
        "title": "Berth vs Foundry Local",
        "url": "https://www.anchorterminal.com/compare/berth-vs-foundry-local"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-ghost-core.json",
        "title": "Berth vs Core",
        "url": "https://www.anchorterminal.com/compare/berth-vs-ghost-core"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-gpt4all.json",
        "title": "Berth vs GPT4All",
        "url": "https://www.anchorterminal.com/compare/berth-vs-gpt4all"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-jan.json",
        "title": "Berth vs Jan",
        "url": "https://www.anchorterminal.com/compare/berth-vs-jan"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-khoj.json",
        "title": "Berth vs Khoj",
        "url": "https://www.anchorterminal.com/compare/berth-vs-khoj"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-koboldcpp.json",
        "title": "Berth vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/berth-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-lemonade.json",
        "title": "Berth vs Lemonade",
        "url": "https://www.anchorterminal.com/compare/berth-vs-lemonade"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-llama-cpp.json",
        "title": "Berth vs llama.cpp",
        "url": "https://www.anchorterminal.com/compare/berth-vs-llama-cpp"
      },
      {
        "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-localai.json",
        "title": "Berth vs LocalAI",
        "url": "https://www.anchorterminal.com/compare/berth-vs-localai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-mlx-lm.json",
        "title": "Berth vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/berth-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-ollama.json",
        "title": "Berth vs Ollama",
        "url": "https://www.anchorterminal.com/compare/berth-vs-ollama"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-open-webui.json",
        "title": "Berth vs Open WebUI",
        "url": "https://www.anchorterminal.com/compare/berth-vs-open-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-screenpipe.json",
        "title": "Berth vs screenpipe",
        "url": "https://www.anchorterminal.com/compare/berth-vs-screenpipe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-text-generation-webui.json",
        "title": "Berth vs TextGen",
        "url": "https://www.anchorterminal.com/compare/berth-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-vllm.json",
        "title": "BitRun vs vLLM",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-vllm"
      },
      {
        "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-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-vllm.json",
        "title": "Core vs vLLM",
        "url": "https://www.anchorterminal.com/compare/ghost-core-vs-vllm"
      },
      {
        "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-vllm.json",
        "title": "Jan vs vLLM",
        "url": "https://www.anchorterminal.com/compare/jan-vs-vllm"
      },
      {
        "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-vllm.json",
        "title": "KoboldCpp vs vLLM",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-vllm"
      },
      {
        "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-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-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-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/underdog-vs-vllm.json",
        "title": "Underdog vs vLLM",
        "url": "https://www.anchorterminal.com/compare/underdog-vs-vllm"
      }
    ],
    "scores": [
      {
        "berth": 76,
        "by": 14,
        "edge": "berth",
        "key": "reliability",
        "name": "Reliability",
        "vllm": 62,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "berth": 69,
        "by": 1,
        "edge": "berth",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "vllm": 68,
        "weight": 13
      },
      {
        "berth": 75,
        "by": 11,
        "edge": "berth",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "vllm": 64,
        "weight": 13
      },
      {
        "berth": 51,
        "by": 1,
        "edge": "berth",
        "key": "security",
        "name": "Security \u0026 auth",
        "vllm": 50,
        "weight": 14
      },
      {
        "berth": 60,
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "vllm": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "berth": 76,
        "by": 12,
        "edge": "vllm",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "vllm": 88,
        "weight": 7
      },
      {
        "berth": 68,
        "by": 0,
        "edge": "",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "vllm": 68,
        "weight": 7
      }
    ],
    "summary": "Berth scores 67.6 (B) on agent readiness against vLLM's 57.8 (C), and leads in 4 of 7 scored categories. vLLM leads on maintenance \u0026 community. Both do local inference.",
    "tutorials": [],
    "verdicts": {
      "berth": "Berth coordinates one NVIDIA card between engines, ComfyUI and games, grants a lease only after the driver shows memory free, and gives agents a skill, JSON output and a keyed loopback gateway. It is 17 days old, alpha and maintained by one developer, with Windows and AMD experimental and no machine-readable API spec.",
      "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/berth-vs-vllm",
    "json": "https://www.anchorterminal.com/compare/berth-vs-vllm.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/berth-vs-vllm.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/berth-vs-vllm.min.md"
  },
  "markdown": "Berth scores 67.6 (B) on agent readiness against vLLM's 57.8 (C), and leads in 4 of 7 scored categories. vLLM leads on maintenance \u0026 community. Both do local inference.\n\n- Berth: grade B, 67.6/100, rank #283 of 1218. Markdown https://www.anchorterminal.com/tools/berth.md · JSON https://www.anchorterminal.com/api/v1/tools/berth.json\n- vLLM: grade C, 57.8/100, rank #688 of 1218. 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 229 local ai comparisons: https://www.anchorterminal.com/compare/local-ai/index.md\n\n## Which one, for what\n\n### Berth (B)\n\nGood for: Someone running several GPU programs (llama.cpp, llama-swap, Ollama, vLLM, ComfyUI, games) on one NVIDIA card who wants them to take turns, and agents that need to ask for the card.\n\nAhead on:\n- Reliability, 76 against 62\n- Agent ergonomics, 75 against 64\n\nAlso in its favour:\n- No incidents deducted, where vLLM loses 6 points for them\n\nWatch for: First released on 11 October 2026 and called alpha. Windows, AMD and multiple GPUs are experimental, and the gateway is a preview\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- Maintenance \u0026 community, 88 against 76\n\nAlso in its favour:\n- No key needed to call it\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 | Berth | vLLM | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 76 | 62 | Berth +14 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 69 | 68 | Berth +1 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 64 | Berth +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 51 | 50 | Berth +1 |\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) | 76 | 88 | vLLM +12 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 68 | even |\n| Negative events | ≤15 | 0 | -6 | |\n| **Total** | | **67.6 · B** | **57.8 · C** | |\n\n## Facts side by side\n\n| Fact | Berth | vLLM |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Trevin Tindall (T-Crypt on GitHub) | 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 | Apache-2.0. The Berth name, the Pilot mascot and the artwork in assets/ are excluded from the licence, per the NOTICE file | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-10-23 | 2026-10-02 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 245 stars | 93k stars |\n\n## Verdicts\n\n**Berth.** Berth coordinates one NVIDIA card between engines, ComfyUI and games, grants a lease only after the driver shows memory free, and gives agents a skill, JSON output and a keyed loopback gateway. It is 17 days old, alpha and maintained by one developer, with Windows and AMD experimental and no machine-readable API spec.\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### Berth\n\n1. Run `berth status --format json` before starting, stopping or switching any GPU engine. If berthd is unreachable, no engine is protected\n2. Never kill a process to free VRAM. Ask for the card with `berth run`, `berth hold` or a gateway request, and report stowaways to the user\n3. Send gateway requests to http://127.0.0.1:9799/v1 with `Authorization: Bearer $(berth key)`, and use `\"stream\": true` for cold starts of up to minutes\n4. On a 503, read the `code` and wait for `Retry-After`. A pinned holder (a game or `berth hold`) answers 409 to stop and is the user's call\n5. Ask the user before `berth reclaim LEASE --yes`, any berth.toml edit or `berth update`. Each changes the node\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, Berth or vLLM?\n\nBerth scores 67.6 (B) on agent readiness against vLLM's 57.8 (C), and leads in 4 of 7 scored categories. vLLM leads on maintenance \u0026 community.\n\n### Do Berth and vLLM need an API key?\n\nBerth needs an API key. vLLM needs no key.\n\n### Can an agent call Berth and vLLM without installing anything?\n\nNo hosted endpoint is listed for Berth. No hosted endpoint is listed for vLLM.\n\n### Are Berth and vLLM open source?\n\nYes. Berth is open source (Apache-2.0. The Berth name, the Pilot mascot and the artwork in assets/ are excluded from the licence, per the NOTICE file). vLLM is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/berth-vs-vllm.json, and with the fewest tokens: https://www.anchorterminal.com/compare/berth-vs-vllm.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"berth\", \"b\": \"vllm\"}`. From a terminal: `anchor compare berth vllm`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/berth.json and https://www.anchorterminal.com/api/v1/tools/vllm.json\n\n## Other comparisons with Berth or vLLM\n\n- [AnythingLLM vs Berth](https://www.anchorterminal.com/compare/anythingllm-vs-berth.md)\n- [AnythingLLM vs vLLM](https://www.anchorterminal.com/compare/anythingllm-vs-vllm.md)\n- [Berth vs BitRun](https://www.anchorterminal.com/compare/berth-vs-bitrun.md)\n- [Berth vs Docker Model Runner](https://www.anchorterminal.com/compare/berth-vs-docker-model-runner.md)\n- [Berth vs Foundry Local](https://www.anchorterminal.com/compare/berth-vs-foundry-local.md)\n- [Berth vs Core](https://www.anchorterminal.com/compare/berth-vs-ghost-core.md)\n- [Berth vs GPT4All](https://www.anchorterminal.com/compare/berth-vs-gpt4all.md)\n- [Berth vs Jan](https://www.anchorterminal.com/compare/berth-vs-jan.md)\n- [Berth vs Khoj](https://www.anchorterminal.com/compare/berth-vs-khoj.md)\n- [Berth vs KoboldCpp](https://www.anchorterminal.com/compare/berth-vs-koboldcpp.md)\n- [Berth vs Lemonade](https://www.anchorterminal.com/compare/berth-vs-lemonade.md)\n- [Berth vs llama.cpp](https://www.anchorterminal.com/compare/berth-vs-llama-cpp.md)\n- [Berth vs LM Studio](https://www.anchorterminal.com/compare/berth-vs-lm-studio.md)\n- [Berth vs LocalAI](https://www.anchorterminal.com/compare/berth-vs-localai.md)\n- [Berth vs MLX LM](https://www.anchorterminal.com/compare/berth-vs-mlx-lm.md)\n- [Berth vs Ollama](https://www.anchorterminal.com/compare/berth-vs-ollama.md)\n- [Berth vs Open WebUI](https://www.anchorterminal.com/compare/berth-vs-open-webui.md)\n- [Berth vs screenpipe](https://www.anchorterminal.com/compare/berth-vs-screenpipe.md)\n- [Berth vs TextGen](https://www.anchorterminal.com/compare/berth-vs-text-generation-webui.md)\n- [BitRun vs vLLM](https://www.anchorterminal.com/compare/bitrun-vs-vllm.md)\n- [Docker Model Runner vs vLLM](https://www.anchorterminal.com/compare/docker-model-runner-vs-vllm.md)\n- [Foundry Local vs vLLM](https://www.anchorterminal.com/compare/foundry-local-vs-vllm.md)\n- [Core vs vLLM](https://www.anchorterminal.com/compare/ghost-core-vs-vllm.md)\n- [GPT4All vs vLLM](https://www.anchorterminal.com/compare/gpt4all-vs-vllm.md)\n- [Jan vs vLLM](https://www.anchorterminal.com/compare/jan-vs-vllm.md)\n- [Khoj vs vLLM](https://www.anchorterminal.com/compare/khoj-vs-vllm.md)\n- [KoboldCpp vs vLLM](https://www.anchorterminal.com/compare/koboldcpp-vs-vllm.md)\n- [Lemonade vs vLLM](https://www.anchorterminal.com/compare/lemonade-vs-vllm.md)\n- [llama.cpp vs vLLM](https://www.anchorterminal.com/compare/llama-cpp-vs-vllm.md)\n- [LM Studio vs vLLM](https://www.anchorterminal.com/compare/lm-studio-vs-vllm.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- [Underdog vs vLLM](https://www.anchorterminal.com/compare/underdog-vs-vllm.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-28",
    "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": "Berth vs vLLM",
        "url": ""
      }
    ],
    "description": "Berth scores 67.6 (B) to vLLM's 57.8 (C) for local inference. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Berth B 67.6",
      "vLLM C 57.8",
      "scores"
    ],
    "h1": "Berth vs vLLM",
    "image": "https://www.anchorterminal.com/assets/og/compare-berth-vs-vllm.png",
    "path": "/compare/berth-vs-vllm",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Berth vs vLLM for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-28",
    "url": "https://www.anchorterminal.com/compare/berth-vs-vllm"
  },
  "tokens": {
    "markdown": 2600,
    "slim": 530
  },
  "version": 1
}
