{
  "data": {
    "similar": [
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/localai.json",
        "name": "LocalAI",
        "score": 68,
        "shared": [
          "inference.local",
          "inference.open-weights",
          "embed.text",
          "rerank",
          "speech.stt",
          "speech.tts",
          "image.generate"
        ],
        "slug": "localai"
      },
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/deepinfra.json",
        "name": "DeepInfra",
        "score": 63,
        "shared": [
          "inference.open-weights",
          "embed.text",
          "rerank",
          "image.generate",
          "speech.stt",
          "speech.tts"
        ],
        "slug": "deepinfra"
      },
      {
        "grade": "C",
        "json": "https://www.anchorterminal.com/tools/koboldcpp.json",
        "name": "KoboldCpp",
        "score": 60.5,
        "shared": [
          "inference.local",
          "inference.open-weights",
          "embed.text",
          "image.generate",
          "speech.stt",
          "speech.tts"
        ],
        "slug": "koboldcpp"
      },
      {
        "grade": "C",
        "json": "https://www.anchorterminal.com/tools/docker-model-runner.json",
        "name": "Docker Model Runner",
        "score": 57.1,
        "shared": [
          "inference.local",
          "inference.open-weights",
          "embed.text",
          "rerank",
          "image.generate"
        ],
        "slug": "docker-model-runner"
      },
      {
        "grade": "C",
        "json": "https://www.anchorterminal.com/tools/foundry-local.json",
        "name": "Foundry Local",
        "score": 60.5,
        "shared": [
          "inference.local",
          "inference.open-weights",
          "embed.text",
          "speech.stt"
        ],
        "slug": "foundry-local"
      },
      {
        "grade": "C",
        "json": "https://www.anchorterminal.com/tools/llama-cpp.json",
        "name": "llama.cpp",
        "score": 60.2,
        "shared": [
          "inference.local",
          "inference.open-weights",
          "embed.text",
          "rerank"
        ],
        "slug": "llama-cpp"
      }
    ],
    "tool": {
      "slug": "lemonade",
      "name": "Lemonade",
      "vendor": "AMD and the Lemonade community",
      "vendorUrl": "https://lemonade-server.ai",
      "kind": "http-api",
      "category": "local-ai",
      "summary": "Open-source local AI server from AMD and community contributors. It runs text, speech and image models on the owner's CPU, GPU or NPU behind OpenAI-, Anthropic- and Ollama-compatible APIs and an MCP endpoint on port 13305.",
      "url": "https://www.anchorterminal.com/tools/lemonade",
      "markdownUrl": "https://www.anchorterminal.com/tools/lemonade.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/lemonade.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/lemonade.json",
      "repo": "https://github.com/lemonade-sdk/lemonade",
      "license": "Apache 2.0. Each backend (llama.cpp, whisper.cpp, stable-diffusion.cpp, FastFlowLM and others) is downloaded separately under its own licence",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "oci",
          "name": "ghcr.io/lemonade-sdk/lemonade-server"
        }
      ],
      "auth": "api-key",
      "authNotes": "Off by default. With no key set, every endpoint answers without authentication, on a default bind of localhost. `LEMONADE_API_KEY` sets one bearer key for the regular API (`/api/*`, `/v0/*`, `/v1/*`, `/mcp` and `/metrics`). `LEMONADE_ADMIN_API_KEY` sets a second key for the internal control endpoints (`/internal/*`), and without it the regular key reaches those too. Both are environment variables, so there are no per-user keys. The docs tell WebSocket clients to pass `?api_key=KEY` in the URL.",
      "pricing": "free",
      "pricingNotes": "Free and Apache 2.0 with nothing to buy and no account. You run it on your own hardware. Cloud Offload, which is optional and experimental, bills through the owner's own keys at whichever cloud provider they add.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 6,
      "popularity": {
        "githubStars": 5800,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://lemonade-server.ai/docs/",
      "capabilities": [
        "inference.local",
        "inference.open-weights",
        "embed.text",
        "rerank",
        "speech.stt",
        "speech.tts",
        "image.generate"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "free",
        "no-card",
        "openai-compatible",
        "mcp",
        "streaming",
        "open-weights",
        "amd",
        "npu",
        "docker"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.8,
        "grade": "B",
        "agentReady": false,
        "rank": 336,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 76,
          "payments": 60,
          "reliability": 75,
          "schema": 70,
          "security": 36,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "breakdown": [
          {
            "key": "reliability",
            "name": "Reliability",
            "weight": 16,
            "effectiveWeight": 20,
            "score": 75,
            "points": 15,
            "reason": "Read with the local-software lines, since Lemonade runs on the owner's hardware with no hosted service behind it. Official installers for each platform (Windows MSI and winget, macOS pkg, Ubuntu PPA and Snap, Debian deb, Fedora rpm, an Arch package and a container on ghcr.io), with supported systems and a backend-by-device table in the README (20). A public CI builds and tests every platform with C++ unit tests and Python server tests, and an MCP smoke test runs beside it. On 8 October 2026 the main build, test and release workflow's badge read failing on main, while the MCP smoke test and docs workflows read passing (15 of 25). 411 issues and 158 pull requests were open. New reports are labelled within a day or two, and open bugs from the past week include a server that stops responding after a client disconnects mid-request (#3769) and HTTP 500s from llama.cpp output parsing (#3770) (15 of 25). Versions are year.week.number since September, so the number carries no compatibility signal, but every release's notes have a Breaking Changes section, and most weekly releases list one or more (10 of 15). A stable channel separate from weekly candidates, and v11.9.0 before the scheme changed (15)."
          },
          {
            "key": "performance",
            "name": "Performance",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
          },
          {
            "key": "schema",
            "name": "Schema \u0026 documentation",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 70,
            "points": 11.38,
            "reason": "We found no OpenAPI or Swagger file in the repository. The six MCP tools carry JSON Schema inputs from `tools/list`, though `messages` and `tools` are arrays of untyped objects and `stop` and `tool_choice` have empty schemas (12 of 25). No llms.txt at lemonade-server.ai (404). Every running server returns its own Markdown API reference at `GET /v1/docs` and through the `lemonade_docs` tool, so the reference matches the installed version and works offline (8 of 10). MCP tool descriptions say what to call first, which argument to prefer and what a wrong model name costs, and the API reference marks each OpenAI parameter as available or not (17 of 20). One enum (`response_format` on transcription), a minimum on `n` and required fields are declared, and the rest is typed loosely (8 of 15). Request examples in PowerShell and bash throughout, error tables on some endpoints and a JSON-RPC error table for MCP, but no single error reference (12 of 15). Notes with Headline and Breaking Changes sections on every release and versioned route prefixes, with no CHANGELOG file (13 of 15)."
          },
          {
            "key": "ergonomics",
            "name": "Agent ergonomics",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 70,
            "points": 11.38,
            "reason": "Read with the MCP lines for `/mcp` and the API lines for the OpenAI-compatible routes. Six tools, with long descriptions (22 of 25). `max_tokens` caps output, `output_dir` returns file paths in place of inline base64, and `lemonade_list_models` has two include flags. We found no pagination on list routes (12 of 20). OpenAI-style error objects with a type and message, tool failures returned as `isError: true` with text a model can act on, and 501 on unsupported Ollama routes. No Retry-After or overload guidance found (15 of 20). No `readOnlyHint` or `destructiveHint` in the tool definitions and no idempotency keys. `allow_download` defaults to false, so a call can't start a download unless asked, and inference calls are safe to repeat (9 of 20). `model` is optional on the MCP tools, `lemonade launch claude` configures Claude Code in one command, and existing OpenAI, Anthropic and Ollama clients work unchanged, with no Lemonade client SDK (12 of 15)."
          },
          {
            "key": "security",
            "name": "Security \u0026 auth",
            "weight": 14,
            "effectiveWeight": 17.5,
            "score": 36,
            "points": 6.3,
            "reason": "Read with the tool checklist. Authentication is off until the operator sets `LEMONADE_API_KEY`, and with no key every route answers, including `/internal/*` shutdown and configuration. Two bearer keys set by environment variable separate regular from admin access, with no per-user keys and no rotation short of a restart, so 15 of 30, less 10 because the docs tell WebSocket clients to send the key as `?api_key=KEY` (5). The admin key fences off `/internal/*`, the default bind is localhost, cross-origin browser requests need an allow-list, MCP file writes are confined to a sandbox directory with traversal and symlink escapes rejected, and downloads need `allow_download`. The regular key still reaches model pull, delete and backend install, and there's no read-only mode (10 of 20). The tools return output from the owner's local models and no fetched web content. No prompt-injection guidance found in the docs (8 of 15). Optional OTLP traces for every inference request with session and client identifiers, Prometheus metrics at `/metrics` and a log stream WebSocket (11 of 15). GitHub reports no `SECURITY.md` and no advisories, lemonade-server.ai has no security.txt, NVD returned no entries for lemonade-sdk, and we found no disclosure address or bounty. Dependabot covers dev containers only (2 of 20)."
          },
          {
            "key": "payments",
            "name": "Payments \u0026 pricing",
            "weight": 10,
            "effectiveWeight": 12.5,
            "score": 60,
            "points": 7.5,
            "reason": "Read with the self-hosted rule. No x402, MPP or L402, and nothing is sold (0). Apache 2.0 with no account and no card, so 20, 20 and 20 on the last three lines. Cloud Offload uses the owner's own provider keys."
          },
          {
            "key": "tasks",
            "name": "Task success",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
          },
          {
            "key": "maintenance",
            "name": "Maintenance \u0026 community",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 76,
            "points": 6.65,
            "reason": "Stable release v2026.41.1 on 7 October 2026 (30). At least six stable releases in the 90 days to 8 October, from v11.7.0 on 19 August to v2026.41.1, with a candidate every week (20). New issues are labelled by area and engine within a day or two, 411 issues and 158 pull requests are open, and a Discord server is linked from the README. Comment threads weren't read (15 of 25). The official MCP registry returned no entry for Lemonade and there's no Lemonade client SDK, though OpenAI, Anthropic and Ollama SDKs work against it (5 of 15). A large CI matrix with self-hosted GPU and NPU runners, but the main workflow's badge read failing on 8 October and Dependabot is set up for dev containers only (6 of 10)."
          },
          {
            "key": "transparency",
            "name": "Transparency \u0026 trust",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 64,
            "points": 5.6,
            "note": "editorial 70, provenance 57",
            "reason": "Apache 2.0, with backends downloaded separately under their own licences (30). We found no privacy policy for the software or the website. The README says the server is free and private, and the configuration guide documents the calls a default install makes (model and backend downloads, a start-up update check against Hugging Face, UDP broadcast for discovery) with switches for each. Nothing says what the project's own download hosts log (14 of 30). Release notes carry a Breaking Changes section and the release process is written down, but the one deprecation we found (`LEMONADE_ALLOWED_ORIGINS`) says only a future release, with no date (8 of 20). Telemetry is off by default, goes only to an OTLP endpoint the operator sets, and has documented switches to redact prompts, outputs and reasoning. A search of the source found no analytics library (18 of 20)."
          }
        ],
        "assessment": {
          "date": "2026-10-08",
          "basis": "public evidence",
          "confidence": "medium",
          "notes": {
            "ergonomics": "Read with the MCP lines for `/mcp` and the API lines for the OpenAI-compatible routes. Six tools, with long descriptions (22 of 25). `max_tokens` caps output, `output_dir` returns file paths in place of inline base64, and `lemonade_list_models` has two include flags. We found no pagination on list routes (12 of 20). OpenAI-style error objects with a type and message, tool failures returned as `isError: true` with text a model can act on, and 501 on unsupported Ollama routes. No Retry-After or overload guidance found (15 of 20). No `readOnlyHint` or `destructiveHint` in the tool definitions and no idempotency keys. `allow_download` defaults to false, so a call can't start a download unless asked, and inference calls are safe to repeat (9 of 20). `model` is optional on the MCP tools, `lemonade launch claude` configures Claude Code in one command, and existing OpenAI, Anthropic and Ollama clients work unchanged, with no Lemonade client SDK (12 of 15).",
            "maintenance": "Stable release v2026.41.1 on 7 October 2026 (30). At least six stable releases in the 90 days to 8 October, from v11.7.0 on 19 August to v2026.41.1, with a candidate every week (20). New issues are labelled by area and engine within a day or two, 411 issues and 158 pull requests are open, and a Discord server is linked from the README. Comment threads weren't read (15 of 25). The official MCP registry returned no entry for Lemonade and there's no Lemonade client SDK, though OpenAI, Anthropic and Ollama SDKs work against it (5 of 15). A large CI matrix with self-hosted GPU and NPU runners, but the main workflow's badge read failing on 8 October and Dependabot is set up for dev containers only (6 of 10).",
            "payments": "Read with the self-hosted rule. No x402, MPP or L402, and nothing is sold (0). Apache 2.0 with no account and no card, so 20, 20 and 20 on the last three lines. Cloud Offload uses the owner's own provider keys.",
            "reliability": "Read with the local-software lines, since Lemonade runs on the owner's hardware with no hosted service behind it. Official installers for each platform (Windows MSI and winget, macOS pkg, Ubuntu PPA and Snap, Debian deb, Fedora rpm, an Arch package and a container on ghcr.io), with supported systems and a backend-by-device table in the README (20). A public CI builds and tests every platform with C++ unit tests and Python server tests, and an MCP smoke test runs beside it. On 8 October 2026 the main build, test and release workflow's badge read failing on main, while the MCP smoke test and docs workflows read passing (15 of 25). 411 issues and 158 pull requests were open. New reports are labelled within a day or two, and open bugs from the past week include a server that stops responding after a client disconnects mid-request (#3769) and HTTP 500s from llama.cpp output parsing (#3770) (15 of 25). Versions are year.week.number since September, so the number carries no compatibility signal, but every release's notes have a Breaking Changes section, and most weekly releases list one or more (10 of 15). A stable channel separate from weekly candidates, and v11.9.0 before the scheme changed (15).",
            "schema": "We found no OpenAPI or Swagger file in the repository. The six MCP tools carry JSON Schema inputs from `tools/list`, though `messages` and `tools` are arrays of untyped objects and `stop` and `tool_choice` have empty schemas (12 of 25). No llms.txt at lemonade-server.ai (404). Every running server returns its own Markdown API reference at `GET /v1/docs` and through the `lemonade_docs` tool, so the reference matches the installed version and works offline (8 of 10). MCP tool descriptions say what to call first, which argument to prefer and what a wrong model name costs, and the API reference marks each OpenAI parameter as available or not (17 of 20). One enum (`response_format` on transcription), a minimum on `n` and required fields are declared, and the rest is typed loosely (8 of 15). Request examples in PowerShell and bash throughout, error tables on some endpoints and a JSON-RPC error table for MCP, but no single error reference (12 of 15). Notes with Headline and Breaking Changes sections on every release and versioned route prefixes, with no CHANGELOG file (13 of 15).",
            "security": "Read with the tool checklist. Authentication is off until the operator sets `LEMONADE_API_KEY`, and with no key every route answers, including `/internal/*` shutdown and configuration. Two bearer keys set by environment variable separate regular from admin access, with no per-user keys and no rotation short of a restart, so 15 of 30, less 10 because the docs tell WebSocket clients to send the key as `?api_key=KEY` (5). The admin key fences off `/internal/*`, the default bind is localhost, cross-origin browser requests need an allow-list, MCP file writes are confined to a sandbox directory with traversal and symlink escapes rejected, and downloads need `allow_download`. The regular key still reaches model pull, delete and backend install, and there's no read-only mode (10 of 20). The tools return output from the owner's local models and no fetched web content. No prompt-injection guidance found in the docs (8 of 15). Optional OTLP traces for every inference request with session and client identifiers, Prometheus metrics at `/metrics` and a log stream WebSocket (11 of 15). GitHub reports no `SECURITY.md` and no advisories, lemonade-server.ai has no security.txt, NVD returned no entries for lemonade-sdk, and we found no disclosure address or bounty. Dependabot covers dev containers only (2 of 20).",
            "transparency": "Apache 2.0, with backends downloaded separately under their own licences (30). We found no privacy policy for the software or the website. The README says the server is free and private, and the configuration guide documents the calls a default install makes (model and backend downloads, a start-up update check against Hugging Face, UDP broadcast for discovery) with switches for each. Nothing says what the project's own download hosts log (14 of 30). Release notes carry a Breaking Changes section and the release process is written down, but the one deprecation we found (`LEMONADE_ALLOWED_ORIGINS`) says only a future release, with no date (8 of 20). Telemetry is off by default, goes only to an OTLP endpoint the operator sets, and has documented switches to redact prompts, outputs and reasoning. A search of the source found no analytics library (18 of 20)."
          },
          "sources": [
            {
              "what": "repository and README",
              "url": "https://github.com/lemonade-sdk/lemonade",
              "seen": "2026-10-08"
            },
            {
              "what": "releases",
              "url": "https://github.com/lemonade-sdk/lemonade/releases",
              "seen": "2026-10-08"
            },
            {
              "what": "release v2026.41.1",
              "url": "https://github.com/lemonade-sdk/lemonade/releases/tag/v2026.41.1",
              "seen": "2026-10-08"
            },
            {
              "what": "open issues",
              "url": "https://github.com/lemonade-sdk/lemonade/issues",
              "seen": "2026-10-08"
            },
            {
              "what": "security tab (no policy, no advisories)",
              "url": "https://github.com/lemonade-sdk/lemonade/security",
              "seen": "2026-10-08"
            },
            {
              "what": "main build, test and release workflow badge",
              "url": "https://github.com/lemonade-sdk/lemonade/actions/workflows/cpp_server_build_test_release.yml/badge.svg?branch=main",
              "seen": "2026-10-08"
            },
            {
              "what": "MCP smoke test workflow badge",
              "url": "https://github.com/lemonade-sdk/lemonade/actions/workflows/mcp-smoke-test.yml/badge.svg?branch=main",
              "seen": "2026-10-08"
            },
            {
              "what": "MCP gateway docs",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/docs/api/mcp.md",
              "seen": "2026-10-08"
            },
            {
              "what": "MCP tool definitions (source)",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/src/cpp/server/mcp_server.cpp",
              "seen": "2026-10-08"
            },
            {
              "what": "OpenAI-compatible API reference",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/docs/api/openai.md",
              "seen": "2026-10-08"
            },
            {
              "what": "Lemonade API reference",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/docs/api/lemonade.md",
              "seen": "2026-10-08"
            },
            {
              "what": "Anthropic-compatible API",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/docs/api/anthropic.md",
              "seen": "2026-10-08"
            },
            {
              "what": "Ollama-compatible API",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/docs/api/ollama.md",
              "seen": "2026-10-08"
            },
            {
              "what": "server configuration, keys, origins and network settings",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/configuration/README.md",
              "seen": "2026-10-08"
            },
            {
              "what": "telemetry guide",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/telemetry.md",
              "seen": "2026-10-08"
            },
            {
              "what": "release process and versioning",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/docs/dev/release.md",
              "seen": "2026-10-08"
            },
            {
              "what": "Docker install guide",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/install/docker.md",
              "seen": "2026-10-08"
            },
            {
              "what": "Claude Code integration",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/docs/integrations/claude-code.md",
              "seen": "2026-10-08"
            },
            {
              "what": "Debian copyright file",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/contrib/debian/copyright",
              "seen": "2026-10-08"
            },
            {
              "what": "Dependabot configuration",
              "url": "https://github.com/lemonade-sdk/lemonade/blob/main/.github/dependabot.yml",
              "seen": "2026-10-08"
            },
            {
              "what": "vendor home page and footer",
              "url": "https://lemonade-server.ai/",
              "seen": "2026-10-08"
            },
            {
              "what": "docs site",
              "url": "https://lemonade-server.ai/docs/",
              "seen": "2026-10-08"
            },
            {
              "what": "llms.txt (404)",
              "url": "https://lemonade-server.ai/llms.txt",
              "seen": "2026-10-08"
            },
            {
              "what": "security.txt (404)",
              "url": "https://lemonade-server.ai/.well-known/security.txt",
              "seen": "2026-10-08"
            },
            {
              "what": "official MCP registry search (no results)",
              "url": "https://registry.modelcontextprotocol.io/v0/servers?search=lemonade",
              "seen": "2026-10-08"
            },
            {
              "what": "RDAP record for lemonade-server.ai",
              "url": "https://rdap.org/domain/lemonade-server.ai",
              "seen": "2026-10-08"
            },
            {
              "what": "NVD keyword search (no results)",
              "url": "https://services.nvd.nist.gov/rest/json/cves/2.0?keywordSearch=lemonade-sdk",
              "seen": "2026-10-08"
            }
          ],
          "openQuestions": [
            "unchecked: who answers issues and how fast. Issue comment threads weren't read, and the GitHub API refused us for its rate limit",
            "unchecked: which job failed in the main build, test and release workflow on 8 October 2026. The runs list didn't render for our reader, so the failing state comes from the workflow badge alone",
            "unchecked: the first release date and the exact star count (the repository page showed 5.8k)",
            "unchecked: the licences of the separately downloaded backends, FastFlowLM and Ryzen AI among them",
            "unchecked: whether private vulnerability reporting is switched on for the repository",
            "unchecked: whether a `resources/list` or annotations field appears in a live `tools/list` response. We read the source and the generated docs and ran no server",
            "No terms of service or privacy policy was found for the software or the website, so `provenance.terms` and `provenance.privacy` are empty",
            "The legal entity is taken from the website footer (AMD) and `contrib/debian/copyright` (Advanced Micro Devices, Inc.). The `LICENSE` file has no copyright line"
          ]
        },
        "negative": 0,
        "verdict": "Apache 2.0, with weekly releases, installers for Windows, macOS and five Linux routes, and a six-tool MCP endpoint whose descriptions steer a caller away from accidental multi-gigabyte downloads. Authentication is off by default, the repository has no security policy, and the docs tell WebSocket clients to pass the key in the URL.",
        "bestFor": "An owner with AMD hardware (Ryzen AI NPUs, Radeon or Strix Halo) who wants one local server for chat, speech and images that existing OpenAI, Anthropic or Ollama clients can call, and for MCP clients that want local models as tools.",
        "strengths": [
          "Apache 2.0, with OpenAI, Anthropic Messages, Ollama and llama.cpp-compatible routes on one port (13305)",
          "`POST /mcp` exposes six tools over Streamable HTTP, and omitting `model` reuses a loaded or downloaded model before any download",
          "Every running server returns its own Markdown API reference at `GET /v1/docs` and through the `lemonade_docs` tool, so it matches the installed version",
          "Stable release v2026.41.1 on 7 October 2026 on a weekly cadence, each with a Breaking Changes section in its notes",
          "Telemetry is off by default and exports OTLP traces only to an endpoint the operator sets, with switches to redact prompts and outputs"
        ],
        "weaknesses": [
          "No authentication by default. With no key set, every route answers, including `/internal/*` shutdown and configuration",
          "GitHub reports no `SECURITY.md`, and we found no security.txt, advisory or disclosure address",
          "The docs tell WebSocket clients to send the key as `?api_key=KEY` in the URL",
          "No OpenAPI file in the repository, and no `readOnlyHint` or `destructiveHint` on the MCP tools",
          "The main build and test workflow's badge read failing on main on 8 October 2026, with 411 issues open"
        ],
        "agentNotes": [
          "Call `lemonade_list_models` (or `GET /v1/models`) before naming a model. A wrong name with `allow_download: true` can start a multi-gigabyte download",
          "Send `Authorization: Bearer \u003ckey\u003e` when the operator has set `LEMONADE_API_KEY`. `/internal/*` needs the admin key when one is set",
          "Use `POST /v1/chat/completions` for streamed tokens, embeddings and speech. The MCP endpoint ignores `stream` and has no embeddings or text-to-speech tool",
          "Pass `output_dir` to `lemonade_generate_image` and `lemonade_omni` to get file paths in place of inline base64. Writes stay inside the MCP media sandbox",
          "Read `GET /v1/docs` on the running server for the reference that matches its version. Weekly releases change behaviour"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.8
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 76,
          "payments": 60,
          "reliability": 75,
          "schema": 70,
          "security": 36,
          "transparency": 70
        },
        "provenanceScore": 57
      },
      "connect": {
        "install": "winget install --id AMD.LemonadeServer -e",
        "http": "curl http://localhost:13305/api/v1/chat/completions -H \"Content-Type: application/json\" -d '{\"model\": \"your-model-name\", \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}]}'",
        "claudeCode": "lemonade launch claude"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/lemonade"
      },
      "notable": [
        "The MCP gateway is one endpoint, `POST /mcp`, on MCP spec version 2025-06-18 with the tools capability only. `GET /mcp` returns 405, no session id is issued, and resources and prompts aren't implemented (https://github.com/lemonade-sdk/lemonade/blob/main/docs/api/mcp.md)",
        "With neither `LEMONADE_API_KEY` nor `LEMONADE_ADMIN_API_KEY` set, regular and internal endpoints need no authentication. The default bind is localhost (https://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/configuration/README.md)",
        "The docs tell WebSocket clients of `/realtime` and `/logs/stream` to pass `?api_key=KEY` as a query parameter when a key is set (https://github.com/lemonade-sdk/lemonade/blob/main/docs/api/openai.md)",
        "GitHub's security tab says the project has not set up a `SECURITY.md` file and lists no advisories (https://github.com/lemonade-sdk/lemonade/security)",
        "Versions moved from X.Y.Z (v11.9.0 on 1 September 2026) to year.week.number (v2026.39.1 on 23 September 2026), with a release candidate cut every Wednesday (https://github.com/lemonade-sdk/lemonade/blob/main/docs/dev/release.md)",
        "UDP broadcast for server discovery and a start-up check of downloaded models against Hugging Face are both on by default. `broadcast`, `auto_check_model_updates` and `offline` switch them (https://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/configuration/README.md)",
        "Cloud Offload, marked experimental, routes requests to any OpenAI-compatible cloud provider with the owner's own keys (https://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/configuration/cloud.md)"
      ],
      "area": "models",
      "details": [
        {
          "label": "Interfaces",
          "value": "OpenAI-compatible REST under `/v1` and `/api/v1` (chat, completions, embeddings, responses, audio, images, realtime WebSocket), Anthropic Messages at `POST /v1/messages`, Ollama routes under `/api`, llama.cpp routes, Lemonade's own management API, an MCP endpoint at `POST /mcp`, a CLI (`lemonade`), a web UI and a tray app"
        },
        {
          "label": "MCP tools",
          "value": "6 over Streamable HTTP (`lemonade_list_models`, `lemonade_chat`, `lemonade_transcribe_audio`, `lemonade_generate_image`, `lemonade_omni`, `lemonade_docs`). No annotations, no streaming, no embeddings or text-to-speech tool"
        },
        {
          "label": "Hardware",
          "value": "llama.cpp on CPU, Vulkan, ROCm, CUDA (Turing or newer) and Apple Metal. AMD XDNA2 NPUs through FastFlowLM (Windows, Linux) and Ryzen AI (Windows). vLLM on Strix Halo is marked experimental"
        },
        {
          "label": "Models",
          "value": "GGUF, FLM and ONNX language models, whisper.cpp and Moonshine speech-to-text, Kokoro text-to-speech, stable-diffusion.cpp images, pulled from Hugging Face or ModelScope"
        },
        {
          "label": "Install",
          "value": "Windows MSI and winget (`AMD.LemonadeServer`), macOS pkg, Ubuntu PPA and Snap, Debian deb, Fedora rpm, an Arch package, and a container at `ghcr.io/lemonade-sdk/lemonade-server`"
        },
        {
          "label": "Auth",
          "value": "Off by default. `LEMONADE_API_KEY` gates the regular API and `LEMONADE_ADMIN_API_KEY` gates `/internal/*`, both as bearer tokens set by environment variable"
        },
        {
          "label": "Rate limits",
          "value": "None documented. `max_loaded_models` (default 1 per model type) evicts the least recently used model"
        },
        {
          "label": "Network by default",
          "value": "Model and backend downloads from Hugging Face, ModelScope and GitHub, a start-up update check of downloaded models, and UDP broadcast for discovery. `offline: true` and `no_fetch_executables: true` block downloads"
        },
        {
          "label": "Telemetry",
          "value": "Off by default. When enabled, OTLP traces go to the operator's own collector, with `hide_inputs`, `hide_outputs` and `hide_thinking` to redact text"
        },
        {
          "label": "Releases in 90 days",
          "value": "At least 6 stable (v11.7.0 on 19 August to v2026.41.1 on 7 October 2026), plus weekly candidates"
        }
      ],
      "provenance": {
        "legalEntity": "Advanced Micro Devices, Inc.",
        "domain": "lemonade-server.ai",
        "domainRegistered": "2025-05-12",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/lemonade-sdk/lemonade/releases",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The website footer reads \"© 2026 AMD. Licensed under Apache 2.0\", and `contrib/debian/copyright` in the repository names Advanced Micro Devices, Inc. The code lives in the lemonade-sdk organisation on GitHub, and the README calls it a community project with optimisations by AMD engineers.",
          "We found no terms of service and no privacy policy for the software or the website. The home page and its footer link to neither, so both fields are empty.",
          "lemonade-server.ai/.well-known/security.txt, /security.txt and /llms.txt return 404.",
          "RDAP gives a registration date of 2025-05-12 for lemonade-server.ai, with Porkbun LLC as registrar and the registrant behind a privacy service.",
          "There's no hosted endpoint. Each instance answers on the owner's own machine, by default localhost port 13305."
        ],
        "score": 57,
        "checks": [
          {
            "check": "Legal entity named",
            "value": "Advanced Micro Devices, Inc.",
            "points": 20,
            "max": 20,
            "state": "ok"
          },
          {
            "check": "Domain age",
            "value": "lemonade-server.ai, registered 2025-05-12 (1 year)",
            "points": 3,
            "max": 15,
            "state": "part"
          },
          {
            "check": "Endpoint on the vendor's domain",
            "value": "no hosted endpoint",
            "points": 0,
            "max": 0,
            "state": "na"
          },
          {
            "check": "Terms of service",
            "value": "nothing hosted, so the Apache 2.0. Each backend (llama.cpp, whisper.cpp, stable-diffusion.cpp, FastFlowLM and others) is downloaded separately under its own licence licence stands in",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "Privacy policy",
            "value": "nothing hosted, not scored",
            "points": 0,
            "max": 0,
            "state": "na"
          },
          {
            "check": "Status page",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          },
          {
            "check": "Changelog",
            "value": "published",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "security.txt",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          }
        ]
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/lemonade.json"
    },
    "verify": {
      "accepts": "a page on lemonade-server.ai or one of its subdomains, or the README of github.com/lemonade-sdk/lemonade",
      "badgeUrl": "https://www.anchorterminal.com/badges/lemonade.svg",
      "body": {
        "slug": "lemonade",
        "url": "the page with the badge or the link"
      },
      "docs": "https://www.anchorterminal.com/builders/#verify",
      "effect": "none, it never changes a grade, rank or review",
      "endpoint": "https://www.anchorterminal.com/api/v1/verify",
      "listingUrl": "https://www.anchorterminal.com/tools/lemonade",
      "mcpTool": "verify_listing",
      "recheck": "weekly; two failed checks in a row and it lapses, a later pass restores it",
      "snippets": {
        "html": "\u003ca href=\"https://www.anchorterminal.com/tools/lemonade\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/lemonade.svg\" alt=\"Lemonade on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e",
        "markdown": "[![Lemonade on Anchor Terminal](https://www.anchorterminal.com/badges/lemonade.svg)](https://www.anchorterminal.com/tools/lemonade)",
        "link": "\u003ca href=\"https://www.anchorterminal.com/tools/lemonade\"\u003eLemonade on Anchor Terminal\u003c/a\u003e"
      }
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/lemonade",
    "json": "https://www.anchorterminal.com/tools/lemonade.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/lemonade.md",
    "slim": "https://www.anchorterminal.com/tools/lemonade.min.md"
  },
  "markdown": "## Overview\n\n**Grade B · 63.8/100 · rank #336 of 842 · #2 in Local AI · not agent-ready · confidence medium**\n\n\n## Assessment\n\nApache 2.0, with weekly releases, installers for Windows, macOS and five Linux routes, and a six-tool MCP endpoint whose descriptions steer a caller away from accidental multi-gigabyte downloads. Authentication is off by default, the repository has no security policy, and the docs tell WebSocket clients to pass the key in the URL.\n\n## Facts\n\n| Field | Value |\n| --- | --- |\n| Vendor | AMD and the Lemonade community (https://lemonade-server.ai) |\n| Kind | HTTP API |\n| Category | Local AI (https://www.anchorterminal.com/categories/local-ai) |\n| Transport | HTTP |\n| Auth | API key · Off by default. With no key set, every endpoint answers without authentication, on a default bind of localhost. `LEMONADE_API_KEY` sets one bearer key for the regular API (`/api/*`, `/v0/*`, `/v1/*`, `/mcp` and `/metrics`). `LEMONADE_ADMIN_API_KEY` sets a second key for the internal control endpoints (`/internal/*`), and without it the regular key reaches those too. Both are environment variables, so there are no per-user keys. The docs tell WebSocket clients to pass `?api_key=KEY` in the URL. |\n| Pricing | Free (Free · OSS) · Free and Apache 2.0 with nothing to buy and no account. You run it on your own hardware. Cloud Offload, which is optional and experimental, bills through the owner's own keys at whichever cloud provider they add. |\n| x402 | No · No x402, MPP or L402 in the docs or the source (checked 2026-10-08). |\n| Licence | Apache 2.0. Each backend (llama.cpp, whisper.cpp, stable-diffusion.cpp, FastFlowLM and others) is downloaded separately under its own licence |\n| Tools exposed | 6 |\n| Packages | oci: `ghcr.io/lemonade-sdk/lemonade-server` |\n| Source | https://github.com/lemonade-sdk/lemonade |\n| Docs | https://lemonade-server.ai/docs/ |\n| llms.txt | not found |\n| Last release | 2026-10-07 |\n| GitHub stars | 5,800 (as of 2026-10-08) |\n| Interfaces | OpenAI-compatible REST under `/v1` and `/api/v1` (chat, completions, embeddings, responses, audio, images, realtime WebSocket), Anthropic Messages at `POST /v1/messages`, Ollama routes under `/api`, llama.cpp routes, Lemonade's own management API, an MCP endpoint at `POST /mcp`, a CLI (`lemonade`), a web UI and a tray app |\n| MCP tools | 6 over Streamable HTTP (`lemonade_list_models`, `lemonade_chat`, `lemonade_transcribe_audio`, `lemonade_generate_image`, `lemonade_omni`, `lemonade_docs`). No annotations, no streaming, no embeddings or text-to-speech tool |\n| Hardware | llama.cpp on CPU, Vulkan, ROCm, CUDA (Turing or newer) and Apple Metal. AMD XDNA2 NPUs through FastFlowLM (Windows, Linux) and Ryzen AI (Windows). vLLM on Strix Halo is marked experimental |\n| Models | GGUF, FLM and ONNX language models, whisper.cpp and Moonshine speech-to-text, Kokoro text-to-speech, stable-diffusion.cpp images, pulled from Hugging Face or ModelScope |\n| Install | Windows MSI and winget (`AMD.LemonadeServer`), macOS pkg, Ubuntu PPA and Snap, Debian deb, Fedora rpm, an Arch package, and a container at `ghcr.io/lemonade-sdk/lemonade-server` |\n| Auth | Off by default. `LEMONADE_API_KEY` gates the regular API and `LEMONADE_ADMIN_API_KEY` gates `/internal/*`, both as bearer tokens set by environment variable |\n| Rate limits | None documented. `max_loaded_models` (default 1 per model type) evicts the least recently used model |\n| Network by default | Model and backend downloads from Hugging Face, ModelScope and GitHub, a start-up update check of downloaded models, and UDP broadcast for discovery. `offline: true` and `no_fetch_executables: true` block downloads |\n| Telemetry | Off by default. When enabled, OTLP traces go to the operator's own collector, with `hide_inputs`, `hide_outputs` and `hide_thinking` to redact text |\n| Releases in 90 days | At least 6 stable (v11.7.0 on 19 August to v2026.41.1 on 7 October 2026), plus weekly candidates |\n| Capabilities | inference.local, inference.open-weights, embed.text, rerank, speech.stt, speech.tts, image.generate |\n| Tags | open-source, local, self-hosted, free, no-card, openai-compatible, mcp, streaming, open-weights, amd, npu, docker |\n| JSON | https://www.anchorterminal.com/api/v1/tools/lemonade.json |\n\n## Score breakdown (methodology v0.4, October 2026 research run)\n\nAssessed 2026-10-08 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. \"This run\" is each category's share of the 100 points.\n\n| Category | Weight | This run | Score (0–100) | Points |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% | 20 | 75 | 15.0 |\n| Performance | 10% | pending | pending | n/a |\n| Schema \u0026 documentation | 13% | 16.2 | 70 | 11.4 |\n| Agent ergonomics | 13% | 16.2 | 70 | 11.4 |\n| Security \u0026 auth | 14% | 17.5 | 36 | 6.3 |\n| Payments \u0026 pricing | 10% | 12.5 | 60 | 7.5 |\n| Task success | 10% | pending | pending | n/a |\n| Maintenance \u0026 community | 7% | 8.8 | 76 | 6.7 |\n| Transparency \u0026 trust (editorial 70, provenance 57) | 7% | 8.8 | 64 | 5.6 |\n| Negative events | up to −15 | up to −15 | none recorded | 0 |\n| **Total** | | | | **63.8 → B** |\n\n### Why each score\n\n- Reliability 75: Read with the local-software lines, since Lemonade runs on the owner's hardware with no hosted service behind it. Official installers for each platform (Windows MSI and winget, macOS pkg, Ubuntu PPA and Snap, Debian deb, Fedora rpm, an Arch package and a container on ghcr.io), with supported systems and a backend-by-device table in the README (20). A public CI builds and tests every platform with C++ unit tests and Python server tests, and an MCP smoke test runs beside it. On 8 October 2026 the main build, test and release workflow's badge read failing on main, while the MCP smoke test and docs workflows read passing (15 of 25). 411 issues and 158 pull requests were open. New reports are labelled within a day or two, and open bugs from the past week include a server that stops responding after a client disconnects mid-request (#3769) and HTTP 500s from llama.cpp output parsing (#3770) (15 of 25). Versions are year.week.number since September, so the number carries no compatibility signal, but every release's notes have a Breaking Changes section, and most weekly releases list one or more (10 of 15). A stable channel separate from weekly candidates, and v11.9.0 before the scheme changed (15).\n- Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes.\n- Schema \u0026 documentation 70: We found no OpenAPI or Swagger file in the repository. The six MCP tools carry JSON Schema inputs from `tools/list`, though `messages` and `tools` are arrays of untyped objects and `stop` and `tool_choice` have empty schemas (12 of 25). No llms.txt at lemonade-server.ai (404). Every running server returns its own Markdown API reference at `GET /v1/docs` and through the `lemonade_docs` tool, so the reference matches the installed version and works offline (8 of 10). MCP tool descriptions say what to call first, which argument to prefer and what a wrong model name costs, and the API reference marks each OpenAI parameter as available or not (17 of 20). One enum (`response_format` on transcription), a minimum on `n` and required fields are declared, and the rest is typed loosely (8 of 15). Request examples in PowerShell and bash throughout, error tables on some endpoints and a JSON-RPC error table for MCP, but no single error reference (12 of 15). Notes with Headline and Breaking Changes sections on every release and versioned route prefixes, with no CHANGELOG file (13 of 15).\n- Agent ergonomics 70: Read with the MCP lines for `/mcp` and the API lines for the OpenAI-compatible routes. Six tools, with long descriptions (22 of 25). `max_tokens` caps output, `output_dir` returns file paths in place of inline base64, and `lemonade_list_models` has two include flags. We found no pagination on list routes (12 of 20). OpenAI-style error objects with a type and message, tool failures returned as `isError: true` with text a model can act on, and 501 on unsupported Ollama routes. No Retry-After or overload guidance found (15 of 20). No `readOnlyHint` or `destructiveHint` in the tool definitions and no idempotency keys. `allow_download` defaults to false, so a call can't start a download unless asked, and inference calls are safe to repeat (9 of 20). `model` is optional on the MCP tools, `lemonade launch claude` configures Claude Code in one command, and existing OpenAI, Anthropic and Ollama clients work unchanged, with no Lemonade client SDK (12 of 15).\n- Security \u0026 auth 36: Read with the tool checklist. Authentication is off until the operator sets `LEMONADE_API_KEY`, and with no key every route answers, including `/internal/*` shutdown and configuration. Two bearer keys set by environment variable separate regular from admin access, with no per-user keys and no rotation short of a restart, so 15 of 30, less 10 because the docs tell WebSocket clients to send the key as `?api_key=KEY` (5). The admin key fences off `/internal/*`, the default bind is localhost, cross-origin browser requests need an allow-list, MCP file writes are confined to a sandbox directory with traversal and symlink escapes rejected, and downloads need `allow_download`. The regular key still reaches model pull, delete and backend install, and there's no read-only mode (10 of 20). The tools return output from the owner's local models and no fetched web content. No prompt-injection guidance found in the docs (8 of 15). Optional OTLP traces for every inference request with session and client identifiers, Prometheus metrics at `/metrics` and a log stream WebSocket (11 of 15). GitHub reports no `SECURITY.md` and no advisories, lemonade-server.ai has no security.txt, NVD returned no entries for lemonade-sdk, and we found no disclosure address or bounty. Dependabot covers dev containers only (2 of 20).\n- Payments \u0026 pricing 60: Read with the self-hosted rule. No x402, MPP or L402, and nothing is sold (0). Apache 2.0 with no account and no card, so 20, 20 and 20 on the last three lines. Cloud Offload uses the owner's own provider keys.\n- Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored.\n- Maintenance \u0026 community 76: Stable release v2026.41.1 on 7 October 2026 (30). At least six stable releases in the 90 days to 8 October, from v11.7.0 on 19 August to v2026.41.1, with a candidate every week (20). New issues are labelled by area and engine within a day or two, 411 issues and 158 pull requests are open, and a Discord server is linked from the README. Comment threads weren't read (15 of 25). The official MCP registry returned no entry for Lemonade and there's no Lemonade client SDK, though OpenAI, Anthropic and Ollama SDKs work against it (5 of 15). A large CI matrix with self-hosted GPU and NPU runners, but the main workflow's badge read failing on 8 October and Dependabot is set up for dev containers only (6 of 10).\n- Transparency \u0026 trust 64: Apache 2.0, with backends downloaded separately under their own licences (30). We found no privacy policy for the software or the website. The README says the server is free and private, and the configuration guide documents the calls a default install makes (model and backend downloads, a start-up update check against Hugging Face, UDP broadcast for discovery) with switches for each. Nothing says what the project's own download hosts log (14 of 30). Release notes carry a Breaking Changes section and the release process is written down, but the one deprecation we found (`LEMONADE_ALLOWED_ORIGINS`) says only a future release, with no date (8 of 20). Telemetry is off by default, goes only to an OTLP endpoint the operator sets, and has documented switches to redact prompts, outputs and reasoning. A search of the source found no analytics library (18 of 20).\n\nFix list for a coding agent, everything this grade says the listing lacks, the biggest gain first (18 items): https://www.anchorterminal.com/fixes/lemonade.md (JSON https://www.anchorterminal.com/fixes/lemonade.json)\n\n### What we couldn't check\n\n- unchecked: who answers issues and how fast. Issue comment threads weren't read, and the GitHub API refused us for its rate limit\n- unchecked: which job failed in the main build, test and release workflow on 8 October 2026. The runs list didn't render for our reader, so the failing state comes from the workflow badge alone\n- unchecked: the first release date and the exact star count (the repository page showed 5.8k)\n- unchecked: the licences of the separately downloaded backends, FastFlowLM and Ryzen AI among them\n- unchecked: whether private vulnerability reporting is switched on for the repository\n- unchecked: whether a `resources/list` or annotations field appears in a live `tools/list` response. We read the source and the generated docs and ran no server\n- No terms of service or privacy policy was found for the software or the website, so `provenance.terms` and `provenance.privacy` are empty\n- The legal entity is taken from the website footer (AMD) and `contrib/debian/copyright` (Advanced Micro Devices, Inc.). The `LICENSE` file has no copyright line\n\n### Sources\n\n- repository and README: \u003chttps://github.com/lemonade-sdk/lemonade\u003e (seen 2026-10-08)\n- releases: \u003chttps://github.com/lemonade-sdk/lemonade/releases\u003e (seen 2026-10-08)\n- release v2026.41.1: \u003chttps://github.com/lemonade-sdk/lemonade/releases/tag/v2026.41.1\u003e (seen 2026-10-08)\n- open issues: \u003chttps://github.com/lemonade-sdk/lemonade/issues\u003e (seen 2026-10-08)\n- security tab (no policy, no advisories): \u003chttps://github.com/lemonade-sdk/lemonade/security\u003e (seen 2026-10-08)\n- main build, test and release workflow badge: \u003chttps://github.com/lemonade-sdk/lemonade/actions/workflows/cpp_server_build_test_release.yml/badge.svg?branch=main\u003e (seen 2026-10-08)\n- MCP smoke test workflow badge: \u003chttps://github.com/lemonade-sdk/lemonade/actions/workflows/mcp-smoke-test.yml/badge.svg?branch=main\u003e (seen 2026-10-08)\n- MCP gateway docs: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/api/mcp.md\u003e (seen 2026-10-08)\n- MCP tool definitions (source): \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/src/cpp/server/mcp_server.cpp\u003e (seen 2026-10-08)\n- OpenAI-compatible API reference: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/api/openai.md\u003e (seen 2026-10-08)\n- Lemonade API reference: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/api/lemonade.md\u003e (seen 2026-10-08)\n- Anthropic-compatible API: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/api/anthropic.md\u003e (seen 2026-10-08)\n- Ollama-compatible API: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/api/ollama.md\u003e (seen 2026-10-08)\n- server configuration, keys, origins and network settings: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/configuration/README.md\u003e (seen 2026-10-08)\n- telemetry guide: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/telemetry.md\u003e (seen 2026-10-08)\n- release process and versioning: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/dev/release.md\u003e (seen 2026-10-08)\n- Docker install guide: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/install/docker.md\u003e (seen 2026-10-08)\n- Claude Code integration: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/integrations/claude-code.md\u003e (seen 2026-10-08)\n- Debian copyright file: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/contrib/debian/copyright\u003e (seen 2026-10-08)\n- Dependabot configuration: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/.github/dependabot.yml\u003e (seen 2026-10-08)\n- vendor home page and footer: \u003chttps://lemonade-server.ai/\u003e (seen 2026-10-08)\n- docs site: \u003chttps://lemonade-server.ai/docs/\u003e (seen 2026-10-08)\n- llms.txt (404): \u003chttps://lemonade-server.ai/llms.txt\u003e (seen 2026-10-08)\n- security.txt (404): \u003chttps://lemonade-server.ai/.well-known/security.txt\u003e (seen 2026-10-08)\n- official MCP registry search (no results): \u003chttps://registry.modelcontextprotocol.io/v0/servers?search=lemonade\u003e (seen 2026-10-08)\n- RDAP record for lemonade-server.ai: \u003chttps://rdap.org/domain/lemonade-server.ai\u003e (seen 2026-10-08)\n- NVD keyword search (no results): \u003chttps://services.nvd.nist.gov/rest/json/cves/2.0?keywordSearch=lemonade-sdk\u003e (seen 2026-10-08)\n\n## Who's behind it (provenance 57/100, checked 2026-10-08)\n\n| Check | Finding | Points |\n| --- | --- | --- |\n| Legal entity named | Advanced Micro Devices, Inc. | 20/20 |\n| Domain age | lemonade-server.ai, registered 2025-05-12 (1 year) | 3/15 |\n| Endpoint on the vendor's domain | no hosted endpoint | n/a |\n| Terms of service | nothing hosted, so the Apache 2.0. Each backend (llama.cpp, whisper.cpp, stable-diffusion.cpp, FastFlowLM and others) is downloaded separately under its own licence licence stands in | 10/10 |\n| Privacy policy | nothing hosted, not scored | n/a |\n| Status page | not found | 0/10 |\n| Changelog | published | 10/10 |\n| security.txt | not found | 0/10 |\n\nThe website footer reads \"© 2026 AMD. Licensed under Apache 2.0\", and `contrib/debian/copyright` in the repository names Advanced Micro Devices, Inc. The code lives in the lemonade-sdk organisation on GitHub, and the README calls it a community project with optimisations by AMD engineers.\n\nWe found no terms of service and no privacy policy for the software or the website. The home page and its footer link to neither, so both fields are empty.\n\nlemonade-server.ai/.well-known/security.txt, /security.txt and /llms.txt return 404.\n\nRDAP gives a registration date of 2025-05-12 for lemonade-server.ai, with Porkbun LLC as registrar and the registrant behind a privacy service.\n\nThere's no hosted endpoint. Each instance answers on the owner's own machine, by default localhost port 13305.\n\n### Terms and privacy, as read\n\nA reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice.\n\n**Terms of service**. Nothing is hosted by the vendor, so there are no terms of service to read. The Apache 2.0. Each backend (llama.cpp, whisper.cpp, stable-diffusion.cpp, FastFlowLM and others) is downloaded separately under its own licence licence stands in and the check scores in full.\n\n\n**Privacy policy**. Nothing is hosted by the vendor, so there is no privacy policy to read and the check isn't scored.\n\n\n## Probe metrics\n\nNot measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score.\n\n## Strengths\n\n- Apache 2.0, with OpenAI, Anthropic Messages, Ollama and llama.cpp-compatible routes on one port (13305)\n- `POST /mcp` exposes six tools over Streamable HTTP, and omitting `model` reuses a loaded or downloaded model before any download\n- Every running server returns its own Markdown API reference at `GET /v1/docs` and through the `lemonade_docs` tool, so it matches the installed version\n- Stable release v2026.41.1 on 7 October 2026 on a weekly cadence, each with a Breaking Changes section in its notes\n- Telemetry is off by default and exports OTLP traces only to an endpoint the operator sets, with switches to redact prompts and outputs\n\n## Weaknesses\n\n- No authentication by default. With no key set, every route answers, including `/internal/*` shutdown and configuration\n- GitHub reports no `SECURITY.md`, and we found no security.txt, advisory or disclosure address\n- The docs tell WebSocket clients to send the key as `?api_key=KEY` in the URL\n- No OpenAPI file in the repository, and no `readOnlyHint` or `destructiveHint` on the MCP tools\n- The main build and test workflow's badge read failing on main on 8 October 2026, with 411 issues open\n\n## Before you call it (notes for agents)\n\n1. Call `lemonade_list_models` (or `GET /v1/models`) before naming a model. A wrong name with `allow_download: true` can start a multi-gigabyte download\n2. Send `Authorization: Bearer \u003ckey\u003e` when the operator has set `LEMONADE_API_KEY`. `/internal/*` needs the admin key when one is set\n3. Use `POST /v1/chat/completions` for streamed tokens, embeddings and speech. The MCP endpoint ignores `stream` and has no embeddings or text-to-speech tool\n4. Pass `output_dir` to `lemonade_generate_image` and `lemonade_omni` to get file paths in place of inline base64. Writes stay inside the MCP media sandbox\n5. Read `GET /v1/docs` on the running server for the reference that matches its version. Weekly releases change behaviour\n\n## Connect\n\nInstall:\n\n```bash\nwinget install --id AMD.LemonadeServer -e\n```\n\nFirst request:\n\n```bash\ncurl http://localhost:13305/api/v1/chat/completions -H \"Content-Type: application/json\" -d '{\"model\": \"your-model-name\", \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}]}'\n```\n\nClaude Code:\n\n```bash\nlemonade launch claude\n```\n\nThrough letme (picks today, calling later): https://letme.dev/lemonade. letme answers with the pick and how to call it direct; calling through letme (one key, the vendor's own price) comes later. How it works: https://www.anchorterminal.com/letme/index.md\n\n## Similar tools\n\nRanked by shared capabilities, then score. Same-category tools with no shared capability key are listed last.\n\n| Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown |\n| --- | --- | --- | --- | --- | --- | --- |\n| LocalAI | B | 68 | 216 | inference.local, inference.open-weights, embed.text, rerank, speech.stt, speech.tts, image.generate | no | https://www.anchorterminal.com/tools/localai.md |\n| DeepInfra | B | 63 | 371 | inference.open-weights, embed.text, rerank, image.generate, speech.stt, speech.tts | no | https://www.anchorterminal.com/tools/deepinfra.md |\n| KoboldCpp | C | 60.5 | 462 | inference.local, inference.open-weights, embed.text, image.generate, speech.stt, speech.tts | no | https://www.anchorterminal.com/tools/koboldcpp.md |\n| Docker Model Runner | C | 57.1 | 559 | inference.local, inference.open-weights, embed.text, rerank, image.generate | no | https://www.anchorterminal.com/tools/docker-model-runner.md |\n| Foundry Local | C | 60.5 | 461 | inference.local, inference.open-weights, embed.text, speech.stt | no | https://www.anchorterminal.com/tools/foundry-local.md |\n| llama.cpp | C | 60.2 | 476 | inference.local, inference.open-weights, embed.text, rerank | no | https://www.anchorterminal.com/tools/llama-cpp.md |\n\n## Panel reviews (0)\n\nReviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): .\n\nDesk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md\n\n## Notable\n\n- The MCP gateway is one endpoint, `POST /mcp`, on MCP spec version 2025-06-18 with the tools capability only. `GET /mcp` returns 405, no session id is issued, and resources and prompts aren't implemented (source: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/api/mcp.md\u003e)\n- With neither `LEMONADE_API_KEY` nor `LEMONADE_ADMIN_API_KEY` set, regular and internal endpoints need no authentication. The default bind is localhost (source: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/configuration/README.md\u003e)\n- The docs tell WebSocket clients of `/realtime` and `/logs/stream` to pass `?api_key=KEY` as a query parameter when a key is set (source: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/api/openai.md\u003e)\n- GitHub's security tab says the project has not set up a `SECURITY.md` file and lists no advisories (source: \u003chttps://github.com/lemonade-sdk/lemonade/security\u003e)\n- Versions moved from X.Y.Z (v11.9.0 on 1 September 2026) to year.week.number (v2026.39.1 on 23 September 2026), with a release candidate cut every Wednesday (source: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/dev/release.md\u003e)\n- UDP broadcast for server discovery and a start-up check of downloaded models against Hugging Face are both on by default. `broadcast`, `auto_check_model_updates` and `offline` switch them (source: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/configuration/README.md\u003e)\n- Cloud Offload, marked experimental, routes requests to any OpenAI-compatible cloud provider with the owner's own keys (source: \u003chttps://github.com/lemonade-sdk/lemonade/blob/main/docs/guide/configuration/cloud.md\u003e)\n\n## Compare\n\n- [AnythingLLM vs Lemonade](https://www.anchorterminal.com/compare/anythingllm-vs-lemonade.md): D 53.3 vs B 63.8\n- [Docker Model Runner vs Lemonade](https://www.anchorterminal.com/compare/docker-model-runner-vs-lemonade.md): C 57.1 vs B 63.8\n- [Foundry Local vs Lemonade](https://www.anchorterminal.com/compare/foundry-local-vs-lemonade.md): C 60.5 vs B 63.8\n- [Core vs Lemonade](https://www.anchorterminal.com/compare/ghost-core-vs-lemonade.md): F 7.3 vs B 63.8\n- [GPT4All vs Lemonade](https://www.anchorterminal.com/compare/gpt4all-vs-lemonade.md): F 36.2 vs B 63.8\n- [Jan vs Lemonade](https://www.anchorterminal.com/compare/jan-vs-lemonade.md): D 51.3 vs B 63.8\n- [Khoj vs Lemonade](https://www.anchorterminal.com/compare/khoj-vs-lemonade.md): E 38.5 vs B 63.8\n- [KoboldCpp vs Lemonade](https://www.anchorterminal.com/compare/koboldcpp-vs-lemonade.md): C 60.5 vs B 63.8\n- [Lemonade vs llama.cpp](https://www.anchorterminal.com/compare/lemonade-vs-llama-cpp.md): B 63.8 vs C 60.2\n- [Lemonade vs LM Studio](https://www.anchorterminal.com/compare/lemonade-vs-lm-studio.md): B 63.8 vs C 57.8\n- [Lemonade vs LocalAI](https://www.anchorterminal.com/compare/lemonade-vs-localai.md): B 63.8 vs B 68\n- [Lemonade vs MLX LM](https://www.anchorterminal.com/compare/lemonade-vs-mlx-lm.md): B 63.8 vs D 52.2\n- [Lemonade vs Ollama](https://www.anchorterminal.com/compare/lemonade-vs-ollama.md): B 63.8 vs C 56.3\n- [Lemonade vs Open WebUI](https://www.anchorterminal.com/compare/lemonade-vs-open-webui.md): B 63.8 vs D 51.8\n- [Lemonade vs screenpipe](https://www.anchorterminal.com/compare/lemonade-vs-screenpipe.md): B 63.8 vs C 60.8\n- [Lemonade vs TextGen](https://www.anchorterminal.com/compare/lemonade-vs-text-generation-webui.md): B 63.8 vs E 45.1\n- [Lemonade vs Underdog](https://www.anchorterminal.com/compare/lemonade-vs-underdog.md): B 63.8 vs F 29.5\n\n## Verify this listing\n\nFor the vendor. The badge or a plain link to this page verifies the listing, from a page on lemonade-server.ai or one of its subdomains, or the README of github.com/lemonade-sdk/lemonade. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{\"slug\": \"lemonade\", \"url\": \"…\"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify\n\nHTML badge:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/lemonade\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/lemonade.svg\" alt=\"Lemonade on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e\n```\n\nMarkdown badge, for a README:\n\n```markdown\n[![Lemonade on Anchor Terminal](https://www.anchorterminal.com/badges/lemonade.svg)](https://www.anchorterminal.com/tools/lemonade)\n```\n\nPlain link:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/lemonade\"\u003eLemonade on Anchor Terminal\u003c/a\u003e\n```\n\n## Share this listing\n\nFor the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say Lemonade is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score.\n\n- Dark: https://www.anchorterminal.com/assets/share/lemonade-dark.png\n- Light: https://www.anchorterminal.com/assets/share/lemonade-light.png\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Local AI",
        "url": "https://www.anchorterminal.com/categories/local-ai"
      },
      {
        "name": "Lemonade",
        "url": ""
      }
    ],
    "description": "Open-source local AI server from AMD and community contributors. It runs text, speech and image models on the owner's CPU, GPU or NPU behind OpenAI-, Anthropic- and Ollama-compatible APIs and an MCP endpoint on port 13305.",
    "facts": [
      "rank #336 of 842",
      "API key auth",
      "0 desk reviews"
    ],
    "h1": "Lemonade",
    "image": "https://www.anchorterminal.com/assets/og/tools-lemonade.png",
    "path": "/tools/lemonade",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Lemonade review for AI agents, grade B (63.8/100) | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/tools/lemonade"
  },
  "tokens": {
    "markdown": 7300,
    "slim": 1730
  },
  "version": 1
}
