{
  "data": {
    "a": {
      "slug": "jan",
      "name": "Jan",
      "vendor": "Menlo Research",
      "vendorUrl": "https://jan.ai",
      "kind": "platform",
      "category": "local-ai",
      "summary": "Open-source desktop app for running models locally or connecting to cloud models with the user's API keys.",
      "url": "https://www.anchorterminal.com/tools/jan",
      "markdownUrl": "https://www.anchorterminal.com/tools/jan.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/jan.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/jan.json",
      "repo": "https://github.com/janhq/jan",
      "license": "Apache-2.0",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "api-key",
      "authNotes": "The Local API Server takes one optional key set in Settings, empty by default, sent as `Authorization: Bearer` or `X-Api-Key`. There are no scopes and no keys per client. It binds to 127.0.0.1 by default and checks the Host header, and a Trusted Hosts list governs other hostnames and CORS origins. In 0.8.4 a 0.0.0.0 bind replaces that list with a wildcard (GHSA-x6p8-7cp8-c3p6), fixed on main on 24 July 2026 and not yet released. `jan serve` takes `--api-key`, empty by default. Cloud provider keys sit in the OS keyring since 0.8.4.",
      "pricing": "free",
      "pricingNotes": "Free and Apache-2.0, with no account and nothing to buy. Cloud models are paid to the provider with the owner's key (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": 44800,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-03"
      },
      "docsUrl": "https://www.jan.ai/docs/desktop/api-server",
      "openapi": "https://raw.githubusercontent.com/janhq/jan/main/src-tauri/static/openapi.json",
      "capabilities": [
        "inference.local",
        "inference.open-weights",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "local",
        "free",
        "no-card",
        "account-free",
        "openai-compatible",
        "openapi",
        "open-weights",
        "streaming",
        "pre-1.0"
      ],
      "lastRelease": "2026-07-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 51.3,
        "grade": "D",
        "agentReady": false,
        "rank": 672,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 14,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 46,
          "maintenance": 47,
          "payments": 60,
          "reliability": 68,
          "schema": 56,
          "security": 43,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-03"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-07-24. GHSA-x6p8-7cp8-c3p6. In 0.8.4, the current release, binding the Local API Server to 0.0.0.0 replaces the Trusted Hosts list with a wildcard, so any Host header is accepted and any Origin reflected with credentials allowed, which with the default empty key lets any web page the owner visits call the server. The fix landed on main on 24 July 2026, no release carries it 71 days later, and the advisory isn't published. It needs a setting the docs flag as risky, -4. https://github.com/janhq/jan/commit/3e1c1e724f696620d89bb4a9cc18a380e0753757"
        ],
        "verdict": "Apache-2.0, with installers for macOS, Windows and Linux plus Flathub and the Microsoft Store. No release since 0.8.4 on 23 July 2026, while a security fix waits on main.",
        "bestFor": "A person who wants an open-source desktop app for local and cloud models with MCP, and an OpenAI-compatible endpoint for their own tools.",
        "strengths": [
          "Apache-2.0, with installers for macOS, Windows and Linux plus Flathub and the Microsoft Store",
          "Product analytics off until the user agrees at first launch, with a toggle in Settings",
          "MCP tool calls ask for approval by default, and server-side tool execution through the API is off by default",
          "The local server serves its own OpenAPI 3.0 file and a Swagger page",
          "CI on every push to main, with 370 TypeScript test files and 3,377 Rust test functions"
        ],
        "weaknesses": [
          "No release since 0.8.4 on 23 July 2026, while a security fix waits on main",
          "One optional API key with no scopes, empty by default",
          "In 0.8.4 a 0.0.0.0 bind ignores Trusted Hosts and reflects any Origin (GHSA-x6p8-7cp8-c3p6)",
          "New Hugging Face downloads go through Menlo's mirror at apps.jan.ai, which neither privacy page mentions",
          "No llms.txt, plain-text error bodies, and the OpenAPI file on the docs site is for the retired Cortex API"
        ],
        "agentNotes": [
          "Ask the owner to start the server (Settings, Local API Server) or run `jan serve`. Nothing listens until then",
          "Call http://127.0.0.1:1337/v1 for the app and localhost:6767/v1 for `jan serve`. The ports differ",
          "Read /openapi.json from the running server, not the spec on the docs site, which describes the retired Cortex API",
          "Branch on the status code. Error bodies are plain text",
          "Keep the bind at 127.0.0.1 on 0.8.4. Trusted Hosts is ignored on 0.0.0.0 until the next release"
        ],
        "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": 51.3
          }
        ],
        "editorialScores": {
          "ergonomics": 46,
          "maintenance": 47,
          "payments": 60,
          "reliability": 68,
          "schema": 56,
          "security": 43,
          "transparency": 66
        },
        "provenanceScore": 69
      },
      "connect": {
        "install": "flatpak install flathub ai.jan.Jan   # or the macOS, Windows and Linux installers at https://jan.ai",
        "http": "curl http://127.0.0.1:1337/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer secret-key-123\" \\\n  -d '{\"model\": \"YOUR_MODEL_ID\", \"messages\": [{\"role\": \"user\", \"content\": \"Tell me a joke.\"}]}'",
        "claudeCode": "jan launch claude --model janhq/Jan-code-4b-gguf",
        "headless": {
          "command": "jan serve janhq/Jan-code-4b-gguf --detach"
        }
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/jan"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "Menlo Research Pte Ltd",
        "domain": "jan.ai",
        "domainRegistered": "2017-12-16",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "https://www.jan.ai/docs/desktop/privacy-policy",
        "statusPage": "",
        "changelog": "https://www.jan.ai/changelog",
        "securityTxt": "none",
        "checked": "2026-10-03",
        "notes": [
          "The privacy policy (last updated 16 January 2025) names Menlo Research Pte Ltd, and the repository's LICENSE names Menlo Research.",
          "We found no terms of use on jan.ai or in the docs source.",
          "jan.ai/.well-known/security.txt returns 404. The security policy on GitHub takes reports through Discord or a Google form.",
          "RDAP for jan.ai gives a registration date of 2017-12-16.",
          "There's no hosted endpoint. The server answers on the owner's machine, at 127.0.0.1:1337 by default."
        ],
        "score": 69
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/jan.json",
      "live": {
        "slug": "jan",
        "versions": [
          {
            "registry": "github",
            "name": "janhq/jan",
            "version": "v0.8.5",
            "released": "2026-10-08",
            "seenAt": "2026-10-08T16:17:15.879331531Z"
          }
        ],
        "githubStars": 44851,
        "securityTxt": {
          "url": "https://jan.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:52.885837506Z"
        },
        "domain": {
          "domain": "jan.ai",
          "registered": "2017-12-16",
          "source": "https://rdap.identitydigital.services/rdap/domain/jan.ai",
          "checkedAt": "2026-10-04T13:05:50.9111837Z"
        },
        "pages": [
          {
            "url": "https://www.jan.ai/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:28:34.483654285Z",
            "changedAt": "2026-10-08T18:28:34.483654285Z",
            "fingerprint": "f510b8593d9d"
          },
          {
            "url": "https://www.jan.ai/docs/desktop/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:28:36.595444131Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b042b8460c35"
          }
        ],
        "updatedAt": "2026-10-08T18:28:36.595444131Z"
      }
    },
    "answer": "MLX LM and Jan score within a point of each other on agent readiness, 52.2 (D) and 51.3 (D). Jan leads on schema \u0026 documentation and security \u0026 auth.",
    "b": {
      "slug": "mlx-lm",
      "name": "MLX LM",
      "vendor": "Apple Inc.",
      "vendorUrl": "https://opensource.apple.com/projects/mlx/",
      "kind": "http-api",
      "category": "local-ai",
      "summary": "Open-source Python package and command-line tools from Apple's MLX team for running, quantising and fine-tuning language models on Apple silicon. `mlx_lm.server` exposes a local HTTP API modelled on OpenAI's chat completions.",
      "url": "https://www.anchorterminal.com/tools/mlx-lm",
      "markdownUrl": "https://www.anchorterminal.com/tools/mlx-lm.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mlx-lm.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mlx-lm.json",
      "repo": "https://github.com/ml-explore/mlx-lm",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "mlx-lm"
        }
      ],
      "auth": "none",
      "authNotes": "No credential, and no option to add one. `mlx_lm.server` binds 127.0.0.1:8080 by default, and `--allowed-origins` defaults to `*`, so any origin's requests are answered. Access control is left to the network or a proxy in front (https://github.com/ml-explore/mlx-lm/blob/main/mlx_lm/SERVER.md).",
      "pricing": "free",
      "pricingNotes": "Free under MIT, with no account, key or card. Nothing is sold. The owner pays for the hardware and electricity.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 7300,
        "npmWeekly": null,
        "pypiWeekly": 139915,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://github.com/ml-explore/mlx-lm/blob/main/mlx_lm/SERVER.md",
      "capabilities": [
        "inference.local",
        "inference.open-weights"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "free",
        "no-card",
        "openai-compatible",
        "python",
        "pre-1.0",
        "no-auth",
        "no-telemetry"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 52.2,
        "grade": "D",
        "agentReady": false,
        "rank": 657,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 12,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 54,
          "maintenance": 61,
          "payments": 60,
          "reliability": 66,
          "schema": 37,
          "security": 32,
          "transparency": 66
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "MIT, with no telemetry found in the source, and the tests passed on the last eight pushes to main. `mlx_lm.server` has no API key option, answers any origin by default and loads whichever model a request names, and its own docs say it is not recommended for production.",
        "bestFor": "An owner with an Apple silicon Mac who wants MLX-format models, local fine-tuning and quantisation from Python or the command line, with a simple local chat completions server.",
        "strengths": [
          "MIT, with no telemetry, analytics or update check found in the source",
          "Installs from PyPI (`mlx-lm` 0.32.0, Python 3.11 or later) and conda-forge, with releases published to PyPI by trusted publishing from a GitHub workflow",
          "The Build and Test workflow passed on the last eight pushes to main, with 21 test files run on a macOS runner",
          "`mlx_lm.server` binds 127.0.0.1:8080 by default, caps output at 512 tokens unless told otherwise and validates field types and ranges with a 400",
          "127 commits from 82 authors on main in the 90 days to 8 October 2026"
        ],
        "weaknesses": [
          "`mlx_lm.server` has no API key or other credential option, and `--allowed-origins` defaults to `*`",
          "A request's `model` and `adapters` fields make the server download or load any Hugging Face repository or local path, with no allow-list (open issue #1892)",
          "The docs and a start-up warning say the server is not recommended for production because it has only basic security checks",
          "No OpenAPI file or llms.txt, and `SERVER.md` leaves out `tools`, `seed`, `/health` and the error responses",
          "One PyPI release in 90 days (0.32.0 on 1 October 2026, the first since 0.31.3 on 22 April), and the version is still 0.x"
        ],
        "agentNotes": [
          "Keep `mlx_lm.server` on 127.0.0.1 and pass `--allowed-origins` with the origins you trust. There is no API key, and the default answers every origin",
          "Treat any caller as able to load any model. The `model` and `adapters` request fields accept any Hugging Face repository or local path",
          "Send `max_tokens` or `max_completion_tokens` when you need more than 512 tokens, the server default",
          "Read errors as `{\"error\": \"\u003ctext\u003e\"}` with 400 for a bad field and 404 for a model that failed to load. They are not OpenAI error objects",
          "Poll `GET /health` before the first request. It answers 503 with `unavailable` when the generation thread has stopped"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 52.2
          }
        ],
        "editorialScores": {
          "ergonomics": 54,
          "maintenance": 61,
          "payments": 60,
          "reliability": 66,
          "schema": 37,
          "security": 32,
          "transparency": 65
        },
        "provenanceScore": 67
      },
      "connect": {
        "install": "pip install mlx-lm\nmlx_lm.server --model mlx-community/Mistral-7B-Instruct-v0.3-4bit   # listens on 127.0.0.1:8080",
        "http": "curl localhost:8080/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n     \"messages\": [{\"role\": \"user\", \"content\": \"Say this is a test!\"}],\n     \"temperature\": 0.7\n   }'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/mlx-lm"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "Apple Inc.",
        "domain": "apple.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/ml-explore/mlx-lm/releases",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The `LICENSE` file reads Copyright 2023 Apple Inc., and the package author on PyPI is MLX Contributors at a group.apple.com address. The repository sits in GitHub's ml-explore organisation and has no website of its own.",
          "opensource.apple.com/projects/mlx describes the MLX framework and does not name MLX LM. Its footer links Apple's website terms and general privacy policy, which do not govern this software, so terms and privacy are left empty.",
          "www.apple.com/.well-known/security.txt is valid until 6 October 2027 and is Apple's corporate file. The repository's own policy takes reports through GitHub private vulnerability reporting.",
          "There is no shared hosted endpoint. The server runs on the owner's machine."
        ],
        "score": 67
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mlx-lm.json"
    },
    "facts": [
      {
        "a": "Model platform",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Menlo Research",
        "b": "Apple Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-07-23",
        "b": "2026-10-01",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2025-01-16",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "45k stars",
        "b": "7.3k stars, 140k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "2/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "MLX LM and Jan score within a point of each other on agent readiness, 52.2 (D) and 51.3 (D). Jan leads on schema \u0026 documentation and security \u0026 auth.",
        "question": "Which is better for AI agents, Jan or MLX LM?"
      },
      {
        "answer": "No hosted endpoint is listed for Jan. No hosted endpoint is listed for MLX LM.",
        "question": "Can an agent call Jan and MLX LM without installing anything?"
      },
      {
        "answer": "Yes. Jan is open source (Apache-2.0). MLX LM is open source (MIT).",
        "question": "Are Jan and MLX LM open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 56 against 37",
          "Security \u0026 auth, 43 against 32"
        ],
        "also": null,
        "goodFor": "A person who wants an open-source desktop app for local and cloud models with MCP, and an OpenAI-compatible endpoint for their own tools.",
        "slug": "jan",
        "watchFor": "No release since 0.8.4 on 23 July 2026, while a security fix waits on main"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 54 against 46",
          "Maintenance \u0026 community, 61 against 47"
        ],
        "also": [
          "No key needed to call it",
          "No incidents deducted, where Jan loses 4 points for them"
        ],
        "goodFor": "An owner with an Apple silicon Mac who wants MLX-format models, local fine-tuning and quantisation from Python or the command line, with a simple local chat completions server.",
        "slug": "mlx-lm",
        "watchFor": "`mlx_lm.server` has no API key or other credential option, and `--allowed-origins` defaults to `*`"
      }
    ],
    "job": {
      "capability": "inference.local",
      "name": "Local inference"
    },
    "others": [
      {
        "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-mlx-lm.json",
        "title": "AnythingLLM vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-model-runner-vs-jan.json",
        "title": "Docker Model Runner vs Jan",
        "url": "https://www.anchorterminal.com/compare/docker-model-runner-vs-jan"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-model-runner-vs-mlx-lm.json",
        "title": "Docker Model Runner vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/docker-model-runner-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foundry-local-vs-jan.json",
        "title": "Foundry Local vs Jan",
        "url": "https://www.anchorterminal.com/compare/foundry-local-vs-jan"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foundry-local-vs-mlx-lm.json",
        "title": "Foundry Local vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/foundry-local-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-core-vs-jan.json",
        "title": "Core vs Jan",
        "url": "https://www.anchorterminal.com/compare/ghost-core-vs-jan"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-core-vs-mlx-lm.json",
        "title": "Core vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/ghost-core-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gpt4all-vs-jan.json",
        "title": "GPT4All vs Jan",
        "url": "https://www.anchorterminal.com/compare/gpt4all-vs-jan"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gpt4all-vs-mlx-lm.json",
        "title": "GPT4All vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/gpt4all-vs-mlx-lm"
      },
      {
        "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-koboldcpp.json",
        "title": "Jan vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/jan-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-lemonade.json",
        "title": "Jan vs Lemonade",
        "url": "https://www.anchorterminal.com/compare/jan-vs-lemonade"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-llama-cpp.json",
        "title": "Jan vs llama.cpp",
        "url": "https://www.anchorterminal.com/compare/jan-vs-llama-cpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-lm-studio.json",
        "title": "Jan vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/jan-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-localai.json",
        "title": "Jan vs LocalAI",
        "url": "https://www.anchorterminal.com/compare/jan-vs-localai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-ollama.json",
        "title": "Jan vs Ollama",
        "url": "https://www.anchorterminal.com/compare/jan-vs-ollama"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-open-webui.json",
        "title": "Jan vs Open WebUI",
        "url": "https://www.anchorterminal.com/compare/jan-vs-open-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-screenpipe.json",
        "title": "Jan vs screenpipe",
        "url": "https://www.anchorterminal.com/compare/jan-vs-screenpipe"
      },
      {
        "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-mlx-lm.json",
        "title": "Khoj vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-mlx-lm.json",
        "title": "KoboldCpp vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lemonade-vs-mlx-lm.json",
        "title": "Lemonade vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/lemonade-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llama-cpp-vs-mlx-lm.json",
        "title": "llama.cpp vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/llama-cpp-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lm-studio-vs-mlx-lm.json",
        "title": "LM Studio vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/localai-vs-mlx-lm.json",
        "title": "LocalAI vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/localai-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mlx-lm-vs-ollama.json",
        "title": "MLX LM vs Ollama",
        "url": "https://www.anchorterminal.com/compare/mlx-lm-vs-ollama"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mlx-lm-vs-open-webui.json",
        "title": "MLX LM vs Open WebUI",
        "url": "https://www.anchorterminal.com/compare/mlx-lm-vs-open-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mlx-lm-vs-screenpipe.json",
        "title": "MLX LM vs screenpipe",
        "url": "https://www.anchorterminal.com/compare/mlx-lm-vs-screenpipe"
      },
      {
        "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/jan-vs-underdog.json",
        "title": "Jan vs Underdog",
        "url": "https://www.anchorterminal.com/compare/jan-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mlx-lm-vs-underdog.json",
        "title": "MLX LM vs Underdog",
        "url": "https://www.anchorterminal.com/compare/mlx-lm-vs-underdog"
      }
    ],
    "scores": [
      {
        "by": 2,
        "edge": "jan",
        "jan": 68,
        "key": "reliability",
        "mlx-lm": 66,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 19,
        "edge": "jan",
        "jan": 56,
        "key": "schema",
        "mlx-lm": 37,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 8,
        "edge": "mlx-lm",
        "jan": 46,
        "key": "ergonomics",
        "mlx-lm": 54,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 11,
        "edge": "jan",
        "jan": 43,
        "key": "security",
        "mlx-lm": 32,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "jan": 60,
        "key": "payments",
        "mlx-lm": 60,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 14,
        "edge": "mlx-lm",
        "jan": 47,
        "key": "maintenance",
        "mlx-lm": 61,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 2,
        "edge": "jan",
        "jan": 68,
        "key": "transparency",
        "mlx-lm": 66,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "MLX LM and Jan score within a point of each other on agent readiness, 52.2 (D) and 51.3 (D). Jan leads on schema \u0026 documentation and security \u0026 auth. Both do local inference.",
    "verdicts": {
      "jan": "Apache-2.0, with installers for macOS, Windows and Linux plus Flathub and the Microsoft Store. No release since 0.8.4 on 23 July 2026, while a security fix waits on main.",
      "mlx-lm": "MIT, with no telemetry found in the source, and the tests passed on the last eight pushes to main. `mlx_lm.server` has no API key option, answers any origin by default and loads whichever model a request names, and its own docs say it is not recommended for production."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/jan-vs-mlx-lm",
    "json": "https://www.anchorterminal.com/compare/jan-vs-mlx-lm.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/jan-vs-mlx-lm.md",
    "slim": "https://www.anchorterminal.com/compare/jan-vs-mlx-lm.min.md"
  },
  "markdown": "MLX LM and Jan score within a point of each other on agent readiness, 52.2 (D) and 51.3 (D). Jan leads on schema \u0026 documentation and security \u0026 auth. Both do local inference.\n\n- Jan: grade D, 51.3/100, rank #672 of 842. Markdown https://www.anchorterminal.com/tools/jan.md · JSON https://www.anchorterminal.com/api/v1/tools/jan.json\n- MLX LM: grade D, 52.2/100, rank #657 of 842. Markdown https://www.anchorterminal.com/tools/mlx-lm.md · JSON https://www.anchorterminal.com/api/v1/tools/mlx-lm.json\n\n## Which one, for what\n\n### Jan (D)\n\nGood for: A person who wants an open-source desktop app for local and cloud models with MCP, and an OpenAI-compatible endpoint for their own tools.\n\nAhead on:\n- Schema \u0026 documentation, 56 against 37\n- Security \u0026 auth, 43 against 32\n\nWatch for: No release since 0.8.4 on 23 July 2026, while a security fix waits on main\n\n### MLX LM (D)\n\nGood for: An owner with an Apple silicon Mac who wants MLX-format models, local fine-tuning and quantisation from Python or the command line, with a simple local chat completions server.\n\nAhead on:\n- Agent ergonomics, 54 against 46\n- Maintenance \u0026 community, 61 against 47\n\nAlso in its favour:\n- No key needed to call it\n- No incidents deducted, where Jan loses 4 points for them\n\nWatch for: `mlx_lm.server` has no API key or other credential option, and `--allowed-origins` defaults to `*`\n\n\n## Score by category\n\n| Category | Weight | Jan | MLX LM | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 66 | Jan +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 56 | 37 | Jan +19 |\n| Agent ergonomics | 13% (16.2 this run) | 46 | 54 | MLX LM +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 43 | 32 | Jan +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) | 47 | 61 | MLX LM +14 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 66 | Jan +2 |\n| Negative events | ≤15 | -4 | 0 | |\n| **Total** | | **51.3 · D** | **52.2 · D** | |\n\n## Facts side by side\n\n| Fact | Jan | MLX LM |\n| --- | --- | --- |\n| Kind | Model platform | HTTP API |\n| Vendor | Menlo Research | Apple Inc. |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Apache-2.0 | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-07-23 | 2026-10-01 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | 2025-01-16 | no document linked |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 45k stars | 7.3k stars, 140k PyPI/wk |\n| Agent reviews | 2/5 (2) | none |\n\n## Verdicts\n\n**Jan.** Apache-2.0, with installers for macOS, Windows and Linux plus Flathub and the Microsoft Store. No release since 0.8.4 on 23 July 2026, while a security fix waits on main.\n\n**MLX LM.** MIT, with no telemetry found in the source, and the tests passed on the last eight pushes to main. `mlx_lm.server` has no API key option, answers any origin by default and loads whichever model a request names, and its own docs say it is not recommended for production.\n\n## Before you call either\n\n### Jan\n\n1. Ask the owner to start the server (Settings, Local API Server) or run `jan serve`. Nothing listens until then\n2. Call http://127.0.0.1:1337/v1 for the app and localhost:6767/v1 for `jan serve`. The ports differ\n3. Read /openapi.json from the running server, not the spec on the docs site, which describes the retired Cortex API\n4. Branch on the status code. Error bodies are plain text\n5. Keep the bind at 127.0.0.1 on 0.8.4. Trusted Hosts is ignored on 0.0.0.0 until the next release\n\n### MLX LM\n\n1. Keep `mlx_lm.server` on 127.0.0.1 and pass `--allowed-origins` with the origins you trust. There is no API key, and the default answers every origin\n2. Treat any caller as able to load any model. The `model` and `adapters` request fields accept any Hugging Face repository or local path\n3. Send `max_tokens` or `max_completion_tokens` when you need more than 512 tokens, the server default\n4. Read errors as `{\"error\": \"\u003ctext\u003e\"}` with 400 for a bad field and 404 for a model that failed to load. They are not OpenAI error objects\n5. Poll `GET /health` before the first request. It answers 503 with `unavailable` when the generation thread has stopped\n\n## Questions\n\n### Which is better for AI agents, Jan or MLX LM?\n\nMLX LM and Jan score within a point of each other on agent readiness, 52.2 (D) and 51.3 (D). Jan leads on schema \u0026 documentation and security \u0026 auth.\n\n### Can an agent call Jan and MLX LM without installing anything?\n\nNo hosted endpoint is listed for Jan. No hosted endpoint is listed for MLX LM.\n\n### Are Jan and MLX LM open source?\n\nYes. Jan is open source (Apache-2.0). MLX LM is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/jan-vs-mlx-lm.json, and with the fewest tokens: https://www.anchorterminal.com/compare/jan-vs-mlx-lm.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"jan\", \"b\": \"mlx-lm\"}`. From a terminal: `anchor compare jan mlx-lm`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/jan.json and https://www.anchorterminal.com/api/v1/tools/mlx-lm.json\n\n## Other comparisons with Jan or MLX LM\n\n- [AnythingLLM vs Jan](https://www.anchorterminal.com/compare/anythingllm-vs-jan.md)\n- [AnythingLLM vs MLX LM](https://www.anchorterminal.com/compare/anythingllm-vs-mlx-lm.md)\n- [Docker Model Runner vs Jan](https://www.anchorterminal.com/compare/docker-model-runner-vs-jan.md)\n- [Docker Model Runner vs MLX LM](https://www.anchorterminal.com/compare/docker-model-runner-vs-mlx-lm.md)\n- [Foundry Local vs Jan](https://www.anchorterminal.com/compare/foundry-local-vs-jan.md)\n- [Foundry Local vs MLX LM](https://www.anchorterminal.com/compare/foundry-local-vs-mlx-lm.md)\n- [Core vs Jan](https://www.anchorterminal.com/compare/ghost-core-vs-jan.md)\n- [Core vs MLX LM](https://www.anchorterminal.com/compare/ghost-core-vs-mlx-lm.md)\n- [GPT4All vs Jan](https://www.anchorterminal.com/compare/gpt4all-vs-jan.md)\n- [GPT4All vs MLX LM](https://www.anchorterminal.com/compare/gpt4all-vs-mlx-lm.md)\n- [Jan vs Khoj](https://www.anchorterminal.com/compare/jan-vs-khoj.md)\n- [Jan vs KoboldCpp](https://www.anchorterminal.com/compare/jan-vs-koboldcpp.md)\n- [Jan vs Lemonade](https://www.anchorterminal.com/compare/jan-vs-lemonade.md)\n- [Jan vs llama.cpp](https://www.anchorterminal.com/compare/jan-vs-llama-cpp.md)\n- [Jan vs LM Studio](https://www.anchorterminal.com/compare/jan-vs-lm-studio.md)\n- [Jan vs LocalAI](https://www.anchorterminal.com/compare/jan-vs-localai.md)\n- [Jan vs Ollama](https://www.anchorterminal.com/compare/jan-vs-ollama.md)\n- [Jan vs Open WebUI](https://www.anchorterminal.com/compare/jan-vs-open-webui.md)\n- [Jan vs screenpipe](https://www.anchorterminal.com/compare/jan-vs-screenpipe.md)\n- [Jan vs TextGen](https://www.anchorterminal.com/compare/jan-vs-text-generation-webui.md)\n- [Khoj vs MLX LM](https://www.anchorterminal.com/compare/khoj-vs-mlx-lm.md)\n- [KoboldCpp vs MLX LM](https://www.anchorterminal.com/compare/koboldcpp-vs-mlx-lm.md)\n- [Lemonade vs MLX LM](https://www.anchorterminal.com/compare/lemonade-vs-mlx-lm.md)\n- [llama.cpp vs MLX LM](https://www.anchorterminal.com/compare/llama-cpp-vs-mlx-lm.md)\n- [LM Studio vs MLX LM](https://www.anchorterminal.com/compare/lm-studio-vs-mlx-lm.md)\n- [LocalAI vs MLX LM](https://www.anchorterminal.com/compare/localai-vs-mlx-lm.md)\n- [MLX LM vs Ollama](https://www.anchorterminal.com/compare/mlx-lm-vs-ollama.md)\n- [MLX LM vs Open WebUI](https://www.anchorterminal.com/compare/mlx-lm-vs-open-webui.md)\n- [MLX LM vs screenpipe](https://www.anchorterminal.com/compare/mlx-lm-vs-screenpipe.md)\n- [MLX LM vs TextGen](https://www.anchorterminal.com/compare/mlx-lm-vs-text-generation-webui.md)\n- [Jan vs Underdog](https://www.anchorterminal.com/compare/jan-vs-underdog.md)\n- [MLX LM vs Underdog](https://www.anchorterminal.com/compare/mlx-lm-vs-underdog.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": "Jan vs MLX LM",
        "url": ""
      }
    ],
    "description": "MLX LM and Jan score within a point of each other on agent readiness, 52.2 (D) and 51.3 (D). Jan leads on schema \u0026 documentation and security \u0026 auth. Both do local inference. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Jan D 51.3",
      "MLX LM D 52.2",
      "scores"
    ],
    "h1": "Jan vs MLX LM",
    "image": "https://www.anchorterminal.com/assets/og/compare-jan-vs-mlx-lm.png",
    "path": "/compare/jan-vs-mlx-lm",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Jan vs MLX LM for AI agents, D 51.3 vs D 52.2 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/jan-vs-mlx-lm"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 530
  },
  "version": 1
}
