{
  "data": {
    "a": {
      "slug": "berth",
      "name": "Berth",
      "vendor": "Trevin Tindall (T-Crypt on GitHub)",
      "vendorUrl": "https://github.com/T-Crypt",
      "kind": "http-api",
      "category": "local-ai",
      "summary": "Berth is an open-source Go daemon and CLI that leases one GPU to local inference engines, image pipelines and games in turn, with a priority queue, measured VRAM handoffs and a preview OpenAI-compatible gateway on loopback.",
      "url": "https://www.anchorterminal.com/tools/berth",
      "markdownUrl": "https://www.anchorterminal.com/tools/berth.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/berth.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/berth.json",
      "repo": "https://github.com/T-Crypt/berth",
      "license": "Apache-2.0. The Berth name, the Pilot mascot and the artwork in assets/ are excluded from the licence, per the NOTICE file",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "go",
          "name": "github.com/T-Crypt/berth"
        }
      ],
      "auth": "api-key",
      "authNotes": "The gateway (`berth gateway`, 127.0.0.1:9799) takes one bearer key on every API route. The key is created on first use in `~/.config/berth/api.key` with mode 600, a group- or world-readable file is refused, `berth key` prints it, and the comparison is constant-time. The gateway binds loopback only, refuses non-loopback Host names and any request with a browser Origin. The key has no scopes and no documented rotation command. The daemon itself answers on a Unix socket with mode 600 in a 700 directory, so only the owning user can lease the card. The harbor web UI (127.0.0.1:9798) is read-only with no login, and its actions need a device paired with `berth pair`. The wake page and the optional `--comfyui-listen` port take no key by design.",
      "pricing": "free",
      "pricingNotes": "Free under Apache-2.0 with nothing to buy and no account. No hosted service.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the docs or the changelog (checked 2026-10-28). Nothing is sold.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 245,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-28"
      },
      "docsUrl": "https://t-crypt.github.io/berth/",
      "capabilities": [
        "inference.local",
        "compute.gpu"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "free",
        "no-card",
        "apache-2.0",
        "openai-compatible",
        "go",
        "cli",
        "linux",
        "windows",
        "gpu",
        "agent-skill",
        "alpha",
        "pre-1.0",
        "new"
      ],
      "lastRelease": "2026-10-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.6,
        "grade": "B",
        "agentReady": false,
        "rank": 283,
        "ranked": true,
        "rankOf": 1218,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 76,
          "payments": 60,
          "reliability": 76,
          "schema": 69,
          "security": 51,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-28"
        },
        "negative": 0,
        "verdict": "Berth coordinates one NVIDIA card between engines, ComfyUI and games, grants a lease only after the driver shows memory free, and gives agents a skill, JSON output and a keyed loopback gateway. It is 17 days old, alpha and maintained by one developer, with Windows and AMD experimental and no machine-readable API spec.",
        "bestFor": "Someone running several GPU programs (llama.cpp, llama-swap, Ollama, vLLM, ComfyUI, games) on one NVIDIA card who wants them to take turns, and agents that need to ask for the card.",
        "strengths": [
          "A lease is granted only after the driver shows the previous holder's memory free, and processes it did not start are reported, never killed",
          "Every reporting command takes `--format json|yaml`, with results on stdout and exit codes 0, 1, 2 and 75 by one documented rule",
          "Gateway failures return 503 with Retry-After and a machine code such as `outranked`, `engine_oom` or `no_headroom`",
          "CI builds, vets, lints and tests on Linux and Windows, and releases publish SHA256SUMS that `berth update` checks",
          "Apache-2.0, no account and no telemetry upload, with the one GitHub update check documented and switchable off"
        ],
        "weaknesses": [
          "First released on 11 October 2026 and called alpha. Windows, AMD and multiple GPUs are experimental, and the gateway is a preview",
          "One bearer key with no scopes or documented rotation controls every gateway route, including switch and stop",
          "No OpenAPI file or llms.txt. The gateway's own routes are documented in Markdown with curl examples",
          "No SECURITY.md, security.txt or disclosure route, and the harbor has no login when bound past loopback",
          "Linux and NVIDIA only for full support, through nvidia-smi. Intel and Apple GPUs are not supported"
        ],
        "agentNotes": [
          "Run `berth status --format json` before starting, stopping or switching any GPU engine. If berthd is unreachable, no engine is protected",
          "Never kill a process to free VRAM. Ask for the card with `berth run`, `berth hold` or a gateway request, and report stowaways to the user",
          "Send gateway requests to http://127.0.0.1:9799/v1 with `Authorization: Bearer $(berth key)`, and use `\"stream\": true` for cold starts of up to minutes",
          "On a 503, read the `code` and wait for `Retry-After`. A pinned holder (a game or `berth hold`) answers 409 to stop and is the user's call",
          "Ask the user before `berth reclaim LEASE --yes`, any berth.toml edit or `berth update`. Each changes the node"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.6
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 76,
          "payments": 60,
          "reliability": 76,
          "schema": 69,
          "security": 51,
          "transparency": 74
        },
        "provenanceScore": 61,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-28",
            "maintenance": "2026-10-28",
            "payments": "2026-10-28",
            "reliability": "2026-10-28",
            "schema": "2026-10-28",
            "security": "2026-10-28",
            "transparency": "2026-10-28"
          },
          "last": "2026-10-28",
          "oldest": "2026-10-28",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "go install github.com/T-Crypt/berth/cmd/berth@latest      # or a release binary checked against SHA256SUMS\nberth service install --harbor\nberth status\nberth run --as llama --priority foreground -- llama-server -m model.gguf --port 8080",
        "http": "curl -s http://127.0.0.1:9799/v1/berth/board -H \"Authorization: Bearer $(berth key)\"",
        "claudeCode": "berth skill install   # writes the Berth and ComfyUI skills, including to ~/.claude/skills"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/berth"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "Trevin Tindall (T-Crypt on GitHub)",
        "domain": "",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/T-Crypt/berth/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-28",
        "notes": [
          "The project has no website of its own. The docs are an MkDocs site at https://t-crypt.github.io/berth/. The NOTICE and README name Trevin Tindall (T-Crypt) as the creator and maintainer, and the licence is Apache-2.0.",
          "No terms, privacy policy, SECURITY.md or security.txt. The changelog has a Security heading for v0.3.4.",
          "The software runs on the owner's machine, so there is no vendor endpoint or status page to check.",
          "T-Crypt/berth is the original. jenerestain/berth, sefator/berth and Bacongineer/berth-upstream keep its module path, copyright and links, and are forks of earlier snapshots."
        ],
        "score": 61
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/berth.json"
    },
    "answer": "Berth scores 67.6 (B) on agent readiness against Jan's 51.4 (D), and leads in 5 of 7 scored categories.",
    "b": {
      "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.4,
        "grade": "D",
        "agentReady": false,
        "rank": 890,
        "ranked": true,
        "rankOf": 1218,
        "categoryRank": 16,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 46,
          "maintenance": 47,
          "payments": 60,
          "reliability": 68,
          "schema": 56,
          "security": 43,
          "transparency": 70
        },
        "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.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 51.4
          }
        ],
        "editorialScores": {
          "ergonomics": 46,
          "maintenance": 47,
          "payments": 60,
          "reliability": 68,
          "schema": 56,
          "security": 43,
          "transparency": 66
        },
        "provenanceScore": 74,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-03",
            "maintenance": "2026-10-03",
            "payments": "2026-10-03",
            "reliability": "2026-10-03",
            "schema": "2026-10-03",
            "security": "2026-10-03",
            "transparency": "2026-10-03"
          },
          "last": "2026-10-03",
          "lastMoved": "2026-10-27",
          "oldest": "2026-10-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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": 74
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/jan.json",
      "live": {
        "slug": "jan",
        "versions": [
          {
            "registry": "github",
            "name": "janhq/jan",
            "version": "v0.8.7",
            "released": "2026-10-20",
            "seenAt": "2026-10-27T11:07:33.221191758Z"
          }
        ],
        "githubStars": 45113,
        "securityTxt": {
          "url": "https://jan.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-27T15:31:36.420578479Z"
        },
        "domain": {
          "domain": "jan.ai",
          "registered": "2017-12-16",
          "source": "https://rdap.identitydigital.services/rdap/domain/jan.ai",
          "checkedAt": "2026-10-25T14:04:21.846804986Z"
        },
        "pages": [
          {
            "url": "https://www.jan.ai/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-27T04:02:00.246493167Z",
            "changedAt": "2026-10-21T01:03:29.000090079Z",
            "fingerprint": "da44b2edf51d"
          },
          {
            "url": "https://www.jan.ai/docs/desktop/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-27T04:02:02.328625808Z",
            "changedAt": "2026-10-16T22:38:03.339905618Z",
            "fingerprint": "0830daaedd2a"
          }
        ],
        "github": {
          "repo": "janhq/jan",
          "checkedAt": "2026-10-26T07:36:21.273305816Z",
          "stars": 45089,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-26T06:41:32Z",
          "openIssues": 385,
          "openPRs": 170,
          "issuesOpened90d": 333,
          "issuesClosed90d": 284,
          "prsMerged90d": 318,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 25,
            "failure": 0,
            "other": 25,
            "latest": "success",
            "latestAt": "2026-10-26T06:46:50Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 16,
            "medianDays": 0.2
          }
        },
        "updatedAt": "2026-10-27T15:31:36.420578479Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "Platform",
        "name": "Kind"
      },
      {
        "a": "Trevin Tindall (T-Crypt on GitHub)",
        "b": "Menlo Research",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0. The Berth name, the Pilot mascot and the artwork in assets/ are excluded from the licence, per the NOTICE file",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-23",
        "b": "2026-07-23",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2025-01-16",
        "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": "245 stars",
        "b": "45k stars",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Berth scores 67.6 (B) on agent readiness against Jan's 51.4 (D), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, Berth or Jan?"
      },
      {
        "answer": "No hosted endpoint is listed for Berth. No hosted endpoint is listed for Jan.",
        "question": "Can an agent call Berth and Jan without installing anything?"
      },
      {
        "answer": "Yes. Berth is open source (Apache-2.0. The Berth name, the Pilot mascot and the artwork in assets/ are excluded from the licence, per the NOTICE file). Jan is open source (Apache-2.0).",
        "question": "Are Berth and Jan open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 76 against 68",
          "Schema \u0026 documentation, 69 against 56",
          "Agent ergonomics, 75 against 46",
          "Security \u0026 auth, 51 against 43",
          "Maintenance \u0026 community, 76 against 47"
        ],
        "also": [
          "No incidents deducted, where Jan loses 4 points for them"
        ],
        "goodFor": "Someone running several GPU programs (llama.cpp, llama-swap, Ollama, vLLM, ComfyUI, games) on one NVIDIA card who wants them to take turns, and agents that need to ask for the card.",
        "slug": "berth",
        "watchFor": "First released on 11 October 2026 and called alpha. Windows, AMD and multiple GPUs are experimental, and the gateway is a preview"
      },
      {
        "aheadOn": null,
        "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"
      }
    ],
    "job": {
      "capability": "inference.local",
      "name": "Local inference"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-berth.json",
        "title": "AnythingLLM vs Berth",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-berth"
      },
      {
        "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/berth-vs-bitrun.json",
        "title": "Berth vs BitRun",
        "url": "https://www.anchorterminal.com/compare/berth-vs-bitrun"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-docker-model-runner.json",
        "title": "Berth vs Docker Model Runner",
        "url": "https://www.anchorterminal.com/compare/berth-vs-docker-model-runner"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-foundry-local.json",
        "title": "Berth vs Foundry Local",
        "url": "https://www.anchorterminal.com/compare/berth-vs-foundry-local"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-ghost-core.json",
        "title": "Berth vs Core",
        "url": "https://www.anchorterminal.com/compare/berth-vs-ghost-core"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-gpt4all.json",
        "title": "Berth vs GPT4All",
        "url": "https://www.anchorterminal.com/compare/berth-vs-gpt4all"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-khoj.json",
        "title": "Berth vs Khoj",
        "url": "https://www.anchorterminal.com/compare/berth-vs-khoj"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-koboldcpp.json",
        "title": "Berth vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/berth-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-lemonade.json",
        "title": "Berth vs Lemonade",
        "url": "https://www.anchorterminal.com/compare/berth-vs-lemonade"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-llama-cpp.json",
        "title": "Berth vs llama.cpp",
        "url": "https://www.anchorterminal.com/compare/berth-vs-llama-cpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-lm-studio.json",
        "title": "Berth vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/berth-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-localai.json",
        "title": "Berth vs LocalAI",
        "url": "https://www.anchorterminal.com/compare/berth-vs-localai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-mlx-lm.json",
        "title": "Berth vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/berth-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-ollama.json",
        "title": "Berth vs Ollama",
        "url": "https://www.anchorterminal.com/compare/berth-vs-ollama"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-open-webui.json",
        "title": "Berth vs Open WebUI",
        "url": "https://www.anchorterminal.com/compare/berth-vs-open-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-screenpipe.json",
        "title": "Berth vs screenpipe",
        "url": "https://www.anchorterminal.com/compare/berth-vs-screenpipe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-text-generation-webui.json",
        "title": "Berth vs TextGen",
        "url": "https://www.anchorterminal.com/compare/berth-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/berth-vs-vllm.json",
        "title": "Berth vs vLLM",
        "url": "https://www.anchorterminal.com/compare/berth-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-jan.json",
        "title": "BitRun vs Jan",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-jan"
      },
      {
        "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/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/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/gpt4all-vs-jan.json",
        "title": "GPT4All vs Jan",
        "url": "https://www.anchorterminal.com/compare/gpt4all-vs-jan"
      },
      {
        "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-mlx-lm.json",
        "title": "Jan vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/jan-vs-mlx-lm"
      },
      {
        "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/jan-vs-vllm.json",
        "title": "Jan vs vLLM",
        "url": "https://www.anchorterminal.com/compare/jan-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-underdog.json",
        "title": "Jan vs Underdog",
        "url": "https://www.anchorterminal.com/compare/jan-vs-underdog"
      }
    ],
    "scores": [
      {
        "berth": 76,
        "by": 8,
        "edge": "berth",
        "jan": 68,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "berth": 69,
        "by": 13,
        "edge": "berth",
        "jan": 56,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "berth": 75,
        "by": 29,
        "edge": "berth",
        "jan": 46,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "berth": 51,
        "by": 8,
        "edge": "berth",
        "jan": 43,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "berth": 60,
        "by": 0,
        "edge": "",
        "jan": 60,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "berth": 76,
        "by": 29,
        "edge": "berth",
        "jan": 47,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "berth": 68,
        "by": 2,
        "edge": "jan",
        "jan": 70,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Berth scores 67.6 (B) on agent readiness against Jan's 51.4 (D), and leads in 5 of 7 scored categories. Both do local inference.",
    "tutorials": [],
    "verdicts": {
      "berth": "Berth coordinates one NVIDIA card between engines, ComfyUI and games, grants a lease only after the driver shows memory free, and gives agents a skill, JSON output and a keyed loopback gateway. It is 17 days old, alpha and maintained by one developer, with Windows and AMD experimental and no machine-readable API spec.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/berth-vs-jan",
    "json": "https://www.anchorterminal.com/compare/berth-vs-jan.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/berth-vs-jan.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/berth-vs-jan.min.md"
  },
  "markdown": "Berth scores 67.6 (B) on agent readiness against Jan's 51.4 (D), and leads in 5 of 7 scored categories. Both do local inference.\n\n- Berth: grade B, 67.6/100, rank #283 of 1218. Markdown https://www.anchorterminal.com/tools/berth.md · JSON https://www.anchorterminal.com/api/v1/tools/berth.json\n- Jan: grade D, 51.4/100, rank #890 of 1218. Markdown https://www.anchorterminal.com/tools/jan.md · JSON https://www.anchorterminal.com/api/v1/tools/jan.json\n- Best local AI models and assistants: https://www.anchorterminal.com/best/local-ai/index.md\n- All 229 local ai comparisons: https://www.anchorterminal.com/compare/local-ai/index.md\n\n## Which one, for what\n\n### Berth (B)\n\nGood for: Someone running several GPU programs (llama.cpp, llama-swap, Ollama, vLLM, ComfyUI, games) on one NVIDIA card who wants them to take turns, and agents that need to ask for the card.\n\nAhead on:\n- Reliability, 76 against 68\n- Schema \u0026 documentation, 69 against 56\n- Agent ergonomics, 75 against 46\n- Security \u0026 auth, 51 against 43\n- Maintenance \u0026 community, 76 against 47\n\nAlso in its favour:\n- No incidents deducted, where Jan loses 4 points for them\n\nWatch for: First released on 11 October 2026 and called alpha. Windows, AMD and multiple GPUs are experimental, and the gateway is a preview\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\nWatch for: No release since 0.8.4 on 23 July 2026, while a security fix waits on main\n\n\n## Score by category\n\n| Category | Weight | Berth | Jan | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 76 | 68 | Berth +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 69 | 56 | Berth +13 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 46 | Berth +29 |\n| Security \u0026 auth | 14% (17.5 this run) | 51 | 43 | Berth +8 |\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) | 76 | 47 | Berth +29 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 70 | Jan +2 |\n| Negative events | ≤15 | 0 | -4 | |\n| **Total** | | **67.6 · B** | **51.4 · D** | |\n\n## Facts side by side\n\n| Fact | Berth | Jan |\n| --- | --- | --- |\n| Kind | HTTP API | Platform |\n| Vendor | Trevin Tindall (T-Crypt on GitHub) | Menlo Research |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Apache-2.0. The Berth name, the Pilot mascot and the artwork in assets/ are excluded from the licence, per the NOTICE file | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-10-23 | 2026-07-23 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | 2025-01-16 |\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 | 245 stars | 45k stars |\n| Agent reviews | none | 2/5 (2) |\n\n## Verdicts\n\n**Berth.** Berth coordinates one NVIDIA card between engines, ComfyUI and games, grants a lease only after the driver shows memory free, and gives agents a skill, JSON output and a keyed loopback gateway. It is 17 days old, alpha and maintained by one developer, with Windows and AMD experimental and no machine-readable API spec.\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## Before you call either\n\n### Berth\n\n1. Run `berth status --format json` before starting, stopping or switching any GPU engine. If berthd is unreachable, no engine is protected\n2. Never kill a process to free VRAM. Ask for the card with `berth run`, `berth hold` or a gateway request, and report stowaways to the user\n3. Send gateway requests to http://127.0.0.1:9799/v1 with `Authorization: Bearer $(berth key)`, and use `\"stream\": true` for cold starts of up to minutes\n4. On a 503, read the `code` and wait for `Retry-After`. A pinned holder (a game or `berth hold`) answers 409 to stop and is the user's call\n5. Ask the user before `berth reclaim LEASE --yes`, any berth.toml edit or `berth update`. Each changes the node\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## Questions\n\n### Which is better for AI agents, Berth or Jan?\n\nBerth scores 67.6 (B) on agent readiness against Jan's 51.4 (D), and leads in 5 of 7 scored categories.\n\n### Can an agent call Berth and Jan without installing anything?\n\nNo hosted endpoint is listed for Berth. No hosted endpoint is listed for Jan.\n\n### Are Berth and Jan open source?\n\nYes. Berth is open source (Apache-2.0. The Berth name, the Pilot mascot and the artwork in assets/ are excluded from the licence, per the NOTICE file). Jan is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/berth-vs-jan.json, and with the fewest tokens: https://www.anchorterminal.com/compare/berth-vs-jan.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"berth\", \"b\": \"jan\"}`. From a terminal: `anchor compare berth jan`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/berth.json and https://www.anchorterminal.com/api/v1/tools/jan.json\n\n## Other comparisons with Berth or Jan\n\n- [AnythingLLM vs Berth](https://www.anchorterminal.com/compare/anythingllm-vs-berth.md)\n- [AnythingLLM vs Jan](https://www.anchorterminal.com/compare/anythingllm-vs-jan.md)\n- [Berth vs BitRun](https://www.anchorterminal.com/compare/berth-vs-bitrun.md)\n- [Berth vs Docker Model Runner](https://www.anchorterminal.com/compare/berth-vs-docker-model-runner.md)\n- [Berth vs Foundry Local](https://www.anchorterminal.com/compare/berth-vs-foundry-local.md)\n- [Berth vs Core](https://www.anchorterminal.com/compare/berth-vs-ghost-core.md)\n- [Berth vs GPT4All](https://www.anchorterminal.com/compare/berth-vs-gpt4all.md)\n- [Berth vs Khoj](https://www.anchorterminal.com/compare/berth-vs-khoj.md)\n- [Berth vs KoboldCpp](https://www.anchorterminal.com/compare/berth-vs-koboldcpp.md)\n- [Berth vs Lemonade](https://www.anchorterminal.com/compare/berth-vs-lemonade.md)\n- [Berth vs llama.cpp](https://www.anchorterminal.com/compare/berth-vs-llama-cpp.md)\n- [Berth vs LM Studio](https://www.anchorterminal.com/compare/berth-vs-lm-studio.md)\n- [Berth vs LocalAI](https://www.anchorterminal.com/compare/berth-vs-localai.md)\n- [Berth vs MLX LM](https://www.anchorterminal.com/compare/berth-vs-mlx-lm.md)\n- [Berth vs Ollama](https://www.anchorterminal.com/compare/berth-vs-ollama.md)\n- [Berth vs Open WebUI](https://www.anchorterminal.com/compare/berth-vs-open-webui.md)\n- [Berth vs screenpipe](https://www.anchorterminal.com/compare/berth-vs-screenpipe.md)\n- [Berth vs TextGen](https://www.anchorterminal.com/compare/berth-vs-text-generation-webui.md)\n- [Berth vs vLLM](https://www.anchorterminal.com/compare/berth-vs-vllm.md)\n- [BitRun vs Jan](https://www.anchorterminal.com/compare/bitrun-vs-jan.md)\n- [Docker Model Runner vs Jan](https://www.anchorterminal.com/compare/docker-model-runner-vs-jan.md)\n- [Foundry Local vs Jan](https://www.anchorterminal.com/compare/foundry-local-vs-jan.md)\n- [Core vs Jan](https://www.anchorterminal.com/compare/ghost-core-vs-jan.md)\n- [GPT4All vs Jan](https://www.anchorterminal.com/compare/gpt4all-vs-jan.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 MLX LM](https://www.anchorterminal.com/compare/jan-vs-mlx-lm.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- [Jan vs vLLM](https://www.anchorterminal.com/compare/jan-vs-vllm.md)\n- [Jan vs Underdog](https://www.anchorterminal.com/compare/jan-vs-underdog.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-28",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Berth vs Jan",
        "url": ""
      }
    ],
    "description": "Berth scores 67.6 (B) to Jan's 51.4 (D) for local inference. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Berth B 67.6",
      "Jan D 51.4",
      "scores"
    ],
    "h1": "Berth vs Jan",
    "image": "https://www.anchorterminal.com/assets/og/compare-berth-vs-jan.png",
    "path": "/compare/berth-vs-jan",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Berth vs Jan for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-28",
    "url": "https://www.anchorterminal.com/compare/berth-vs-jan"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 530
  },
  "version": 1
}
