{
  "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.8,
        "grade": "E",
        "agentReady": false,
        "rank": 426,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 10,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 46,
          "maintenance": 19,
          "payments": 60,
          "reliability": 65,
          "schema": 34,
          "security": 29,
          "transparency": 64
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 38.8
          }
        ],
        "editorialScores": {
          "ergonomics": 46,
          "maintenance": 19,
          "payments": 60,
          "reliability": 65,
          "schema": 34,
          "security": 29,
          "transparency": 60
        },
        "provenanceScore": 67
      },
      "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": 67
      },
      "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-04T16:30:51.951568389Z"
          },
          {
            "registry": "pypi",
            "name": "khoj",
            "version": "1.42.10",
            "released": "2025-07-15",
            "seenAt": "2026-10-04T16:30:51.762954646Z"
          }
        ],
        "githubStars": 37560,
        "securityTxt": {
          "url": "https://khoj.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:16:02.115233077Z"
        },
        "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": 200,
            "checkedAt": "2026-10-04T15:45:12.44696744Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c03103b79f52"
          },
          {
            "url": "https://khoj.dev/terms-of-service.html",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:14.556582845Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e08893bf1c28"
          }
        ],
        "updatedAt": "2026-10-04T16:30:51.951568389Z"
      }
    },
    "b": {
      "slug": "ollama",
      "name": "Ollama",
      "vendor": "Ollama Inc.",
      "vendorUrl": "https://ollama.com",
      "kind": "http-api",
      "category": "local-ai",
      "summary": "Open-source model runner for macOS, Windows and Linux, with a local API and a library of downloadable models.",
      "url": "https://www.anchorterminal.com/tools/ollama",
      "markdownUrl": "https://www.anchorterminal.com/tools/ollama.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/ollama.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ollama.json",
      "repo": "https://github.com/ollama/ollama",
      "license": "MIT (server, CLI and desktop app). Ollama Cloud is a closed service under the ollama.com terms, and each model carries its own licence",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "oci",
          "name": "docker.io/ollama/ollama"
        },
        {
          "registry": "pypi",
          "name": "ollama"
        },
        {
          "registry": "npm",
          "name": "ollama"
        }
      ],
      "auth": "none",
      "authNotes": "The local API at http://localhost:11434 takes no credential. It binds 127.0.0.1, answers a foreign Host header with 403 while bound to loopback, and allows cross-origin calls from 127.0.0.1 and 0.0.0.0 unless `OLLAMA_ORIGINS` adds more. Anything that reaches the port can generate, pull, push, create, copy and delete models. Cloud models through the local server need `ollama signin`, which signs requests with the install's own key. Direct calls to https://ollama.com/api and /v1 need a Bearer API key from ollama.com/settings/keys, which doesn't expire and has no scopes, and is revoked from the same page (https://github.com/ollama/ollama/blob/main/docs/api/authentication.mdx).",
      "pricing": "freemium",
      "pricingNotes": "The server, CLI and desktop app are free under MIT with no account. Ollama Cloud has five plans on ollama.com/pricing. Free ($0, starter usage credits, starter models, 1 concurrent request), Pro ($20 a month or $200 a year, $60 of usage credits a month, 3 concurrent requests), Max ($100 a month, $300 of credits, 10 concurrent requests), Team ($500 a month, $1,000 of shared credits, unlimited users) and Enterprise (custom). Usage is priced per model by the token, and the page doesn't say whether the Free plan needs a card (checked 2026-10-03).",
      "priceSummary": "$20 / 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": 181200,
        "npmWeekly": 871543,
        "pypiWeekly": null,
        "asOf": "2026-10-03"
      },
      "docsUrl": "https://docs.ollama.com",
      "llmsTxt": "https://docs.ollama.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/ollama/ollama/main/docs/openapi.yaml",
      "capabilities": [
        "inference.local",
        "inference.open-weights",
        "inference.llm",
        "embed.text",
        "inference.decision",
        "web.search",
        "web.fetch"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "hosted",
        "freemium",
        "no-card",
        "openai-compatible",
        "openapi",
        "llms-txt",
        "docker",
        "go",
        "python",
        "typescript",
        "pre-1.0",
        "no-auth"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 56.6,
        "grade": "C",
        "agentReady": false,
        "rank": 302,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 81,
          "payments": 60,
          "reliability": 53,
          "schema": 79,
          "security": 28,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-03"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-04-29. CERT Polska published CVE-2026-42248 and CVE-2026-42249 (9.8 each). The Windows app accepted downloaded updates without a signature check and took the file name from the server's response, and it installs updates silently, so whoever could answer the update request could run code on the machine. CERT Polska tested 0.12.10 to 0.17.5, and the Windows check stayed a stub returning success until v0.23.3 on 12 May 2026, whose notes list the fix only as `app: harden update flows`. CERT Polska says the maintainers didn't respond with details or the vulnerable range, and Ollama published no advisory. Fixed, but not disclosed by the vendor, -4. https://cert.pl/en/posts/2026/04/CVE-2026-42248/; https://github.com/ollama/ollama/releases/tag/v0.23.3"
        ],
        "verdict": "An OpenAPI 3.1 file for the 15 native operations and llms.txt with 68 links to Markdown pages. No credential on the local API, and any caller that reaches it can pull, push, create and delete models.",
        "strengths": [
          "An OpenAPI 3.1 file for the 15 native operations and llms.txt with 68 links to Markdown pages",
          "Native, OpenAI-compatible and Anthropic-compatible routes on one local port, with `ollama launch` for Claude Code, Codex and OpenCode",
          "28 releases in the 90 days to 3 October 2026, and official Python and JavaScript libraries released on 28 September",
          "Local prompts stay on the machine, and `OLLAMA_NO_CLOUD=1` turns off cloud models and web search",
          "Binds 127.0.0.1 by default and refuses foreign Host headers while bound to loopback"
        ],
        "weaknesses": [
          "No credential on the local API, and any caller that reaches it can pull, push, create and delete models",
          "No GitHub security advisory, against 12 CVEs on NVD since October 2025",
          "The Windows updater installed unsigned files until v0.23.3 on 12 May 2026, fixed under a release note that didn't mention security",
          "The desktop app checks ollama.com every hour with a signed request, even with automatic updates off, and no documented way to stop it",
          "A default context of 4k tokens below 24 GiB of VRAM, where the docs say agents need 64,000"
        ],
        "agentNotes": [
          "Send `\"stream\": false` for one JSON body. The native routes stream NDJSON by default",
          "Set `OLLAMA_CONTEXT_LENGTH=64000` or `options.num_ctx` before agent work. The default is 4k below 24 GiB of VRAM",
          "Back off on a 503. It means the queue (512 by default) is full",
          "Put an authenticating proxy in front before binding past 127.0.0.1. The server checks no credential",
          "Expect model names with a `cloud` tag to run on Ollama's servers. They need `ollama signin` and fail with `OLLAMA_NO_CLOUD=1`"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 56.6
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 81,
          "payments": 60,
          "reliability": 53,
          "schema": 79,
          "security": 28,
          "transparency": 66
        },
        "provenanceScore": 59
      },
      "connect": {
        "install": "curl -fsSL https://ollama.com/install.sh | sh   # macOS and Linux; Windows: irm https://ollama.com/install.ps1 | iex\nollama pull gemma4:e2b",
        "http": "curl http://localhost:11434/api/chat \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"gemma4:e2b\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Say hello in one sentence.\"}],\n    \"stream\": false\n  }'",
        "claudeCode": "ollama launch claude   # or: ANTHROPIC_AUTH_TOKEN=ollama ANTHROPIC_API_KEY=\"\" ANTHROPIC_BASE_URL=http://localhost:11434 claude --model qwen3.5"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/ollama"
      },
      "area": "models",
      "unitPrices": [
        {
          "item": "Ollama Cloud Pro",
          "unit": "month",
          "usd": 20,
          "note": "$60 of usage credits a month, 3 concurrent requests. $200 a year"
        },
        {
          "item": "Ollama Cloud Max",
          "unit": "month",
          "usd": 100,
          "note": "$300 of usage credits a month, 10 concurrent requests"
        },
        {
          "item": "Ollama Cloud Team",
          "unit": "month",
          "usd": 500,
          "note": "$1,000 of shared usage credits a month, unlimited users, 10 concurrent requests"
        }
      ],
      "provenance": {
        "legalEntity": "Ollama Inc.",
        "domain": "ollama.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "https://ollama.com/terms",
        "privacy": "https://ollama.com/privacy",
        "statusPage": "",
        "changelog": "https://github.com/ollama/ollama/releases",
        "securityTxt": "none",
        "checked": "2026-10-03",
        "notes": [
          "The terms (last updated May 2026) name Ollama Inc., under California law with arbitration in San Francisco. The privacy policy was last updated in March 2026.",
          "ollama.com/.well-known/security.txt returns 404. SECURITY.md sends reports to hello@ollama.com.",
          "status.ollama.com doesn't resolve, and we found no other status page for Ollama Cloud.",
          "The API an agent calls runs on the owner's machine, so there's no shared endpoint to check. Ollama Cloud answers at https://ollama.com/api and /v1."
        ],
        "score": 59
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/ollama.json",
      "live": {
        "slug": "ollama",
        "versions": [
          {
            "registry": "github",
            "name": "ollama/ollama",
            "version": "v0.35.1",
            "released": "2026-09-29",
            "seenAt": "2026-10-04T16:34:54.976052119Z"
          },
          {
            "registry": "npm",
            "name": "ollama",
            "version": "0.6.4",
            "seenAt": "2026-10-04T16:34:54.718897973Z"
          },
          {
            "registry": "pypi",
            "name": "ollama",
            "version": "0.6.3",
            "released": "2026-09-29",
            "seenAt": "2026-10-04T16:34:54.611886134Z"
          }
        ],
        "githubStars": 182181,
        "npmWeekly": 899010,
        "pypiWeekly": 3792881,
        "securityTxt": {
          "url": "https://ollama.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:42.667557395Z"
        },
        "llmsTxt": {
          "url": "https://docs.ollama.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:03.78930424Z"
        },
        "domain": {
          "domain": "ollama.com",
          "registered": "2017-05-08",
          "source": "https://rdap.verisign.com/com/v1/domain/ollama.com",
          "checkedAt": "2026-10-04T13:05:52.948193398Z"
        },
        "pages": [
          {
            "url": "https://ollama.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:17.783383878Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "058925ed2fe9"
          },
          {
            "url": "https://ollama.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:19.909311869Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ef2c1d1a23eb"
          }
        ],
        "updatedAt": "2026-10-04T16:34:54.976052119Z"
      }
    },
    "summary": "Ollama has a score of 56.6 (C) against Khoj's 38.8 (E). Both do local inference. The largest gap is maintenance \u0026 community, 62 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/khoj-vs-ollama",
    "json": "https://www.anchorterminal.com/compare/khoj-vs-ollama.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/khoj-vs-ollama.md",
    "slim": "https://www.anchorterminal.com/compare/khoj-vs-ollama.min.md"
  },
  "markdown": "Ollama has a score of 56.6 (C) against Khoj's 38.8 (E). Both do local inference. The largest gap is maintenance \u0026 community, 62 points.\n\n- Khoj: grade E, 38.8/100, rank #426 of 452. Markdown https://www.anchorterminal.com/tools/khoj.md · JSON https://www.anchorterminal.com/api/v1/tools/khoj.json\n- Ollama: grade C, 56.6/100, rank #302 of 452. Markdown https://www.anchorterminal.com/tools/ollama.md · JSON https://www.anchorterminal.com/api/v1/tools/ollama.json\n\n## Which one, for what\n\nPick Khoj for reliability (+12).\n\nPick Ollama for schema \u0026 documentation (+45), agent ergonomics (+29), maintenance \u0026 community (+62).\n\n## Score by category\n\n| Category | Weight | Khoj | Ollama | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 65 | 53 | Khoj +12 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 34 | 79 | Ollama +45 |\n| Agent ergonomics | 13% (16.2 this run) | 46 | 75 | Ollama +29 |\n| Security \u0026 auth | 14% (17.5 this run) | 29 | 28 | Khoj +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 19 | 81 | Ollama +62 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 63 | Khoj +1 |\n| Negative events | ≤15 | -7 | -4 | |\n| **Total** | | **38.8 · E** | **56.6 · C** | |\n\n## Facts side by side\n\n| Fact | Khoj | Ollama |\n| --- | --- | --- |\n| Kind | Model platform | HTTP API |\n| Vendor | Khoj Inc. | Ollama Inc. |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | None |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | AGPL-3.0-or-later | MIT (server, CLI and desktop app). Ollama Cloud is a closed service under the ollama.com terms, and each model carries its own licence |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-03-26 | 2026-10-01 |\n| Popularity | 38k stars | 181k stars, 872k npm/wk |\n| Agent reviews | 1/5 (2) | 2.5/5 (2) |\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**Ollama.** An OpenAPI 3.1 file for the 15 native operations and llms.txt with 68 links to Markdown pages. No credential on the local API, and any caller that reaches it can pull, push, create and delete models.\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### Ollama\n\n1. Send `\"stream\": false` for one JSON body. The native routes stream NDJSON by default\n2. Set `OLLAMA_CONTEXT_LENGTH=64000` or `options.num_ctx` before agent work. The default is 4k below 24 GiB of VRAM\n3. Back off on a 503. It means the queue (512 by default) is full\n4. Put an authenticating proxy in front before binding past 127.0.0.1. The server checks no credential\n5. Expect model names with a `cloud` tag to run on Ollama's servers. They need `ollama signin` and fail with `OLLAMA_NO_CLOUD=1`\n\n## Other comparisons with Khoj or Ollama\n\n- [AnythingLLM vs Khoj](https://www.anchorterminal.com/compare/anythingllm-vs-khoj.md)\n- [AnythingLLM vs Ollama](https://www.anchorterminal.com/compare/anythingllm-vs-ollama.md)\n- [GPT4All vs Khoj](https://www.anchorterminal.com/compare/gpt4all-vs-khoj.md)\n- [GPT4All vs Ollama](https://www.anchorterminal.com/compare/gpt4all-vs-ollama.md)\n- [Jan vs Khoj](https://www.anchorterminal.com/compare/jan-vs-khoj.md)\n- [Jan vs Ollama](https://www.anchorterminal.com/compare/jan-vs-ollama.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 Open WebUI](https://www.anchorterminal.com/compare/khoj-vs-open-webui.md)\n- [llama.cpp vs Ollama](https://www.anchorterminal.com/compare/llama-cpp-vs-ollama.md)\n- [LM Studio vs Ollama](https://www.anchorterminal.com/compare/lm-studio-vs-ollama.md)\n- [LocalAI vs Ollama](https://www.anchorterminal.com/compare/localai-vs-ollama.md)\n- [Ollama vs Open WebUI](https://www.anchorterminal.com/compare/ollama-vs-open-webui.md)\n- [Ollama vs screenpipe](https://www.anchorterminal.com/compare/ollama-vs-screenpipe.md)\n- [Ollama vs Underdog](https://www.anchorterminal.com/compare/ollama-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-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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 Ollama",
        "url": ""
      }
    ],
    "description": "Ollama has a score of 56.6 (C) against Khoj's 38.8 (E). Both do local inference. The largest gap is maintenance \u0026 community, 62 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Khoj E 38.8",
      "Ollama C 56.6",
      "scores"
    ],
    "h1": "Khoj vs Ollama",
    "image": "https://www.anchorterminal.com/assets/og/compare-khoj-vs-ollama.png",
    "path": "/compare/khoj-vs-ollama",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Khoj vs Ollama for AI agents, E 38.8 vs C 56.6 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/khoj-vs-ollama"
  },
  "tokens": {
    "markdown": 1650,
    "slim": 330
  },
  "version": 1
}
