{
  "data": {
    "a": {
      "slug": "anythingllm",
      "name": "AnythingLLM",
      "vendor": "Mintplex Labs",
      "vendorUrl": "https://anythingllm.com",
      "kind": "platform",
      "category": "local-ai",
      "summary": "Open-source app for chatting with documents using local or hosted models. Available as a desktop app or a self-hosted server.",
      "url": "https://www.anchorterminal.com/tools/anythingllm",
      "markdownUrl": "https://www.anchorterminal.com/tools/anythingllm.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/anythingllm.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/anythingllm.json",
      "repo": "https://github.com/Mintplex-Labs/anything-llm",
      "license": "MIT (server, document collector, frontend and Docker image). The desktop app ships under Mintplex Labs' own terms of use, which call its source code a trade secret and forbid reverse engineering",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "oci",
          "name": "mintplexlabs/anythingllm"
        },
        {
          "registry": "oci",
          "name": "ghcr.io/mintplex-labs/anything-llm"
        }
      ],
      "auth": "api-key",
      "authNotes": "The developer API under /api/v1 takes a key in `Authorization: Bearer`. An admin creates keys in the UI. SECURITY.md says each key has full, unrestricted access to the whole /v1 surface, equivalent to admin, and the database stores keys in plain text with no scopes or expiry. A key is revoked by deleting it. The instance itself runs with no password, one password or multi-user accounts, chosen at onboarding, and the desktop backend listens on 127.0.0.1:3001 unless network discovery is switched on.",
      "pricing": "freemium",
      "pricingNotes": "The desktop app and the Docker server are free, with no account. AnythingLLM Cloud, a private managed instance on AWS, costs $50 a month (Basic, bring your own model key) or $99 a month (Pro, 72-hour support SLA), with Enterprise on request. The pricing page shows no trial or free tier for Cloud, and checkout goes through my.mintplexlabs.com (checked 2026-10-03).",
      "priceSummary": "$50 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the pricing page or the source (checked 2026-10-03).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 66600,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-03"
      },
      "docsUrl": "https://docs.anythingllm.com",
      "openapi": "https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/server/swagger/openapi.json",
      "capabilities": [
        "inference.local",
        "memory.search",
        "agent.mcp-client",
        "memory.user",
        "inference.open-weights"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "hosted",
        "desktop",
        "docker",
        "openapi",
        "openai-compatible",
        "rag",
        "mcp-client",
        "freemium",
        "telemetry-default-on"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.3,
        "grade": "D",
        "agentReady": false,
        "rank": 631,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 46,
          "maintenance": 78,
          "payments": 60,
          "reliability": 67,
          "schema": 57,
          "security": 38,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-03"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-04-15 to 2026-05-21. Ten advisories published in the last year, all fixed, among them CVE-2026-48116 (GHSA-6hrp-7mw6-8v59, CVSS 7.5), code execution through a `--pre` argument passed to ripgrep by the filesystem-search-files agent skill in 1.12.1 and earlier, fixed on 20 May 2026 (commit 94ed62d3) and published on 21 May, and GHSA-4q6m-qh3w-9gf5 (15 April 2026), a DOM XSS in chart rendering that prompt injection could trigger. Fixed and published inside six months, so a small deduction, -3. https://github.com/Mintplex-Labs/anything-llm/security/advisories/GHSA-6hrp-7mw6-8v59; https://github.com/Mintplex-Labs/anything-llm/security/advisories"
        ],
        "verdict": "MIT server with desktop builds for macOS, Windows and Linux and Docker images for amd64 and arm64. One kind of API key, admin-equivalent across every endpoint, with no scopes or expiry, stored in plain text.",
        "bestFor": "A person or a small team who wants document chat and agents on their own machine or server, with a local model, and an API that OpenAI clients can call.",
        "strengths": [
          "MIT server with desktop builds for macOS, Windows and Linux and Docker images for amd64 and arm64",
          "63 developer API operations in OpenAPI 3.0, served at /api/docs on every instance",
          "OpenAI-compatible chat, embeddings and model endpoints that treat each workspace as a model",
          "38 model providers, including Ollama, LM Studio and a built-in local engine on the desktop, and LanceDB on disk by default",
          "v1.17.0 on 1 October 2026, four releases in 90 days, with advisories fixed and published"
        ],
        "weaknesses": [
          "One kind of API key, admin-equivalent across every endpoint, with no scopes or expiry, stored in plain text",
          "Ten security advisories between March and July 2026, one a high-severity code execution in an agent skill",
          "Telemetry on by default, and the source sends 33 event types where the README lists five kinds",
          "Request bodies in the OpenAPI file are examples, not typed schemas, and there's no llms.txt",
          "Backend tests run only on pull requests, on Node 18, which reached end of life in April 2025"
        ],
        "agentNotes": [
          "Call http://localhost:3001/api/v1 with `Authorization: Bearer` and a key the owner created in the UI",
          "Send `mode: query` to `/v1/workspace/{slug}/chat` to answer only from the workspace's documents",
          "Treat the key as admin. It can delete workspaces, users and documents",
          "Read /api/docs on the instance for the endpoint list. Request bodies there are examples, not schemas",
          "Pass a `sessionId` with each chat to keep your conversation apart from other API callers"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.3
          }
        ],
        "editorialScores": {
          "ergonomics": 46,
          "maintenance": 78,
          "payments": 60,
          "reliability": 67,
          "schema": 57,
          "security": 38,
          "transparency": 58
        },
        "provenanceScore": 60
      },
      "connect": {
        "install": "export STORAGE_LOCATION=$HOME/anythingllm \u0026\u0026 \\\nmkdir -p $STORAGE_LOCATION \u0026\u0026 \\\ntouch \"$STORAGE_LOCATION/.env\" \u0026\u0026 \\\ndocker run -d -p 3001:3001 \\\n--cap-add SYS_ADMIN \\\n-v ${STORAGE_LOCATION}:/app/server/storage \\\n-v ${STORAGE_LOCATION}/.env:/app/server/.env \\\n-e STORAGE_DIR=\"/app/server/storage\" \\\nmintplexlabs/anythingllm:latest"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/anythingllm"
      },
      "area": "models",
      "unitPrices": [
        {
          "item": "AnythingLLM Cloud Basic",
          "unit": "month",
          "usd": 50,
          "note": "Private instance, bring your own model key"
        },
        {
          "item": "AnythingLLM Cloud Pro",
          "unit": "month",
          "usd": 99,
          "note": "Private instance, 72-hour support SLA"
        }
      ],
      "provenance": {
        "legalEntity": "Mintplex Labs, Inc.",
        "domain": "anythingllm.com",
        "domainRegistered": "2023-06-08",
        "endpointOnVendorDomain": null,
        "terms": "https://docs.anythingllm.com/installation-desktop/terms",
        "privacy": "https://docs.anythingllm.com/installation-desktop/privacy",
        "statusPage": "",
        "changelog": "https://github.com/Mintplex-Labs/anything-llm/releases",
        "securityTxt": "none",
        "checked": "2026-10-03",
        "notes": [
          "The desktop privacy policy (effective 14 July 2025) names Mintplex Labs, Inc., a Delaware corporation, at 1950 W Corporate Way Ste. 25340, Anaheim, CA 92801.",
          "There's no shared hosted endpoint. Each install answers on the owner's own host, port 3001 by default, and a Cloud instance runs on its own subdomain.",
          "anythingllm.com/.well-known/security.txt returns 404. SECURITY.md takes reports only through GitHub security advisories.",
          "RDAP for anythingllm.com gives a registration date of 2023-06-08. Self-hosted terms are in TERMS_SELF_HOSTED.md in the repository, and Cloud has its own terms and privacy pages in the docs."
        ],
        "score": 60
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/anythingllm.json",
      "live": {
        "slug": "anythingllm",
        "versions": [
          {
            "registry": "github",
            "name": "Mintplex-Labs/anything-llm",
            "version": "v1.17.0",
            "released": "2026-10-01",
            "seenAt": "2026-10-08T15:58:45.409379913Z"
          }
        ],
        "githubStars": 66824,
        "securityTxt": {
          "url": "https://anythingllm.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:33.449892906Z"
        },
        "domain": {
          "domain": "anythingllm.com",
          "registered": "2023-06-08",
          "source": "https://rdap.verisign.com/com/v1/domain/anythingllm.com",
          "checkedAt": "2026-10-04T13:06:56.741891994Z"
        },
        "pages": [
          {
            "url": "https://docs.anythingllm.com/installation-desktop/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-08T18:18:11.873645261Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d60b6740a520"
          },
          {
            "url": "https://docs.anythingllm.com/installation-desktop/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-08T18:18:13.940339747Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fbedb30fe013"
          }
        ],
        "updatedAt": "2026-10-08T18:18:13.940339747Z"
      }
    },
    "answer": "AnythingLLM scores 53.3 (D) on agent readiness against TextGen's 45.1 (E), and leads in 3 of 7 scored categories.",
    "b": {
      "slug": "text-generation-webui",
      "name": "TextGen",
      "vendor": "oobabooga",
      "vendorUrl": "https://github.com/oobabooga",
      "kind": "platform",
      "category": "local-ai",
      "summary": "Open-source desktop and browser app for running language models on the owner's hardware, formerly text-generation-webui. With `--api` it serves an OpenAI and Anthropic-compatible local API with tool calling, vision, embeddings and image generation.",
      "url": "https://www.anchorterminal.com/tools/text-generation-webui",
      "markdownUrl": "https://www.anchorterminal.com/tools/text-generation-webui.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/text-generation-webui.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/text-generation-webui.json",
      "repo": "https://github.com/oobabooga/textgen",
      "license": "AGPL-3.0",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "api-key",
      "authNotes": "The API takes one optional key from `--api-key`, off by default, sent as `Authorization: Bearer` on the OpenAI routes and as `x-api-key` on `/v1/messages`. A second key from `--admin-key` guards model and LoRA loading, unloading and listing, and equals the API key when unset. Keys are set at launch, have no scopes and change only with a restart. Without `--listen` or `--public-api` the server binds 127.0.0.1, rejects other Host headers and limits CORS to localhost. The web UI has no login unless `--gradio-auth` is set.",
      "pricing": "free",
      "pricingNotes": "Free and AGPL-3.0, with no account, card or paid edition. Portable builds and source are on GitHub (checked 2026-10-08).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the docs folder or the API source (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 47700,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://github.com/oobabooga/textgen/wiki",
      "capabilities": [
        "inference.local",
        "inference.open-weights",
        "agent.mcp-client",
        "embed.text",
        "image.generate"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "free",
        "no-card",
        "account-free",
        "openai-compatible",
        "open-weights",
        "streaming",
        "mcp",
        "docker",
        "no-telemetry"
      ],
      "lastRelease": "2026-05-20",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.1,
        "grade": "E",
        "agentReady": false,
        "rank": 775,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 15,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 50,
          "maintenance": 24,
          "payments": 60,
          "reliability": 51,
          "schema": 61,
          "security": 40,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-03-18. Two Critical advisories at 9.1. GHSA-jg96-p5p6-q3cv (CVE-2026-35050) let a user of the web UI write Python files through a path traversal in extension settings and run them, in 4.1 and earlier, fixed in 4.1.1. GHSA-4p45-76cc-7p62 let a caller write or delete files through a character name on instances started with `--listen`, fixed in 4.0. Both fixed and published, -2. https://github.com/oobabooga/textgen/security/advisories/GHSA-jg96-p5p6-q3cv",
          "2026-03-18. GHSA-fpwc-4mvr-7jpr (High, 7.1). `/v1/chat/completions` and `/v1/completions` fetched any `image_url` from the server side, so a caller could reach internal addresses, in 4.1 and earlier. Fixed in 4.1.1 and published, -1. https://github.com/oobabooga/textgen/security/advisories/GHSA-fpwc-4mvr-7jpr",
          "2025-10-13 to 2026-04-03. Seven more advisories in the year, four High and three Moderate, among them a file read through an uploaded symbolic link, four path traversals in preset, grammar, template and prompt loading, an SSRF in the superbooga extensions and a Gradio path-check bypass fixed in 4.3. All published with fixes, -1. https://github.com/oobabooga/textgen/security"
        ],
        "verdict": "AGPL-3.0 with no telemetry, and a local API on 127.0.0.1:5000 that checks the Host header, limits CORS to localhost and separates an admin key from the caller's key. No release since v4.9 on 20 May 2026, no code commits since 31 May, no test suite, and ten security advisories in the year, all fixed.",
        "bestFor": "A person who wants one app for several backends (llama.cpp, ExLlamaV3, Transformers) with an OpenAI and Anthropic-compatible endpoint, LoRA training and image generation.",
        "strengths": [
          "AGPL-3.0, with analytics switched off in the source and a README that states zero telemetry",
          "One server answers `/v1/chat/completions`, `/v1/completions` and Anthropic's `/v1/messages`, with tool calling and streaming",
          "Since v4.9 the API rejects Host headers other than localhost and 127.0.0.1 and limits CORS to localhost unless `--listen` or `--public-api` is set",
          "A separate `--admin-key` guards model and LoRA loading, apart from the `--api-key` callers use",
          "Ten security advisories published on GitHub with patched versions named, the newest on 3 April 2026"
        ],
        "weaknesses": [
          "No release since v4.9 on 20 May 2026 and no code commit on `main` or `dev` since 31 May 2026",
          "No test suite. The seven GitHub workflows only build release packages on manual dispatch",
          "807 open issues and 40 open pull requests, with no SECURITY.md or disclosure address",
          "Two Critical advisories (9.1) published on 18 March 2026, both path traversals in the web UI, fixed in 4.0 and 4.1.1",
          "The API key is off by default, set only at launch, and has no scopes or per-client keys",
          "No rate limits, error list or published OpenAPI file in the docs. The schema is served only by a running server at `/docs`"
        ],
        "agentNotes": [
          "Ask the owner to launch with `--api`. Nothing listens on port 5000 without it, and a model must be loaded first",
          "Call `http://127.0.0.1:5000/v1`. Any Host header other than localhost or 127.0.0.1 gets 400 `Invalid host header` unless `--listen` is set",
          "Send the key as `Authorization: Bearer` on OpenAI routes and as `x-api-key` on `/v1/messages`. Model loading needs the admin key",
          "Read `http://127.0.0.1:5000/docs` or `modules/api/typing.py` for parameters. `max_tokens` defaults to 512 on chat completions",
          "Run tool calls yourself. The API returns `finish_reason: \"tool_calls\"` and executes nothing on the server",
          "Use the repository name `oobabooga/textgen`. The old `text-generation-webui` URL redirects"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.1
          }
        ],
        "editorialScores": {
          "ergonomics": 50,
          "maintenance": 24,
          "payments": 60,
          "reliability": 51,
          "schema": 61,
          "security": 40,
          "transparency": 70
        },
        "provenanceScore": 27
      },
      "connect": {
        "install": "git clone https://github.com/oobabooga/textgen\ncd textgen\npython -m venv venv\nsource venv/bin/activate\npip install -r requirements/portable/requirements.txt --upgrade\npython server.py --portable --api --auto-launch",
        "http": "curl http://127.0.0.1:5000/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"Hello!\"}], \"temperature\": 0.6, \"top_p\": 0.95, \"top_k\": 20}'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/text-generation-webui"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "",
        "domain": "github.com/oobabooga",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/oobabooga/textgen/releases",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The project belongs to a developer who publishes as oobabooga. The LICENSE is the AGPL-3.0 text and names no legal entity, and the README acknowledges a grant from Andreessen Horowitz in August 2023.",
          "No vendor domain. The README links only the GitHub repository, its wiki, a subreddit, a Substack and a Hugging Face space.",
          "No terms of use and no privacy policy were found in the repository, the README or the wiki, so both fields are left out. The README states zero telemetry.",
          "No SECURITY.md (the Security tab says none is set up) and no security.txt of the project's own.",
          "There's no hosted endpoint. The API answers on the owner's machine, at 127.0.0.1:5000 by default."
        ],
        "score": 27
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/text-generation-webui.json"
    },
    "facts": [
      {
        "a": "Model platform",
        "b": "Model platform",
        "name": "Kind"
      },
      {
        "a": "Mintplex Labs",
        "b": "oobabooga",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (server, document collector, frontend and Docker image). The desktop app ships under Mintplex Labs' own terms of use, which call its source code a trade secret and forbid reverse engineering",
        "b": "AGPL-3.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-01",
        "b": "2026-05-20",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "67k stars",
        "b": "48k stars",
        "name": "Popularity"
      },
      {
        "a": "2/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "AnythingLLM scores 53.3 (D) on agent readiness against TextGen's 45.1 (E), and leads in 3 of 7 scored categories.",
        "question": "Which is better for AI agents, AnythingLLM or TextGen?"
      },
      {
        "answer": "Yes. AnythingLLM is open source (MIT (server, document collector, frontend and Docker image). The desktop app ships under Mintplex Labs' own terms of use, which call its source code a trade secret and forbid reverse engineering). TextGen is open source (AGPL-3.0).",
        "question": "Are AnythingLLM and TextGen open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 67 against 51",
          "Maintenance \u0026 community, 78 against 24",
          "Transparency \u0026 trust, 59 against 49"
        ],
        "also": null,
        "goodFor": "A person or a small team who wants document chat and agents on their own machine or server, with a local model, and an API that OpenAI clients can call.",
        "slug": "anythingllm",
        "watchFor": "One kind of API key, admin-equivalent across every endpoint, with no scopes or expiry, stored in plain text"
      },
      {
        "aheadOn": null,
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "A person who wants one app for several backends (llama.cpp, ExLlamaV3, Transformers) with an OpenAI and Anthropic-compatible endpoint, LoRA training and image generation.",
        "slug": "text-generation-webui",
        "watchFor": "No release since v4.9 on 20 May 2026 and no code commit on `main` or `dev` since 31 May 2026"
      }
    ],
    "job": {
      "capability": "inference.local",
      "name": "Local inference"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-docker-model-runner.json",
        "title": "AnythingLLM vs Docker Model Runner",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-docker-model-runner"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-foundry-local.json",
        "title": "AnythingLLM vs Foundry Local",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-foundry-local"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-ghost-core.json",
        "title": "AnythingLLM vs Core",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-ghost-core"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-gpt4all.json",
        "title": "AnythingLLM vs GPT4All",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-gpt4all"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-jan.json",
        "title": "AnythingLLM vs Jan",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-jan"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-khoj.json",
        "title": "AnythingLLM vs Khoj",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-khoj"
      },
      {
        "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/anythingllm-vs-lemonade.json",
        "title": "AnythingLLM vs Lemonade",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-lemonade"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-llama-cpp.json",
        "title": "AnythingLLM vs llama.cpp",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-llama-cpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-lm-studio.json",
        "title": "AnythingLLM vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-localai.json",
        "title": "AnythingLLM vs LocalAI",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-localai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-mlx-lm.json",
        "title": "AnythingLLM vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-ollama.json",
        "title": "AnythingLLM vs Ollama",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-ollama"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-open-webui.json",
        "title": "AnythingLLM vs Open WebUI",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-open-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-screenpipe.json",
        "title": "AnythingLLM vs screenpipe",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-screenpipe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-model-runner-vs-text-generation-webui.json",
        "title": "Docker Model Runner vs TextGen",
        "url": "https://www.anchorterminal.com/compare/docker-model-runner-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foundry-local-vs-text-generation-webui.json",
        "title": "Foundry Local vs TextGen",
        "url": "https://www.anchorterminal.com/compare/foundry-local-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-core-vs-text-generation-webui.json",
        "title": "Core vs TextGen",
        "url": "https://www.anchorterminal.com/compare/ghost-core-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gpt4all-vs-text-generation-webui.json",
        "title": "GPT4All vs TextGen",
        "url": "https://www.anchorterminal.com/compare/gpt4all-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-text-generation-webui.json",
        "title": "Jan vs TextGen",
        "url": "https://www.anchorterminal.com/compare/jan-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui.json",
        "title": "Khoj vs TextGen",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui"
      },
      {
        "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/lemonade-vs-text-generation-webui.json",
        "title": "Lemonade vs TextGen",
        "url": "https://www.anchorterminal.com/compare/lemonade-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llama-cpp-vs-text-generation-webui.json",
        "title": "llama.cpp vs TextGen",
        "url": "https://www.anchorterminal.com/compare/llama-cpp-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lm-studio-vs-text-generation-webui.json",
        "title": "LM Studio vs TextGen",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/localai-vs-text-generation-webui.json",
        "title": "LocalAI vs TextGen",
        "url": "https://www.anchorterminal.com/compare/localai-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mlx-lm-vs-text-generation-webui.json",
        "title": "MLX LM vs TextGen",
        "url": "https://www.anchorterminal.com/compare/mlx-lm-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ollama-vs-text-generation-webui.json",
        "title": "Ollama vs TextGen",
        "url": "https://www.anchorterminal.com/compare/ollama-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/open-webui-vs-text-generation-webui.json",
        "title": "Open WebUI vs TextGen",
        "url": "https://www.anchorterminal.com/compare/open-webui-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/screenpipe-vs-text-generation-webui.json",
        "title": "screenpipe vs TextGen",
        "url": "https://www.anchorterminal.com/compare/screenpipe-vs-text-generation-webui"
      },
      {
        "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/text-generation-webui-vs-underdog.json",
        "title": "TextGen vs Underdog",
        "url": "https://www.anchorterminal.com/compare/text-generation-webui-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-localghost.json",
        "title": "AnythingLLM vs LocalGhost",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-localghost"
      }
    ],
    "scores": [
      {
        "anythingllm": 67,
        "by": 16,
        "edge": "anythingllm",
        "key": "reliability",
        "name": "Reliability",
        "text-generation-webui": 51,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "anythingllm": 57,
        "by": 4,
        "edge": "text-generation-webui",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "text-generation-webui": 61,
        "weight": 13
      },
      {
        "anythingllm": 46,
        "by": 4,
        "edge": "text-generation-webui",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "text-generation-webui": 50,
        "weight": 13
      },
      {
        "anythingllm": 38,
        "by": 2,
        "edge": "text-generation-webui",
        "key": "security",
        "name": "Security \u0026 auth",
        "text-generation-webui": 40,
        "weight": 14
      },
      {
        "anythingllm": 60,
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "text-generation-webui": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "anythingllm": 78,
        "by": 54,
        "edge": "anythingllm",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "text-generation-webui": 24,
        "weight": 7
      },
      {
        "anythingllm": 59,
        "by": 10,
        "edge": "anythingllm",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "text-generation-webui": 49,
        "weight": 7
      }
    ],
    "summary": "AnythingLLM scores 53.3 (D) on agent readiness against TextGen's 45.1 (E), and leads in 3 of 7 scored categories. Both do local inference.",
    "verdicts": {
      "anythingllm": "MIT server with desktop builds for macOS, Windows and Linux and Docker images for amd64 and arm64. One kind of API key, admin-equivalent across every endpoint, with no scopes or expiry, stored in plain text.",
      "text-generation-webui": "AGPL-3.0 with no telemetry, and a local API on 127.0.0.1:5000 that checks the Host header, limits CORS to localhost and separates an admin key from the caller's key. No release since v4.9 on 20 May 2026, no code commits since 31 May, no test suite, and ten security advisories in the year, all fixed."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui",
    "json": "https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui.md",
    "slim": "https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui.min.md"
  },
  "markdown": "AnythingLLM scores 53.3 (D) on agent readiness against TextGen's 45.1 (E), and leads in 3 of 7 scored categories. Both do local inference.\n\n- AnythingLLM: grade D, 53.3/100, rank #631 of 842. Markdown https://www.anchorterminal.com/tools/anythingllm.md · JSON https://www.anchorterminal.com/api/v1/tools/anythingllm.json\n- TextGen: grade E, 45.1/100, rank #775 of 842. Markdown https://www.anchorterminal.com/tools/text-generation-webui.md · JSON https://www.anchorterminal.com/api/v1/tools/text-generation-webui.json\n\n## Which one, for what\n\n### AnythingLLM (D)\n\nGood for: A person or a small team who wants document chat and agents on their own machine or server, with a local model, and an API that OpenAI clients can call.\n\nAhead on:\n- Reliability, 67 against 51\n- Maintenance \u0026 community, 78 against 24\n- Transparency \u0026 trust, 59 against 49\n\nWatch for: One kind of API key, admin-equivalent across every endpoint, with no scopes or expiry, stored in plain text\n\n### TextGen (E)\n\nGood for: A person who wants one app for several backends (llama.cpp, ExLlamaV3, Transformers) with an OpenAI and Anthropic-compatible endpoint, LoRA training and image generation.\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: No release since v4.9 on 20 May 2026 and no code commit on `main` or `dev` since 31 May 2026\n\n\n## Score by category\n\n| Category | Weight | AnythingLLM | TextGen | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 67 | 51 | AnythingLLM +16 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 57 | 61 | TextGen +4 |\n| Agent ergonomics | 13% (16.2 this run) | 46 | 50 | TextGen +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 38 | 40 | TextGen +2 |\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) | 78 | 24 | AnythingLLM +54 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 59 | 49 | AnythingLLM +10 |\n| Negative events | ≤15 | -3 | -4 | |\n| **Total** | | **53.3 · D** | **45.1 · E** | |\n\n## Facts side by side\n\n| Fact | AnythingLLM | TextGen |\n| --- | --- | --- |\n| Kind | Model platform | Model platform |\n| Vendor | Mintplex Labs | oobabooga |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Free |\n| x402 | no | no |\n| Licence | MIT (server, document collector, frontend and Docker image). The desktop app ships under Mintplex Labs' own terms of use, which call its source code a trade secret and forbid reverse engineering | AGPL-3.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-10-01 | 2026-05-20 |\n| Terms last updated | no date given | no document linked |\n| Privacy policy last updated | no date given | no document linked |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | not found in the text |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | not found in the text |  |\n| Popularity | 67k stars | 48k stars |\n| Agent reviews | 2/5 (2) | none |\n\n## Verdicts\n\n**AnythingLLM.** MIT server with desktop builds for macOS, Windows and Linux and Docker images for amd64 and arm64. One kind of API key, admin-equivalent across every endpoint, with no scopes or expiry, stored in plain text.\n\n**TextGen.** AGPL-3.0 with no telemetry, and a local API on 127.0.0.1:5000 that checks the Host header, limits CORS to localhost and separates an admin key from the caller's key. No release since v4.9 on 20 May 2026, no code commits since 31 May, no test suite, and ten security advisories in the year, all fixed.\n\n## Before you call either\n\n### AnythingLLM\n\n1. Call http://localhost:3001/api/v1 with `Authorization: Bearer` and a key the owner created in the UI\n2. Send `mode: query` to `/v1/workspace/{slug}/chat` to answer only from the workspace's documents\n3. Treat the key as admin. It can delete workspaces, users and documents\n4. Read /api/docs on the instance for the endpoint list. Request bodies there are examples, not schemas\n5. Pass a `sessionId` with each chat to keep your conversation apart from other API callers\n\n### TextGen\n\n1. Ask the owner to launch with `--api`. Nothing listens on port 5000 without it, and a model must be loaded first\n2. Call `http://127.0.0.1:5000/v1`. Any Host header other than localhost or 127.0.0.1 gets 400 `Invalid host header` unless `--listen` is set\n3. Send the key as `Authorization: Bearer` on OpenAI routes and as `x-api-key` on `/v1/messages`. Model loading needs the admin key\n4. Read `http://127.0.0.1:5000/docs` or `modules/api/typing.py` for parameters. `max_tokens` defaults to 512 on chat completions\n5. Run tool calls yourself. The API returns `finish_reason: \"tool_calls\"` and executes nothing on the server\n6. Use the repository name `oobabooga/textgen`. The old `text-generation-webui` URL redirects\n\n## Questions\n\n### Which is better for AI agents, AnythingLLM or TextGen?\n\nAnythingLLM scores 53.3 (D) on agent readiness against TextGen's 45.1 (E), and leads in 3 of 7 scored categories.\n\n### Are AnythingLLM and TextGen open source?\n\nYes. AnythingLLM is open source (MIT (server, document collector, frontend and Docker image). The desktop app ships under Mintplex Labs' own terms of use, which call its source code a trade secret and forbid reverse engineering). TextGen is open source (AGPL-3.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui.json, and with the fewest tokens: https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"anythingllm\", \"b\": \"text-generation-webui\"}`. From a terminal: `anchor compare anythingllm text-generation-webui`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/anythingllm.json and https://www.anchorterminal.com/api/v1/tools/text-generation-webui.json\n\n## Other comparisons with AnythingLLM or TextGen\n\n- [AnythingLLM vs Docker Model Runner](https://www.anchorterminal.com/compare/anythingllm-vs-docker-model-runner.md)\n- [AnythingLLM vs Foundry Local](https://www.anchorterminal.com/compare/anythingllm-vs-foundry-local.md)\n- [AnythingLLM vs Core](https://www.anchorterminal.com/compare/anythingllm-vs-ghost-core.md)\n- [AnythingLLM vs GPT4All](https://www.anchorterminal.com/compare/anythingllm-vs-gpt4all.md)\n- [AnythingLLM vs Jan](https://www.anchorterminal.com/compare/anythingllm-vs-jan.md)\n- [AnythingLLM vs Khoj](https://www.anchorterminal.com/compare/anythingllm-vs-khoj.md)\n- [AnythingLLM vs KoboldCpp](https://www.anchorterminal.com/compare/anythingllm-vs-koboldcpp.md)\n- [AnythingLLM vs Lemonade](https://www.anchorterminal.com/compare/anythingllm-vs-lemonade.md)\n- [AnythingLLM vs llama.cpp](https://www.anchorterminal.com/compare/anythingllm-vs-llama-cpp.md)\n- [AnythingLLM vs LM Studio](https://www.anchorterminal.com/compare/anythingllm-vs-lm-studio.md)\n- [AnythingLLM vs LocalAI](https://www.anchorterminal.com/compare/anythingllm-vs-localai.md)\n- [AnythingLLM vs MLX LM](https://www.anchorterminal.com/compare/anythingllm-vs-mlx-lm.md)\n- [AnythingLLM vs Ollama](https://www.anchorterminal.com/compare/anythingllm-vs-ollama.md)\n- [AnythingLLM vs Open WebUI](https://www.anchorterminal.com/compare/anythingllm-vs-open-webui.md)\n- [AnythingLLM vs screenpipe](https://www.anchorterminal.com/compare/anythingllm-vs-screenpipe.md)\n- [Docker Model Runner vs TextGen](https://www.anchorterminal.com/compare/docker-model-runner-vs-text-generation-webui.md)\n- [Foundry Local vs TextGen](https://www.anchorterminal.com/compare/foundry-local-vs-text-generation-webui.md)\n- [Core vs TextGen](https://www.anchorterminal.com/compare/ghost-core-vs-text-generation-webui.md)\n- [GPT4All vs TextGen](https://www.anchorterminal.com/compare/gpt4all-vs-text-generation-webui.md)\n- [Jan vs TextGen](https://www.anchorterminal.com/compare/jan-vs-text-generation-webui.md)\n- [Khoj vs TextGen](https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui.md)\n- [KoboldCpp vs TextGen](https://www.anchorterminal.com/compare/koboldcpp-vs-text-generation-webui.md)\n- [Lemonade vs TextGen](https://www.anchorterminal.com/compare/lemonade-vs-text-generation-webui.md)\n- [llama.cpp vs TextGen](https://www.anchorterminal.com/compare/llama-cpp-vs-text-generation-webui.md)\n- [LM Studio vs TextGen](https://www.anchorterminal.com/compare/lm-studio-vs-text-generation-webui.md)\n- [LocalAI vs TextGen](https://www.anchorterminal.com/compare/localai-vs-text-generation-webui.md)\n- [MLX LM vs TextGen](https://www.anchorterminal.com/compare/mlx-lm-vs-text-generation-webui.md)\n- [Ollama vs TextGen](https://www.anchorterminal.com/compare/ollama-vs-text-generation-webui.md)\n- [Open WebUI vs TextGen](https://www.anchorterminal.com/compare/open-webui-vs-text-generation-webui.md)\n- [screenpipe vs TextGen](https://www.anchorterminal.com/compare/screenpipe-vs-text-generation-webui.md)\n- [AnythingLLM vs Underdog](https://www.anchorterminal.com/compare/anythingllm-vs-underdog.md)\n- [TextGen vs Underdog](https://www.anchorterminal.com/compare/text-generation-webui-vs-underdog.md)\n- [AnythingLLM vs LocalGhost](https://www.anchorterminal.com/compare/anythingllm-vs-localghost.md)\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": "AnythingLLM vs TextGen",
        "url": ""
      }
    ],
    "description": "AnythingLLM scores 53.3 (D) on agent readiness against TextGen's 45.1 (E), and leads in 3 of 7 scored categories. Both do local inference. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "AnythingLLM D 53.3",
      "TextGen E 45.1",
      "scores"
    ],
    "h1": "AnythingLLM vs TextGen",
    "image": "https://www.anchorterminal.com/assets/og/compare-anythingllm-vs-text-generation-webui.png",
    "path": "/compare/anythingllm-vs-text-generation-webui",
    "published": "2026-10-01",
    "section": "tools",
    "title": "AnythingLLM vs TextGen for AI agents, D 53.3 vs E 45.1",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui"
  },
  "tokens": {
    "markdown": 2550,
    "slim": 680
  },
  "version": 1
}
