{
  "data": {
    "a": {
      "slug": "koboldcpp",
      "name": "KoboldCpp",
      "vendor": "LostRuins (Concedo)",
      "vendorUrl": "https://koboldcpp.net",
      "kind": "http-api",
      "category": "local-ai",
      "summary": "Open-source program for running GGUF models on the owner's own computer, built on llama.cpp. One executable serves a web interface and KoboldAI, OpenAI, Ollama and Anthropic compatible APIs on port 5001.",
      "url": "https://www.anchorterminal.com/tools/koboldcpp",
      "markdownUrl": "https://www.anchorterminal.com/tools/koboldcpp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/koboldcpp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/koboldcpp.json",
      "repo": "https://github.com/LostRuins/koboldcpp",
      "license": "AGPL-3.0 for KoboldCpp and KoboldAI Lite. The bundled GGML, llama.cpp and stable-diffusion.cpp code stays under MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "oci",
          "name": "koboldai/koboldcpp"
        }
      ],
      "auth": "none",
      "authNotes": "No credential by default. `--password` (or the `KCPP_PASSWORD` environment variable) sets one shared key, sent as `Authorization: Bearer`, and the server reads it from the header only. The key guards text routes. Image generation, upscaling, `/sdapi/v1/interrogate` and `/tts_to_audio` skip the check, and the `--help` text says image endpoints are not secured. Admin routes need `--admin`, an `--admindir` and, when set, a separate `--adminpassword`. Keys have no scopes and change only with a restart. With no `--host` the server listens on all routable interfaces, and CORS reflects any Origin with credentials allowed (https://github.com/LostRuins/koboldcpp/blob/concedo/koboldcpp.py).",
      "pricing": "free",
      "pricingNotes": "Free under AGPL-3.0, with no account, key or card. Nothing is sold by the project. The owner pays for hardware and electricity, and the README links third-party GPU rental (RunPod, SimplePod) and Google Colab as other places to run it.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the wiki, the API document or `koboldcpp.py` (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 11972,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://github.com/LostRuins/koboldcpp/wiki",
      "llmsTxt": "https://koboldcpp.net/llms.txt",
      "openapi": "https://lite.koboldai.net/koboldcpp_api.json",
      "capabilities": [
        "inference.local",
        "inference.open-weights",
        "agent.mcp-client",
        "embed.text",
        "image.generate",
        "speech.stt",
        "speech.tts",
        "audio.music"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "free",
        "no-card",
        "openai-compatible",
        "openapi",
        "llms-txt",
        "docker",
        "agpl",
        "no-telemetry"
      ],
      "lastRelease": "2026-09-27",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.5,
        "grade": "C",
        "agentReady": false,
        "rank": 462,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 82,
          "payments": 60,
          "reliability": 68,
          "schema": 68,
          "security": 38,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "One file runs text, image, speech and music models behind a published OpenAPI 3.0.3 document, with eight releases in 90 days. The server listens on every interface with no password by default, and `--password` leaves the image routes open.",
        "bestFor": "An owner who wants text, image, speech and music models behind one executable with a writing and roleplay interface, and clients that speak the KoboldAI, OpenAI, Ollama or Anthropic formats.",
        "strengths": [
          "OpenAPI 3.0.3 document with 54 operations, served by the program at `/api?json=1` and published at lite.koboldai.net",
          "KoboldAI, OpenAI, Ollama, Anthropic, AUTOMATIC1111 and ComfyUI style routes from one server on port 5001",
          "Eight releases between 10 July and 27 September 2026, each with written notes, and replies on all 24 of the newest open issues",
          "AGPL-3.0, with no telemetry or update check found in `koboldcpp.py` and a wiki statement that inputs are sent nowhere",
          "Admin functions are off by default and take their own `--adminpassword`"
        ],
        "weaknesses": [
          "With no `--host` the server accepts connections on all routable interfaces, and no password is set by default",
          "`--password` covers text routes only. The `--help` text says image endpoints are not secured",
          "CORS reflects any Origin with credentials allowed and permits private-network requests",
          "No `SECURITY.md` or security.txt, and the one advisory (GHSA-qhvp-gj7g-rw26) still lists no patched version",
          "No continuous test run on pushes. Build workflows are started by hand and the only automatic test covers `AutoGuess.json`"
        ],
        "agentNotes": [
          "Start with `--host 127.0.0.1` and `--password`. The default listens on every interface with no key",
          "Send the password as `Authorization: Bearer \u003cpassword\u003e`. It is not read from the query string",
          "Treat 503 as both busy and rate limited. The server never sends 429 or `Retry-After`, and the wait in seconds is in `detail.msg`",
          "Pass `max_length` or `max_tokens`. The default is 2,048 tokens unless `--defaultgenamt` changes it",
          "Send a `genkey` with each generation so `/api/extra/generate/check` and `/api/extra/abort` act on your request and not another caller's"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.5
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 82,
          "payments": 60,
          "reliability": 68,
          "schema": 68,
          "security": 38,
          "transparency": 70
        },
        "provenanceScore": 27
      },
      "connect": {
        "install": "curl -fLo koboldcpp-linux-x64 https://github.com/LostRuins/koboldcpp/releases/latest/download/koboldcpp-linux-x64 \u0026\u0026 chmod +x koboldcpp-linux-x64 \u0026\u0026 ./koboldcpp-linux-x64\n./koboldcpp-linux-x64 --model /path/to/model.gguf   # listens on port 5001",
        "http": "curl --request POST \\\n    --url http://localhost:5001/api/v1/generate \\\n    --header \"Content-Type: application/json\" \\\n    --data '{\"prompt\": \"Niko the kobold stalked carefully down the alley,\", \"max_context_length\": 2048, \"max_length\": 100}'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/koboldcpp"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "",
        "domain": "koboldcpp.net",
        "domainRegistered": "2026-03-18",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/LostRuins/koboldcpp/releases",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "No legal entity is named in the repository, the wiki or koboldcpp.net. The maintainer publishes as LostRuins on GitHub and Concedo on Discord, and the Windows binary's version resource gives KoboldAI as the company name.",
          "The project publishes no terms of service and no privacy policy, so both fields are empty. The licence is AGPL-3.0 and the only privacy statement is an FAQ entry in the wiki.",
          "The README calls koboldcpp.net the official community website. RDAP gives its registration date as 2026-03-18 and Cloudflare, Inc. as registrar. The README warns that koboldcpp.com is a fake site.",
          "koboldcpp.net/.well-known/security.txt and koboldai.org/.well-known/security.txt return 404. koboldcpp.net/llms.txt returns a short index that links llms-small.txt and llms-full.txt.",
          "There's no shared hosted endpoint. The server runs on the owner's machine. The online API reference is on lite.koboldai.net."
        ],
        "score": 27
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/koboldcpp.json"
    },
    "answer": "KoboldCpp scores 60.5 (C) on agent readiness against Underdog's 29.5 (F), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "underdog",
      "name": "Underdog",
      "vendor": "Conway Research",
      "vendorUrl": "https://underdog.ai",
      "kind": "platform",
      "category": "local-ai",
      "summary": "A personal AI from Conway Research that runs on the owner's Mac with Apple silicon.",
      "url": "https://www.anchorterminal.com/tools/underdog",
      "markdownUrl": "https://www.anchorterminal.com/tools/underdog.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/underdog.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/underdog.json",
      "license": "Model weights Apache-2.0 on Hugging Face (Underdog 27B 1.0 and its ternary build, Woof 4B and 2B 1.1, Bark 0.8B 1.0); woof-1.0-4B carries the Apache-2.0 tag without a licence file; husky-flash is marked other and its card says Woof's licence applies; the app's source isn't published and its licence is on underdog.ai, unchecked",
      "transports": [],
      "packages": [],
      "auth": "none",
      "authNotes": "No API, MCP server, CLI or credential for agents from Conway found as of 3 October 2026. The husky-flash card names `husky serve --model ConwayResearch/husky-flash` from an \"Underdog Greyhound repository\" that isn't public, with no port or protocol documented. Conway's 27B cards run the weights through Inco AI's Splash, which listens on `127.0.0.1:8000` with an OpenAI-compatible API and no authentication unless `--api-key` is set. The weights download from Hugging Face without a gate, though the 27B card says to run `hf auth login` first. underdog.ai, whose robots.txt refuses our reader, is unchecked.",
      "pricing": "free",
      "pricingNotes": "Free. Underdog's pricing page says \"100% free\", \"Free forever? Yes. It's your computer doing the work\" and \"There is nothing to bill you for\", with no paid tier (text supplied on 3 October 2026, because underdog.ai refuses our reader). The model weights are free Apache-2.0 downloads on Hugging Face with no login or card. The page links a sign-in, and whether the app needs an account is unchecked.",
      "priceSummary": "Free",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No payment protocol on conway.tech, husky.underdog.ai, Conway's Hugging Face organisation or its GitHub repositories (3 October 2026); underdog.ai unchecked.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-03"
      },
      "capabilities": [
        "inference.open-weights",
        "speech.stt"
      ],
      "tags": [
        "local",
        "apple-silicon",
        "open-weights",
        "mlx"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "disclosure": "Underdog competes with LocalGhost, which Anchor Terminal's founder builds. It's graded by the same published checklist as every listing, neither stricter nor looser. Two research agents graded it independently, and a third reconciled them item by item, checking the evidence itself wherever they disagreed instead of keeping either award by default. underdog.ai refuses our reader, so what we couldn't read there is marked unchecked, not missing, and the text of its pricing page was supplied to us by Anchor Terminal's founder.",
      "competesWith": "localghost",
      "anchor": {
        "graded": true,
        "score": 29.5,
        "grade": "F",
        "agentReady": false,
        "rank": 833,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 18,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 15,
          "maintenance": 56,
          "payments": 60,
          "reliability": 33,
          "schema": 24,
          "security": 14,
          "transparency": 19
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-10-03"
        },
        "negative": 0,
        "verdict": "Apache-2.0 weights on Hugging Face for Underdog 27B 1.0, Woof 4B and 2B 1.1 and Bark 0.8B 1.0, with no gate. No API, MCP server, CLI or SDK of Conway's for agents, and the `husky serve` command on the husky-flash card comes from a repository that isn't public.",
        "bestFor": "An owner who wants a Mac assistant over their own mail and calendar that, per Conway, keeps everything on the machine.",
        "disclosure": "Underdog competes with LocalGhost, which Anchor Terminal's founder builds. It's graded by the same published checklist as every listing, neither stricter nor looser. Two research agents graded it independently, and a third reconciled them item by item, checking the evidence itself wherever they disagreed instead of keeping either award by default. underdog.ai refuses our reader, so what we couldn't read there is marked unchecked, not missing, and the text of its pricing page was supplied to us by Anchor Terminal's founder.",
        "strengths": [
          "Apache-2.0 weights on Hugging Face for Underdog 27B 1.0, Woof 4B and 2B 1.1 and Bark 0.8B 1.0, with no gate",
          "Eight Underdog model repositories published between 4 and 30 September 2026, the latest Underdog 27B 1.0 and a 2-bit ternary build on 30 September",
          "Woof 4B and 2B 1.1 ship release-provenance.json with a byte count and SHA-256 for every file",
          "Husky's speed post names its hardware, macOS and MLX versions and method, and publishes its weaker results too (1.02 to 1.27 times MLX on writing)",
          "The 27B weights run outside the app through Splash's OpenAI-compatible API, per Conway's ternary card"
        ],
        "weaknesses": [
          "No API, MCP server, CLI or SDK of Conway's for agents, and the `husky serve` command on the husky-flash card comes from a repository that isn't public",
          "The app's source isn't published, and none of Conway's three public GitHub repositories mentions Underdog",
          "The Woof 4B 1.1, Woof 2B 1.1 and Bark 0.8B 1.0 cards are one or two sentences, with no base model, context length or limits",
          "No security.txt at conway.tech (404), no SECURITY.md, and no disclosure policy, advisories or bug bounty found",
          "Conway's home page says Underdog 27B beats Claude Opus 4.6, and the 27B cards publish speed figures only"
        ],
        "agentNotes": [
          "Don't look for an agent interface to Underdog. We found no API, MCP server, CLI or SDK, and underdog.ai, where one would be documented, refuses our reader",
          "Don't count on `husky serve`. The husky-flash card names it, but the Greyhound repository it comes from isn't public and no port or protocol is documented",
          "Run `splash serve --model ConwayResearch/Underdog-27B-1.0 --default-reasoning-effort medium` with Inco AI's Splash 1.1.0 or later for an OpenAI-compatible endpoint on `127.0.0.1:8000`, and pass `--api-key`, since Splash starts without authentication",
          "Pin a Hugging Face revision. Woof 4B went from 1.0 to 1.1 in eight days with no note of what changed",
          "Check Woof 4B and 2B 1.1 files against the SHA-256 values in release-provenance.json before loading them"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "F",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 29.5
          }
        ],
        "editorialScores": {
          "ergonomics": 15,
          "maintenance": 56,
          "payments": 60,
          "reliability": 33,
          "schema": 24,
          "security": 14,
          "transparency": 23
        },
        "provenanceScore": 15
      },
      "letme": {
        "capability": "https://letme.dev/inference.open-weights",
        "tool": "https://letme.dev/underdog"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "",
        "domain": "underdog.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "https://underdog.ai/terms",
        "privacy": "https://underdog.ai/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-10-03",
        "notes": [
          "underdog.ai's robots.txt refuses our reader (again at about 08:15 UTC on 3 October 2026), so its terms, privacy policy, changelog, domain registration and security.txt are unchecked, not missing.",
          "Terms (https://underdog.ai/terms) and a privacy policy (https://underdog.ai/privacy) are linked from Underdog's pricing page, whose text was supplied to us on 3 October 2026. Their content is unchecked, because our reader is refused.",
          "husky.underdog.ai, a separate host linked from conway.tech and the founder's page, loaded for our reader.",
          "conway.tech's home page links no terms or privacy policy, and conway.tech has no security.txt (404) and no llms.txt (404).",
          "No registered company name found. a16z says Conway Research, conway.tech says Conway, and the licence in Conway's automaton repository reads 'Copyright (c) 2026 Conway'.",
          "No status page applies, since Underdog runs on the owner's machine with no hosted endpoint, and no changelog was found outside underdog.ai."
        ],
        "score": 15
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/underdog.json",
      "live": {
        "slug": "underdog",
        "securityTxt": {
          "url": "https://underdog.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-09-17T00:00:00.000Z",
          "checkedAt": "2026-10-08T15:39:00.486760673Z"
        },
        "domain": {
          "domain": "underdog.ai",
          "registered": "2020-03-30",
          "source": "https://rdap.identitydigital.services/rdap/domain/underdog.ai",
          "checkedAt": "2026-10-04T13:05:26.708018286Z"
        },
        "pages": [
          {
            "url": "https://underdog.ai/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:26.100715614Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e17b8e9e48b7"
          },
          {
            "url": "https://underdog.ai/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:28.33774643Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6c84bce579c3"
          }
        ],
        "updatedAt": "2026-10-08T18:25:28.33774643Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "Model platform",
        "name": "Kind"
      },
      {
        "a": "LostRuins (Concedo)",
        "b": "Conway Research",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "AGPL-3.0 for KoboldCpp and KoboldAI Lite. The bundled GGML, llama.cpp and stable-diffusion.cpp code stays under MIT",
        "b": "Model weights Apache-2.0 on Hugging Face (Underdog 27B 1.0 and its ternary build, Woof 4B and 2B 1.1, Bark 0.8B 1.0); woof-1.0-4B carries the Apache-2.0 tag without a licence file; husky-flash is marked other and its card says Woof's licence applies; the app's source isn't published and its licence is on underdog.ai, unchecked",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-27",
        "b": "2026-09-30",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-09-01",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-09-30",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "12k stars",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "KoboldCpp scores 60.5 (C) on agent readiness against Underdog's 29.5 (F), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, KoboldCpp or Underdog?"
      },
      {
        "answer": "No hosted endpoint is listed for KoboldCpp. No hosted endpoint is listed for Underdog.",
        "question": "Can an agent call KoboldCpp and Underdog without installing anything?"
      },
      {
        "answer": "KoboldCpp is open source (AGPL-3.0 for KoboldCpp and KoboldAI Lite. The bundled GGML, llama.cpp and stable-diffusion.cpp code stays under MIT). No open-source release is listed for Underdog.",
        "question": "Are KoboldCpp and Underdog open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 68 against 33",
          "Schema \u0026 documentation, 68 against 24",
          "Agent ergonomics, 63 against 15",
          "Security \u0026 auth, 38 against 14",
          "Maintenance \u0026 community, 82 against 56",
          "Transparency \u0026 trust, 49 against 19"
        ],
        "also": [
          "Free to start without a card",
          "Open source"
        ],
        "goodFor": "An owner who wants text, image, speech and music models behind one executable with a writing and roleplay interface, and clients that speak the KoboldAI, OpenAI, Ollama or Anthropic formats.",
        "slug": "koboldcpp",
        "watchFor": "With no `--host` the server accepts connections on all routable interfaces, and no password is set by default"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "An owner who wants a Mac assistant over their own mail and calendar that, per Conway, keeps everything on the machine.",
        "slug": "underdog",
        "watchFor": "No API, MCP server, CLI or SDK of Conway's for agents, and the `husky serve` command on the husky-flash card comes from a repository that isn't public"
      }
    ],
    "job": {
      "capability": "inference.open-weights",
      "name": "Inference open weights"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-koboldcpp.json",
        "title": "AnythingLLM vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-model-runner-vs-koboldcpp.json",
        "title": "Docker Model Runner vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/docker-model-runner-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foundry-local-vs-koboldcpp.json",
        "title": "Foundry Local vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/foundry-local-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-core-vs-koboldcpp.json",
        "title": "Core vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/ghost-core-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gpt4all-vs-koboldcpp.json",
        "title": "GPT4All vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/gpt4all-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-koboldcpp.json",
        "title": "Jan vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/jan-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-koboldcpp.json",
        "title": "Khoj vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-lemonade.json",
        "title": "KoboldCpp vs Lemonade",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-lemonade"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-llama-cpp.json",
        "title": "KoboldCpp vs llama.cpp",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-llama-cpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-lm-studio.json",
        "title": "KoboldCpp vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-localai.json",
        "title": "KoboldCpp vs LocalAI",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-localai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-mlx-lm.json",
        "title": "KoboldCpp vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-ollama.json",
        "title": "KoboldCpp vs Ollama",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-ollama"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-open-webui.json",
        "title": "KoboldCpp vs Open WebUI",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-open-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-screenpipe.json",
        "title": "KoboldCpp vs screenpipe",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-screenpipe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-text-generation-webui.json",
        "title": "KoboldCpp vs TextGen",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/screenpipe-vs-underdog.json",
        "title": "screenpipe vs Underdog",
        "url": "https://www.anchorterminal.com/compare/screenpipe-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-underdog.json",
        "title": "AnythingLLM vs Underdog",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-model-runner-vs-underdog.json",
        "title": "Docker Model Runner vs Underdog",
        "url": "https://www.anchorterminal.com/compare/docker-model-runner-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foundry-local-vs-underdog.json",
        "title": "Foundry Local vs Underdog",
        "url": "https://www.anchorterminal.com/compare/foundry-local-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-core-vs-underdog.json",
        "title": "Core vs Underdog",
        "url": "https://www.anchorterminal.com/compare/ghost-core-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gpt4all-vs-underdog.json",
        "title": "GPT4All vs Underdog",
        "url": "https://www.anchorterminal.com/compare/gpt4all-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-underdog.json",
        "title": "Jan vs Underdog",
        "url": "https://www.anchorterminal.com/compare/jan-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lemonade-vs-underdog.json",
        "title": "Lemonade vs Underdog",
        "url": "https://www.anchorterminal.com/compare/lemonade-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llama-cpp-vs-underdog.json",
        "title": "llama.cpp vs Underdog",
        "url": "https://www.anchorterminal.com/compare/llama-cpp-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lm-studio-vs-underdog.json",
        "title": "LM Studio vs Underdog",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/localai-vs-underdog.json",
        "title": "LocalAI vs Underdog",
        "url": "https://www.anchorterminal.com/compare/localai-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mlx-lm-vs-underdog.json",
        "title": "MLX LM vs Underdog",
        "url": "https://www.anchorterminal.com/compare/mlx-lm-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ollama-vs-underdog.json",
        "title": "Ollama vs Underdog",
        "url": "https://www.anchorterminal.com/compare/ollama-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/text-generation-webui-vs-underdog.json",
        "title": "TextGen vs Underdog",
        "url": "https://www.anchorterminal.com/compare/text-generation-webui-vs-underdog"
      }
    ],
    "scores": [
      {
        "by": 35,
        "edge": "koboldcpp",
        "key": "reliability",
        "koboldcpp": 68,
        "name": "Reliability",
        "underdog": 33,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 44,
        "edge": "koboldcpp",
        "key": "schema",
        "koboldcpp": 68,
        "name": "Schema \u0026 documentation",
        "underdog": 24,
        "weight": 13
      },
      {
        "by": 48,
        "edge": "koboldcpp",
        "key": "ergonomics",
        "koboldcpp": 63,
        "name": "Agent ergonomics",
        "underdog": 15,
        "weight": 13
      },
      {
        "by": 24,
        "edge": "koboldcpp",
        "key": "security",
        "koboldcpp": 38,
        "name": "Security \u0026 auth",
        "underdog": 14,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "koboldcpp": 60,
        "name": "Payments \u0026 pricing",
        "underdog": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 26,
        "edge": "koboldcpp",
        "key": "maintenance",
        "koboldcpp": 82,
        "name": "Maintenance \u0026 community",
        "underdog": 56,
        "weight": 7
      },
      {
        "by": 30,
        "edge": "koboldcpp",
        "key": "transparency",
        "koboldcpp": 49,
        "name": "Transparency \u0026 trust",
        "underdog": 19,
        "weight": 7
      }
    ],
    "summary": "KoboldCpp scores 60.5 (C) on agent readiness against Underdog's 29.5 (F), and leads in 6 of 7 scored categories. Both do inference open weights.",
    "verdicts": {
      "koboldcpp": "One file runs text, image, speech and music models behind a published OpenAPI 3.0.3 document, with eight releases in 90 days. The server listens on every interface with no password by default, and `--password` leaves the image routes open.",
      "underdog": "Apache-2.0 weights on Hugging Face for Underdog 27B 1.0, Woof 4B and 2B 1.1 and Bark 0.8B 1.0, with no gate. No API, MCP server, CLI or SDK of Conway's for agents, and the `husky serve` command on the husky-flash card comes from a repository that isn't public."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/koboldcpp-vs-underdog",
    "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-underdog.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/koboldcpp-vs-underdog.md",
    "slim": "https://www.anchorterminal.com/compare/koboldcpp-vs-underdog.min.md"
  },
  "markdown": "KoboldCpp scores 60.5 (C) on agent readiness against Underdog's 29.5 (F), and leads in 6 of 7 scored categories. Both do inference open weights.\n\n- KoboldCpp: grade C, 60.5/100, rank #462 of 842. Markdown https://www.anchorterminal.com/tools/koboldcpp.md · JSON https://www.anchorterminal.com/api/v1/tools/koboldcpp.json\n- Underdog: grade F, 29.5/100, rank #833 of 842. Markdown https://www.anchorterminal.com/tools/underdog.md · JSON https://www.anchorterminal.com/api/v1/tools/underdog.json\n\n## Which one, for what\n\n### KoboldCpp (C)\n\nGood for: An owner who wants text, image, speech and music models behind one executable with a writing and roleplay interface, and clients that speak the KoboldAI, OpenAI, Ollama or Anthropic formats.\n\nAhead on:\n- Reliability, 68 against 33\n- Schema \u0026 documentation, 68 against 24\n- Agent ergonomics, 63 against 15\n- Security \u0026 auth, 38 against 14\n- Maintenance \u0026 community, 82 against 56\n- Transparency \u0026 trust, 49 against 19\n\nAlso in its favour:\n- Free to start without a card\n- Open source\n\nWatch for: With no `--host` the server accepts connections on all routable interfaces, and no password is set by default\n\n### Underdog (F)\n\nGood for: An owner who wants a Mac assistant over their own mail and calendar that, per Conway, keeps everything on the machine.\n\nWatch for: No API, MCP server, CLI or SDK of Conway's for agents, and the `husky serve` command on the husky-flash card comes from a repository that isn't public\n\n\n## Score by category\n\n| Category | Weight | KoboldCpp | Underdog | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 33 | KoboldCpp +35 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 68 | 24 | KoboldCpp +44 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 15 | KoboldCpp +48 |\n| Security \u0026 auth | 14% (17.5 this run) | 38 | 14 | KoboldCpp +24 |\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) | 82 | 56 | KoboldCpp +26 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 49 | 19 | KoboldCpp +30 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **60.5 · C** | **29.5 · F** | |\n\n## Facts side by side\n\n| Fact | KoboldCpp | Underdog |\n| --- | --- | --- |\n| Kind | HTTP API | Model platform |\n| Vendor | LostRuins (Concedo) | Conway Research |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP |  |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | AGPL-3.0 for KoboldCpp and KoboldAI Lite. The bundled GGML, llama.cpp and stable-diffusion.cpp code stays under MIT | Model weights Apache-2.0 on Hugging Face (Underdog 27B 1.0 and its ternary build, Woof 4B and 2B 1.1, Bark 0.8B 1.0); woof-1.0-4B carries the Apache-2.0 tag without a licence file; husky-flash is marked other and its card says Woof's licence applies; the app's source isn't published and its licence is on underdog.ai, unchecked |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-09-27 | 2026-09-30 |\n| Terms last updated | no document linked | 2026-09-01 |\n| Privacy policy last updated | no document linked | 2026-09-30 |\n| Customer content may train models |  | not found in the text |\n| Terms restrict automated access |  | not found in the text |\n| Terms restrict benchmarking |  | not found in the text |\n| Terms or service can change without notice |  | not found in the text |\n| Arbitration or class-action waiver |  | not found in the text |\n| Popularity | 12k stars | none |\n| Agent reviews | none | 2/5 (2) |\n\n## Verdicts\n\n**KoboldCpp.** One file runs text, image, speech and music models behind a published OpenAPI 3.0.3 document, with eight releases in 90 days. The server listens on every interface with no password by default, and `--password` leaves the image routes open.\n\n**Underdog.** Apache-2.0 weights on Hugging Face for Underdog 27B 1.0, Woof 4B and 2B 1.1 and Bark 0.8B 1.0, with no gate. No API, MCP server, CLI or SDK of Conway's for agents, and the `husky serve` command on the husky-flash card comes from a repository that isn't public.\n\n## Before you call either\n\n### KoboldCpp\n\n1. Start with `--host 127.0.0.1` and `--password`. The default listens on every interface with no key\n2. Send the password as `Authorization: Bearer \u003cpassword\u003e`. It is not read from the query string\n3. Treat 503 as both busy and rate limited. The server never sends 429 or `Retry-After`, and the wait in seconds is in `detail.msg`\n4. Pass `max_length` or `max_tokens`. The default is 2,048 tokens unless `--defaultgenamt` changes it\n5. Send a `genkey` with each generation so `/api/extra/generate/check` and `/api/extra/abort` act on your request and not another caller's\n\n### Underdog\n\n1. Don't look for an agent interface to Underdog. We found no API, MCP server, CLI or SDK, and underdog.ai, where one would be documented, refuses our reader\n2. Don't count on `husky serve`. The husky-flash card names it, but the Greyhound repository it comes from isn't public and no port or protocol is documented\n3. Run `splash serve --model ConwayResearch/Underdog-27B-1.0 --default-reasoning-effort medium` with Inco AI's Splash 1.1.0 or later for an OpenAI-compatible endpoint on `127.0.0.1:8000`, and pass `--api-key`, since Splash starts without authentication\n4. Pin a Hugging Face revision. Woof 4B went from 1.0 to 1.1 in eight days with no note of what changed\n5. Check Woof 4B and 2B 1.1 files against the SHA-256 values in release-provenance.json before loading them\n\n## Questions\n\n### Which is better for AI agents, KoboldCpp or Underdog?\n\nKoboldCpp scores 60.5 (C) on agent readiness against Underdog's 29.5 (F), and leads in 6 of 7 scored categories.\n\n### Can an agent call KoboldCpp and Underdog without installing anything?\n\nNo hosted endpoint is listed for KoboldCpp. No hosted endpoint is listed for Underdog.\n\n### Are KoboldCpp and Underdog open source?\n\nKoboldCpp is open source (AGPL-3.0 for KoboldCpp and KoboldAI Lite. The bundled GGML, llama.cpp and stable-diffusion.cpp code stays under MIT). No open-source release is listed for Underdog.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/koboldcpp-vs-underdog.json, and with the fewest tokens: https://www.anchorterminal.com/compare/koboldcpp-vs-underdog.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"koboldcpp\", \"b\": \"underdog\"}`. From a terminal: `anchor compare koboldcpp underdog`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/koboldcpp.json and https://www.anchorterminal.com/api/v1/tools/underdog.json\n\n## Other comparisons with KoboldCpp or Underdog\n\n- [AnythingLLM vs KoboldCpp](https://www.anchorterminal.com/compare/anythingllm-vs-koboldcpp.md)\n- [Docker Model Runner vs KoboldCpp](https://www.anchorterminal.com/compare/docker-model-runner-vs-koboldcpp.md)\n- [Foundry Local vs KoboldCpp](https://www.anchorterminal.com/compare/foundry-local-vs-koboldcpp.md)\n- [Core vs KoboldCpp](https://www.anchorterminal.com/compare/ghost-core-vs-koboldcpp.md)\n- [GPT4All vs KoboldCpp](https://www.anchorterminal.com/compare/gpt4all-vs-koboldcpp.md)\n- [Jan vs KoboldCpp](https://www.anchorterminal.com/compare/jan-vs-koboldcpp.md)\n- [Khoj vs KoboldCpp](https://www.anchorterminal.com/compare/khoj-vs-koboldcpp.md)\n- [KoboldCpp vs Lemonade](https://www.anchorterminal.com/compare/koboldcpp-vs-lemonade.md)\n- [KoboldCpp vs llama.cpp](https://www.anchorterminal.com/compare/koboldcpp-vs-llama-cpp.md)\n- [KoboldCpp vs LM Studio](https://www.anchorterminal.com/compare/koboldcpp-vs-lm-studio.md)\n- [KoboldCpp vs LocalAI](https://www.anchorterminal.com/compare/koboldcpp-vs-localai.md)\n- [KoboldCpp vs MLX LM](https://www.anchorterminal.com/compare/koboldcpp-vs-mlx-lm.md)\n- [KoboldCpp vs Ollama](https://www.anchorterminal.com/compare/koboldcpp-vs-ollama.md)\n- [KoboldCpp vs Open WebUI](https://www.anchorterminal.com/compare/koboldcpp-vs-open-webui.md)\n- [KoboldCpp vs screenpipe](https://www.anchorterminal.com/compare/koboldcpp-vs-screenpipe.md)\n- [KoboldCpp vs TextGen](https://www.anchorterminal.com/compare/koboldcpp-vs-text-generation-webui.md)\n- [screenpipe vs Underdog](https://www.anchorterminal.com/compare/screenpipe-vs-underdog.md)\n- [AnythingLLM vs Underdog](https://www.anchorterminal.com/compare/anythingllm-vs-underdog.md)\n- [Docker Model Runner vs Underdog](https://www.anchorterminal.com/compare/docker-model-runner-vs-underdog.md)\n- [Foundry Local vs Underdog](https://www.anchorterminal.com/compare/foundry-local-vs-underdog.md)\n- [Core vs Underdog](https://www.anchorterminal.com/compare/ghost-core-vs-underdog.md)\n- [GPT4All vs Underdog](https://www.anchorterminal.com/compare/gpt4all-vs-underdog.md)\n- [Jan vs Underdog](https://www.anchorterminal.com/compare/jan-vs-underdog.md)\n- [Lemonade vs Underdog](https://www.anchorterminal.com/compare/lemonade-vs-underdog.md)\n- [llama.cpp vs Underdog](https://www.anchorterminal.com/compare/llama-cpp-vs-underdog.md)\n- [LM Studio vs Underdog](https://www.anchorterminal.com/compare/lm-studio-vs-underdog.md)\n- [LocalAI vs Underdog](https://www.anchorterminal.com/compare/localai-vs-underdog.md)\n- [MLX LM vs Underdog](https://www.anchorterminal.com/compare/mlx-lm-vs-underdog.md)\n- [Ollama vs Underdog](https://www.anchorterminal.com/compare/ollama-vs-underdog.md)\n- [TextGen vs Underdog](https://www.anchorterminal.com/compare/text-generation-webui-vs-underdog.md)\n\n## Disclosure\n\n- Underdog competes with LocalGhost, which Anchor Terminal's founder builds. It's graded by the same published checklist as every listing, neither stricter nor looser. Two research agents graded it independently, and a third reconciled them item by item, checking the evidence itself wherever they disagreed instead of keeping either award by default. underdog.ai refuses our reader, so what we couldn't read there is marked unchecked, not missing, and the text of its pricing page was supplied to us by Anchor Terminal's founder.\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": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "KoboldCpp vs Underdog",
        "url": ""
      }
    ],
    "description": "KoboldCpp scores 60.5 (C) on agent readiness against Underdog's 29.5 (F), and leads in 6 of 7 scored categories. Both do inference open weights. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "KoboldCpp C 60.5",
      "Underdog F 29.5",
      "scores"
    ],
    "h1": "KoboldCpp vs Underdog",
    "image": "https://www.anchorterminal.com/assets/og/compare-koboldcpp-vs-underdog.png",
    "path": "/compare/koboldcpp-vs-underdog",
    "published": "2026-10-01",
    "section": "tools",
    "title": "KoboldCpp vs Underdog for AI agents, C 60.5 vs F 29.5",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-underdog"
  },
  "tokens": {
    "markdown": 2700,
    "slim": 730
  },
  "version": 1
}
