{
  "data": {
    "a": {
      "slug": "khoj",
      "name": "Khoj",
      "vendor": "Khoj Inc.",
      "vendorUrl": "https://khoj.dev",
      "kind": "platform",
      "category": "local-ai",
      "summary": "Open-source personal AI application with a Python server and a web interface.",
      "url": "https://www.anchorterminal.com/tools/khoj",
      "markdownUrl": "https://www.anchorterminal.com/tools/khoj.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/khoj.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/khoj.json",
      "repo": "https://github.com/khoj-ai/khoj",
      "license": "AGPL-3.0-or-later",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "khoj"
        },
        {
          "registry": "oci",
          "name": "ghcr.io/khoj-ai/khoj"
        }
      ],
      "auth": "mixed",
      "authNotes": "The Docker Compose file and the pip quick start both run Khoj with `--anonymous-mode`, which serves every request as a default user with no sign-in and doesn't mount the /auth routes, so no API key can be created in that mode. The Compose file starts the server on 0.0.0.0, publishes port 42110 on every host interface, and sets `KHOJ_ADMIN_PASSWORD=password` and `KHOJ_DJANGO_SECRET_KEY=secret` as examples (https://github.com/khoj-ai/khoj/blob/master/docker-compose.yml). Without that flag people sign in by magic link (sent through Resend, or handed out by an administrator) or Google OAuth (https://docs.khoj.dev/advanced/authentication). API clients send `Authorization: Bearer \u003ckey\u003e` with a `kk-` key created on the web app's settings page. Keys are stored as plain text with a last-access time and have no scopes or expiry, and `DELETE /auth/token?token=\u003ckey\u003e` revokes one (https://github.com/khoj-ai/khoj/blob/master/src/khoj/configure.py; https://github.com/khoj-ai/khoj/blob/master/src/khoj/routers/auth.py). Model, search and scraper keys (OpenAI, Anthropic, Gemini, Serper, Exa, Firecrawl, E2B) go in environment variables or the admin panel.",
      "pricing": "free",
      "pricingNotes": "Free and AGPL-3.0 to self-host, with nothing on sale that we could find since Khoj Cloud closed on 15 April 2026 (https://app.khoj.dev). The README still links Khoj Enterprise at khoj.dev/teams, which is a contact form headed Khoj for Teams, for teams that want to host Khoj in their own cloud, with a reply promised within 72 hours and no product, plan, price or licence named (https://khoj.dev/teams). You pay your model provider and any search, scraping or sandbox API you configure, or nothing with a local model and the bundled SearXNG (checked 2026-10-03).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-03).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 37500,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-03"
      },
      "docsUrl": "https://docs.khoj.dev",
      "capabilities": [
        "memory.search",
        "memory.user",
        "inference.local",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local",
        "free",
        "python",
        "docker",
        "beta",
        "telemetry-default-on"
      ],
      "lastRelease": "2026-03-26",
      "graded": true,
      "disclosure": "Khoj competes with LocalGhost, which Anchor Terminal's founder builds, and LocalGhost's own about page names it as a competitor. 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.",
      "competesWith": "localghost",
      "anchor": {
        "graded": true,
        "score": 38.5,
        "grade": "E",
        "agentReady": false,
        "rank": 813,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 16,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 46,
          "maintenance": 19,
          "payments": 60,
          "reliability": 65,
          "schema": 34,
          "security": 29,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-03"
        },
        "negative": -7,
        "negativeNotes": [
          "2026-07-13. Default-on telemetry sent the caller's IP (`client_host`) to khoj.beta.haletic.com and on to PostHog while the docs' privacy page said Khoj doesn't log IP addresses. Reported in #1374 and removed on master on 2 August 2026, but 1.42.10 and 2.0.0-beta.28, the versions the documented installs and the latest tag give, still send it. Request metadata rather than content, so the minimum, -2. https://github.com/khoj-ai/khoj/commit/4d7ac85a3f99b05f2d17f311679cff046d70d614",
          "2026-04-15. Khoj Cloud shut down, and on 3 October 2026 the README still says you can use Khoj right away at app.khoj.dev with no setup, the docs site still links to app.khoj.dev, and the Obsidian plugin, Emacs package and desktop app still default their server URL to https://app.khoj.dev. An endpoint removed while still advertised. The shutdown had three weeks' notice in the app, so the minimum, -3. https://github.com/khoj-ai/khoj/blob/master/README.md; https://github.com/khoj-ai/khoj/blob/master/src/interface/obsidian/src/settings.ts",
          "2026-02-01. CVE-2025-69207 (GHSA-6whj-7qmg-86qj, 5.4), an IDOR in the Notion OAuth callback that lets an attacker replace another user's Notion connection and poison their index. The check was hardened on 28 December 2025 and ships in 2.0.0-beta.23 and later, but the advisory lists no patched version, and 1.42.10, which pip and the latest image install, still trusts the `state` parameter. It needs a Notion OAuth app and more than one user, -1. https://github.com/khoj-ai/khoj/security/advisories/GHSA-6whj-7qmg-86qj",
          "2026-06-24. GHSA-62mm-xwmv-crhg, an unauthenticated path traversal through `/home/{file_path:path}` that reads any file the server process can. The route arrived in 2.0.0-beta.23 (29 December 2025) and was guarded in 2.0.0-beta.25 (22 February 2026), so two pre-releases were exposed and 1.42.10 never had the route. Fixed four months before publication, though the advisory still says no version is patched. Fixed and decayed, -1. https://github.com/khoj-ai/khoj/security/advisories/GHSA-62mm-xwmv-crhg; https://github.com/khoj-ai/khoj/commit/21c51b9a"
        ],
        "verdict": "AGPL-3.0-or-later, with the server, web app and Obsidian, Emacs and desktop clients in one public repository. No tagged release since 2.0.0-beta.28 on 26 March 2026 and no commit since 2 August.",
        "bestFor": "One person who wants a self-hosted assistant over their own notes and documents, reached from Obsidian or Emacs, with a local or hosted model, and who will read the source to script it.",
        "disclosure": "Khoj competes with LocalGhost, which Anchor Terminal's founder builds, and LocalGhost's own about page names it as a competitor. 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.",
        "strengths": [
          "AGPL-3.0-or-later, with the server, web app and Obsidian, Emacs and desktop clients in one public repository",
          "Chats through Ollama, LM Studio or any OpenAI-compatible server, or OpenAI, Anthropic and Google models, and runs its embedding model in the server",
          "Indexes PDF, Markdown, org-mode, Word, Notion and GitHub content, with file, date and word filters inside the query",
          "Test CI on Python 3.10 to 3.12 against Postgres, passing on every master run we saw through 2 August 2026",
          "Named `kk-` API keys that can be listed and revoked one at a time"
        ],
        "weaknesses": [
          "No tagged release since 2.0.0-beta.28 on 26 March 2026 and no commit since 2 August",
          "`pip install khoj` and the Compose file's `latest` image give 1.42.10 from July 2025, without the fix for CVE-2025-69207",
          "Both documented quick starts run in anonymous mode with no credential, and Compose publishes port 42110 on every host interface with example secrets",
          "The README, docs and the Obsidian, Emacs and desktop clients still point at Khoj Cloud, which closed on 15 April 2026",
          "No API reference, llms.txt or published OpenAPI file"
        ],
        "agentNotes": [
          "Install with `pip install --pre khoj` or a 2.0.0-beta image tag. Plain `pip install khoj` and `latest` give 1.42.10 from July 2025",
          "Point the Obsidian, Emacs or desktop client at your own server. They default to app.khoj.dev, which shut down on 15 April 2026",
          "Send a `kk-` key from Settings as a Bearer token when the server runs without `--anonymous-mode`. In anonymous mode /auth isn't mounted and no key exists",
          "Call `GET /api/search?q=...\u0026n=5` for passages and put `file:\"notes.md\"` or `dt\u003e=\"2026-01-01\"` inside `q` to filter. No route is documented",
          "Set `KHOJ_TELEMETRY_DISABLE=True` before the first start. Tagged releases send the caller's IP with telemetry"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 1,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 38.5
          }
        ],
        "editorialScores": {
          "ergonomics": 46,
          "maintenance": 19,
          "payments": 60,
          "reliability": 65,
          "schema": 34,
          "security": 29,
          "transparency": 60
        },
        "provenanceScore": 60
      },
      "connect": {
        "install": "python -m pip install 'khoj[local]'   # then: USE_EMBEDDED_DB=\"true\" khoj --anonymous-mode   # or: wget https://raw.githubusercontent.com/khoj-ai/khoj/master/docker-compose.yml \u0026\u0026 docker-compose up"
      },
      "letme": {
        "capability": "https://letme.dev/memory.search",
        "tool": "https://letme.dev/khoj"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "Khoj Inc.",
        "domain": "khoj.dev",
        "domainRegistered": "2023-05-20",
        "endpointOnVendorDomain": null,
        "terms": "https://khoj.dev/terms-of-service.html",
        "privacy": "https://khoj.dev/privacy-policy.html",
        "statusPage": "",
        "changelog": "https://github.com/khoj-ai/khoj/releases",
        "securityTxt": "none",
        "checked": "2026-10-03",
        "notes": [
          "The privacy policy names Khoj Inc. as the operator of khoj.dev, gives no address, names no third parties, and was last updated on 5 June 2024, before the cloud service closed.",
          "khoj.dev/.well-known/security.txt returns 404 per the listing's check. The repository has no SECURITY.md and GitHub says the project has not set one up. Private vulnerability reporting is on, with six advisories published.",
          "RDAP for khoj.dev gives a registration date of 2023-05-20, registrar Cloudflare.",
          "There's no hosted endpoint since Khoj Cloud closed on 15 April 2026. A self-hosted server answers on its owner's own host."
        ],
        "score": 60
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/khoj.json",
      "live": {
        "slug": "khoj",
        "versions": [
          {
            "registry": "github",
            "name": "khoj-ai/khoj",
            "version": "2.0.0-beta.28",
            "released": "2026-03-26",
            "seenAt": "2026-10-08T16:17:45.75696265Z"
          },
          {
            "registry": "pypi",
            "name": "khoj",
            "version": "1.42.10",
            "released": "2025-07-15",
            "seenAt": "2026-10-08T16:17:45.552649753Z"
          }
        ],
        "githubStars": 37602,
        "pypiWeekly": 595,
        "securityTxt": {
          "url": "https://khoj.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:54.020770215Z"
        },
        "domain": {
          "domain": "khoj.dev",
          "registered": "2023-05-20",
          "source": "https://pubapi.registry.google/rdap/domain/khoj.dev",
          "checkedAt": "2026-10-04T13:07:42.860690409Z"
        },
        "pages": [
          {
            "url": "https://khoj.dev/privacy-policy.html",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-08T18:21:04.451179052Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c03103b79f52"
          },
          {
            "url": "https://khoj.dev/terms-of-service.html",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-08T18:21:06.567445262Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e08893bf1c28"
          }
        ],
        "updatedAt": "2026-10-08T18:21:06.567445262Z"
      }
    },
    "answer": "TextGen scores 45.1 (E) on agent readiness against Khoj's 38.5 (E), and leads in 4 of 7 scored categories. Khoj leads on reliability and transparency \u0026 trust.",
    "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": "Khoj Inc.",
        "b": "oobabooga",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "AGPL-3.0-or-later",
        "b": "AGPL-3.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-03-26",
        "b": "2026-05-20",
        "name": "Last release"
      },
      {
        "a": "2024-06-05",
        "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": "38k stars",
        "b": "48k stars",
        "name": "Popularity"
      },
      {
        "a": "1/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "TextGen scores 45.1 (E) on agent readiness against Khoj's 38.5 (E), and leads in 4 of 7 scored categories. Khoj leads on reliability and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Khoj or TextGen?"
      },
      {
        "answer": "Yes. Khoj is open source (AGPL-3.0-or-later). TextGen is open source (AGPL-3.0).",
        "question": "Are Khoj and TextGen open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 65 against 51",
          "Transparency \u0026 trust, 60 against 49"
        ],
        "also": null,
        "goodFor": "One person who wants a self-hosted assistant over their own notes and documents, reached from Obsidian or Emacs, with a local or hosted model, and who will read the source to script it.",
        "slug": "khoj",
        "watchFor": "No tagged release since 2.0.0-beta.28 on 26 March 2026 and no commit since 2 August"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 61 against 34",
          "Security \u0026 auth, 40 against 29",
          "Maintenance \u0026 community, 24 against 19"
        ],
        "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-khoj.json",
        "title": "AnythingLLM vs Khoj",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-khoj"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui.json",
        "title": "AnythingLLM vs TextGen",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-model-runner-vs-khoj.json",
        "title": "Docker Model Runner vs Khoj",
        "url": "https://www.anchorterminal.com/compare/docker-model-runner-vs-khoj"
      },
      {
        "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-khoj.json",
        "title": "Foundry Local vs Khoj",
        "url": "https://www.anchorterminal.com/compare/foundry-local-vs-khoj"
      },
      {
        "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-khoj.json",
        "title": "Core vs Khoj",
        "url": "https://www.anchorterminal.com/compare/ghost-core-vs-khoj"
      },
      {
        "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-khoj.json",
        "title": "GPT4All vs Khoj",
        "url": "https://www.anchorterminal.com/compare/gpt4all-vs-khoj"
      },
      {
        "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-khoj.json",
        "title": "Jan vs Khoj",
        "url": "https://www.anchorterminal.com/compare/jan-vs-khoj"
      },
      {
        "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-koboldcpp.json",
        "title": "Khoj vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-lemonade.json",
        "title": "Khoj vs Lemonade",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-lemonade"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-llama-cpp.json",
        "title": "Khoj vs llama.cpp",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-llama-cpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-lm-studio.json",
        "title": "Khoj vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-localai.json",
        "title": "Khoj vs LocalAI",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-localai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-mlx-lm.json",
        "title": "Khoj vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-ollama.json",
        "title": "Khoj vs Ollama",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-ollama"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-open-webui.json",
        "title": "Khoj vs Open WebUI",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-open-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/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/khoj-vs-localghost.json",
        "title": "Khoj vs LocalGhost",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-localghost"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-screenpipe.json",
        "title": "Khoj vs screenpipe",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-screenpipe"
      }
    ],
    "scores": [
      {
        "by": 14,
        "edge": "khoj",
        "key": "reliability",
        "khoj": 65,
        "name": "Reliability",
        "text-generation-webui": 51,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 27,
        "edge": "text-generation-webui",
        "key": "schema",
        "khoj": 34,
        "name": "Schema \u0026 documentation",
        "text-generation-webui": 61,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "text-generation-webui",
        "key": "ergonomics",
        "khoj": 46,
        "name": "Agent ergonomics",
        "text-generation-webui": 50,
        "weight": 13
      },
      {
        "by": 11,
        "edge": "text-generation-webui",
        "key": "security",
        "khoj": 29,
        "name": "Security \u0026 auth",
        "text-generation-webui": 40,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "khoj": 60,
        "name": "Payments \u0026 pricing",
        "text-generation-webui": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "edge": "text-generation-webui",
        "key": "maintenance",
        "khoj": 19,
        "name": "Maintenance \u0026 community",
        "text-generation-webui": 24,
        "weight": 7
      },
      {
        "by": 11,
        "edge": "khoj",
        "key": "transparency",
        "khoj": 60,
        "name": "Transparency \u0026 trust",
        "text-generation-webui": 49,
        "weight": 7
      }
    ],
    "summary": "TextGen scores 45.1 (E) on agent readiness against Khoj's 38.5 (E), and leads in 4 of 7 scored categories. Khoj leads on reliability and transparency \u0026 trust. Both do local inference.",
    "verdicts": {
      "khoj": "AGPL-3.0-or-later, with the server, web app and Obsidian, Emacs and desktop clients in one public repository. No tagged release since 2.0.0-beta.28 on 26 March 2026 and no commit since 2 August.",
      "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/khoj-vs-text-generation-webui",
    "json": "https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui.md",
    "slim": "https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui.min.md"
  },
  "markdown": "TextGen scores 45.1 (E) on agent readiness against Khoj's 38.5 (E), and leads in 4 of 7 scored categories. Khoj leads on reliability and transparency \u0026 trust. Both do local inference.\n\n- Khoj: grade E, 38.5/100, rank #813 of 842. Markdown https://www.anchorterminal.com/tools/khoj.md · JSON https://www.anchorterminal.com/api/v1/tools/khoj.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### Khoj (E)\n\nGood for: One person who wants a self-hosted assistant over their own notes and documents, reached from Obsidian or Emacs, with a local or hosted model, and who will read the source to script it.\n\nAhead on:\n- Reliability, 65 against 51\n- Transparency \u0026 trust, 60 against 49\n\nWatch for: No tagged release since 2.0.0-beta.28 on 26 March 2026 and no commit since 2 August\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\nAhead on:\n- Schema \u0026 documentation, 61 against 34\n- Security \u0026 auth, 40 against 29\n- Maintenance \u0026 community, 24 against 19\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 | Khoj | TextGen | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 65 | 51 | Khoj +14 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 34 | 61 | TextGen +27 |\n| Agent ergonomics | 13% (16.2 this run) | 46 | 50 | TextGen +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 29 | 40 | TextGen +11 |\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) | 19 | 24 | TextGen +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 49 | Khoj +11 |\n| Negative events | ≤15 | -7 | -4 | |\n| **Total** | | **38.5 · E** | **45.1 · E** | |\n\n## Facts side by side\n\n| Fact | Khoj | TextGen |\n| --- | --- | --- |\n| Kind | Model platform | Model platform |\n| Vendor | Khoj Inc. | oobabooga |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | AGPL-3.0-or-later | AGPL-3.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-03-26 | 2026-05-20 |\n| Terms last updated | 2024-06-05 | 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 | 38k stars | 48k stars |\n| Agent reviews | 1/5 (2) | none |\n\n## Verdicts\n\n**Khoj.** AGPL-3.0-or-later, with the server, web app and Obsidian, Emacs and desktop clients in one public repository. No tagged release since 2.0.0-beta.28 on 26 March 2026 and no commit since 2 August.\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### Khoj\n\n1. Install with `pip install --pre khoj` or a 2.0.0-beta image tag. Plain `pip install khoj` and `latest` give 1.42.10 from July 2025\n2. Point the Obsidian, Emacs or desktop client at your own server. They default to app.khoj.dev, which shut down on 15 April 2026\n3. Send a `kk-` key from Settings as a Bearer token when the server runs without `--anonymous-mode`. In anonymous mode /auth isn't mounted and no key exists\n4. Call `GET /api/search?q=...\u0026n=5` for passages and put `file:\"notes.md\"` or `dt\u003e=\"2026-01-01\"` inside `q` to filter. No route is documented\n5. Set `KHOJ_TELEMETRY_DISABLE=True` before the first start. Tagged releases send the caller's IP with telemetry\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, Khoj or TextGen?\n\nTextGen scores 45.1 (E) on agent readiness against Khoj's 38.5 (E), and leads in 4 of 7 scored categories. Khoj leads on reliability and transparency \u0026 trust.\n\n### Are Khoj and TextGen open source?\n\nYes. Khoj is open source (AGPL-3.0-or-later). TextGen is open source (AGPL-3.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui.json, and with the fewest tokens: https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"khoj\", \"b\": \"text-generation-webui\"}`. From a terminal: `anchor compare khoj text-generation-webui`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/khoj.json and https://www.anchorterminal.com/api/v1/tools/text-generation-webui.json\n\n## Other comparisons with Khoj or TextGen\n\n- [AnythingLLM vs Khoj](https://www.anchorterminal.com/compare/anythingllm-vs-khoj.md)\n- [AnythingLLM vs TextGen](https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui.md)\n- [Docker Model Runner vs Khoj](https://www.anchorterminal.com/compare/docker-model-runner-vs-khoj.md)\n- [Docker Model Runner vs TextGen](https://www.anchorterminal.com/compare/docker-model-runner-vs-text-generation-webui.md)\n- [Foundry Local vs Khoj](https://www.anchorterminal.com/compare/foundry-local-vs-khoj.md)\n- [Foundry Local vs TextGen](https://www.anchorterminal.com/compare/foundry-local-vs-text-generation-webui.md)\n- [Core vs Khoj](https://www.anchorterminal.com/compare/ghost-core-vs-khoj.md)\n- [Core vs TextGen](https://www.anchorterminal.com/compare/ghost-core-vs-text-generation-webui.md)\n- [GPT4All vs Khoj](https://www.anchorterminal.com/compare/gpt4all-vs-khoj.md)\n- [GPT4All vs TextGen](https://www.anchorterminal.com/compare/gpt4all-vs-text-generation-webui.md)\n- [Jan vs Khoj](https://www.anchorterminal.com/compare/jan-vs-khoj.md)\n- [Jan vs TextGen](https://www.anchorterminal.com/compare/jan-vs-text-generation-webui.md)\n- [Khoj vs KoboldCpp](https://www.anchorterminal.com/compare/khoj-vs-koboldcpp.md)\n- [Khoj vs Lemonade](https://www.anchorterminal.com/compare/khoj-vs-lemonade.md)\n- [Khoj vs llama.cpp](https://www.anchorterminal.com/compare/khoj-vs-llama-cpp.md)\n- [Khoj vs LM Studio](https://www.anchorterminal.com/compare/khoj-vs-lm-studio.md)\n- [Khoj vs LocalAI](https://www.anchorterminal.com/compare/khoj-vs-localai.md)\n- [Khoj vs MLX LM](https://www.anchorterminal.com/compare/khoj-vs-mlx-lm.md)\n- [Khoj vs Ollama](https://www.anchorterminal.com/compare/khoj-vs-ollama.md)\n- [Khoj vs Open WebUI](https://www.anchorterminal.com/compare/khoj-vs-open-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- [TextGen vs Underdog](https://www.anchorterminal.com/compare/text-generation-webui-vs-underdog.md)\n- [Khoj vs LocalGhost](https://www.anchorterminal.com/compare/khoj-vs-localghost.md)\n- [Khoj vs screenpipe](https://www.anchorterminal.com/compare/khoj-vs-screenpipe.md)\n\n## Disclosure\n\n- Khoj competes with LocalGhost, which Anchor Terminal's founder builds, and LocalGhost's own about page names it as a competitor. 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.\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": "Khoj vs TextGen",
        "url": ""
      }
    ],
    "description": "TextGen scores 45.1 (E) on agent readiness against Khoj's 38.5 (E), and leads in 4 of 7 scored categories. Khoj leads on reliability and transparency \u0026 trust. Both do local inference. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Khoj E 38.5",
      "TextGen E 45.1",
      "scores"
    ],
    "h1": "Khoj vs TextGen",
    "image": "https://www.anchorterminal.com/assets/og/compare-khoj-vs-text-generation-webui.png",
    "path": "/compare/khoj-vs-text-generation-webui",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Khoj vs TextGen for AI agents, E 38.5 vs E 45.1 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui"
  },
  "tokens": {
    "markdown": 2550,
    "slim": 630
  },
  "version": 1
}
