{
  "data": {
    "a": {
      "slug": "bitrun",
      "name": "BitRun",
      "vendor": "Abhishek Khanra (IshekKhal on GitHub)",
      "vendorUrl": "https://github.com/IshekKhal",
      "kind": "http-api",
      "category": "local-ai",
      "summary": "BitRun is an open-source command-line runner for 1-bit and 1.58-bit ternary language models such as BitNet b1.58, Falcon3 1.58-bit and Bonsai on CPUs, with a model downloader and a local OpenAI-compatible server.",
      "url": "https://www.anchorterminal.com/tools/bitrun",
      "markdownUrl": "https://www.anchorterminal.com/tools/bitrun.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/bitrun.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bitrun.json",
      "repo": "https://github.com/IshekKhal/bitrun",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "none",
      "authNotes": "No credential. `bitrun serve` starts a patched llama-server on 127.0.0.1 (default port 11435, changed with `--port`) and passes no `--api-key`, so any process on the machine can call it. The bind address is fixed in the code, with no flag to expose it on the network. The README's SDK example sets `api_key` to any string.",
      "pricing": "free",
      "pricingNotes": "Free under MIT with nothing to buy. Models are downloaded from Hugging Face under each model's own licence.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the source, the README or the release notes (checked 2026-10-15). Nothing is sold.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 5,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-15"
      },
      "docsUrl": "https://github.com/IshekKhal/bitrun#readme",
      "capabilities": [
        "inference.local",
        "inference.open-weights"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "free",
        "no-card",
        "mit",
        "openai-compatible",
        "go",
        "pre-1.0",
        "macos",
        "windows",
        "cli"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 37.9,
        "grade": "F",
        "agentReady": false,
        "rank": 1018,
        "ranked": true,
        "rankOf": 1094,
        "categoryRank": 18,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 40,
          "maintenance": 59,
          "payments": 60,
          "reliability": 38,
          "schema": 30,
          "security": 28,
          "transparency": 50
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-15"
        },
        "negative": -3,
        "negativeNotes": [
          "Misleading claim, 15 October 2026. The README's \"Verified Hardware Benchmarks\", described as physical hardware runs, list package power of 11.70 W, 22.60 W and 8.50 W for every model on each machine, and joules per token from them. These equal the fixed estimates in power.go (2.5 + 1.15 per thread on macOS without battery data, 5.0 + 2.2 per thread on Windows, 4.5 + 2.0 per thread on Linux without RAPL) at the default thread counts of 8, 8 and 2. The README also says Windows power is measured through PPM and that `pull` resumes downloads, and the source does neither (https://github.com/IshekKhal/bitrun/blob/0fec65a/pkg/telemetry/power.go#L137-L163, https://github.com/IshekKhal/bitrun/blob/0fec65a/pkg/models/downloader.go#L57-L60, https://github.com/IshekKhal/bitrun/blob/0fec65a/README.md). Judgement call, -3."
        ],
        "verdict": "BitRun packages patched llama.cpp builds for ternary models into one download for macOS on Apple silicon, Windows and Linux, with a loopback-only OpenAI-compatible server. It is three days old with three pre-release versions, one maintainer and no CI, and its published power figures come from a fixed formula rather than measurement.",
        "bestFor": "A developer who wants to try ternary models on a laptop CPU behind an OpenAI-style endpoint without building bitnet.cpp.",
        "strengths": [
          "One archive per platform (macOS arm64, Linux amd64, Windows amd64) with llama-server, so no compiler, Python or Docker is needed",
          "The server binds 127.0.0.1 with no flag to expose it, and works with OpenAI SDKs by changing the base URL",
          "A catalogue of six ternary and compact models, 79 MB to 2.08 GB, pulled from their Hugging Face repositories by tag",
          "MIT licence, and no network telemetry found in the Go source. Outbound calls are model downloads on `pull`"
        ],
        "weaknesses": [
          "First released on 12 October 2026. Three pre-release versions in four days, one maintainer and no CI workflow",
          "The README's package power and joules-per-token figures match a fixed per-thread formula in the code, not a counter reading",
          "No API key option, so any local process can call the server, and model downloads and the installer verify no checksum",
          "The server documentation covers one route, `/v1/chat/completions`, with no error responses, OpenAPI file or llms.txt",
          "Context windows of the catalogue models run from 768 to 8,192 tokens, and one server process serves one model"
        ],
        "agentNotes": [
          "Ask the user to install BitRun and run `bitrun pull \u003ctag\u003e` and `bitrun serve \u003ctag\u003e` first. Then call http://127.0.0.1:11435/v1 with any API key string",
          "Poll `/health` before the first request. The server loads the model in the background and answers only when ready",
          "Use a model tag from the catalogue (bitnet-70m, bonsai-1.7b, falcon3-1b, bitnet-2b, falcon3-3b, bonsai-8b) and keep prompts within its context window",
          "Treat the README's energy figures as estimates, and don't report them as measured power",
          "Expect small research checkpoints. Check outputs before relying on them for code or facts"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 37.9
          }
        ],
        "editorialScores": {
          "ergonomics": 40,
          "maintenance": 59,
          "payments": 60,
          "reliability": 38,
          "schema": 30,
          "security": 28,
          "transparency": 46
        },
        "provenanceScore": 53
      },
      "connect": {
        "install": "curl -fsSL https://raw.githubusercontent.com/IshekKhal/bitrun/main/install.sh | sh\nbitrun pull falcon3-1b\nbitrun serve falcon3-1b --port 11435",
        "http": "curl -s http://127.0.0.1:11435/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\": \"falcon3-1b\", \"messages\": [{\"role\": \"user\", \"content\": \"How do 1-bit models conserve memory bandwidth?\"}], \"temperature\": 0.2}'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/bitrun"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "Abhishek Khanra (IshekKhal on GitHub)",
        "domain": "",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/IshekKhal/bitrun/releases",
        "securityTxt": "none",
        "checked": "2026-10-15",
        "notes": [
          "The project has no website. The GitHub account IshekKhal (created 17 December 2024) gives the name Abhishek Khanra, and the licence reads Copyright (c) 2026 Abhishek. The Show HN post was made by the HN account ishekofficial.",
          "No terms, privacy policy, SECURITY.md or security.txt. The repository has no .github folder.",
          "The software runs on the owner's machine, so there is no vendor endpoint or status page to check."
        ],
        "score": 53
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/bitrun.json"
    },
    "answer": "TextGen scores 45.1 (E) on agent readiness against BitRun's 37.9 (F), and leads in 4 of 7 scored categories. BitRun leads on maintenance \u0026 community.",
    "b": {
      "slug": "text-generation-webui",
      "name": "TextGen",
      "vendor": "oobabooga",
      "vendorUrl": "https://github.com/oobabooga",
      "kind": "platform",
      "category": "local-ai",
      "summary": "Open-source desktop and browser app for running language models on the owner's hardware, formerly text-generation-webui. With `--api` it serves an OpenAI and Anthropic-compatible local API with tool calling, vision, embeddings and image generation.",
      "url": "https://www.anchorterminal.com/tools/text-generation-webui",
      "markdownUrl": "https://www.anchorterminal.com/tools/text-generation-webui.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/text-generation-webui.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/text-generation-webui.json",
      "repo": "https://github.com/oobabooga/textgen",
      "license": "AGPL-3.0",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "api-key",
      "authNotes": "The API takes one optional key from `--api-key`, off by default, sent as `Authorization: Bearer` on the OpenAI routes and as `x-api-key` on `/v1/messages`. A second key from `--admin-key` guards model and LoRA loading, unloading and listing, and equals the API key when unset. Keys are set at launch, have no scopes and change only with a restart. Without `--listen` or `--public-api` the server binds 127.0.0.1, rejects other Host headers and limits CORS to localhost. The web UI has no login unless `--gradio-auth` is set.",
      "pricing": "free",
      "pricingNotes": "Free and AGPL-3.0, with no account, card or paid edition. Portable builds and source are on GitHub (checked 2026-10-08).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the docs folder or the API source (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 47700,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://github.com/oobabooga/textgen/wiki",
      "capabilities": [
        "inference.local",
        "inference.open-weights",
        "agent.mcp-client",
        "embed.text",
        "image.generate"
      ],
      "tags": [
        "open-source",
        "local",
        "self-hosted",
        "free",
        "no-card",
        "account-free",
        "openai-compatible",
        "open-weights",
        "streaming",
        "mcp",
        "docker",
        "no-telemetry"
      ],
      "lastRelease": "2026-05-20",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.1,
        "grade": "E",
        "agentReady": false,
        "rank": 950,
        "ranked": true,
        "rankOf": 1094,
        "categoryRank": 16,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 50,
          "maintenance": 24,
          "payments": 60,
          "reliability": 51,
          "schema": 61,
          "security": 40,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-03-18. Two Critical advisories at 9.1. GHSA-jg96-p5p6-q3cv (CVE-2026-35050) let a user of the web UI write Python files through a path traversal in extension settings and run them, in 4.1 and earlier, fixed in 4.1.1. GHSA-4p45-76cc-7p62 let a caller write or delete files through a character name on instances started with `--listen`, fixed in 4.0. Both fixed and published, -2. https://github.com/oobabooga/textgen/security/advisories/GHSA-jg96-p5p6-q3cv",
          "2026-03-18. GHSA-fpwc-4mvr-7jpr (High, 7.1). `/v1/chat/completions` and `/v1/completions` fetched any `image_url` from the server side, so a caller could reach internal addresses, in 4.1 and earlier. Fixed in 4.1.1 and published, -1. https://github.com/oobabooga/textgen/security/advisories/GHSA-fpwc-4mvr-7jpr",
          "2025-10-13 to 2026-04-03. Seven more advisories in the year, four High and three Moderate, among them a file read through an uploaded symbolic link, four path traversals in preset, grammar, template and prompt loading, an SSRF in the superbooga extensions and a Gradio path-check bypass fixed in 4.3. All published with fixes, -1. https://github.com/oobabooga/textgen/security"
        ],
        "verdict": "AGPL-3.0 with no telemetry, and a local API on 127.0.0.1:5000 that checks the Host header, limits CORS to localhost and separates an admin key from the caller's key. No release since v4.9 on 20 May 2026, no code commits since 31 May, no test suite, and ten security advisories in the year, all fixed.",
        "bestFor": "A person who wants one app for several backends (llama.cpp, ExLlamaV3, Transformers) with an OpenAI and Anthropic-compatible endpoint, LoRA training and image generation.",
        "strengths": [
          "AGPL-3.0, with analytics switched off in the source and a README that states zero telemetry",
          "One server answers `/v1/chat/completions`, `/v1/completions` and Anthropic's `/v1/messages`, with tool calling and streaming",
          "Since v4.9 the API rejects Host headers other than localhost and 127.0.0.1 and limits CORS to localhost unless `--listen` or `--public-api` is set",
          "A separate `--admin-key` guards model and LoRA loading, apart from the `--api-key` callers use",
          "Ten security advisories published on GitHub with patched versions named, the newest on 3 April 2026"
        ],
        "weaknesses": [
          "No release since v4.9 on 20 May 2026 and no code commit on `main` or `dev` since 31 May 2026",
          "No test suite. The seven GitHub workflows only build release packages on manual dispatch",
          "807 open issues and 40 open pull requests, with no SECURITY.md or disclosure address",
          "Two Critical advisories (9.1) published on 18 March 2026, both path traversals in the web UI, fixed in 4.0 and 4.1.1",
          "The API key is off by default, set only at launch, and has no scopes or per-client keys",
          "No rate limits, error list or published OpenAPI file in the docs. The schema is served only by a running server at `/docs`"
        ],
        "agentNotes": [
          "Ask the owner to launch with `--api`. Nothing listens on port 5000 without it, and a model must be loaded first",
          "Call `http://127.0.0.1:5000/v1`. Any Host header other than localhost or 127.0.0.1 gets 400 `Invalid host header` unless `--listen` is set",
          "Send the key as `Authorization: Bearer` on OpenAI routes and as `x-api-key` on `/v1/messages`. Model loading needs the admin key",
          "Read `http://127.0.0.1:5000/docs` or `modules/api/typing.py` for parameters. `max_tokens` defaults to 512 on chat completions",
          "Run tool calls yourself. The API returns `finish_reason: \"tool_calls\"` and executes nothing on the server",
          "Use the repository name `oobabooga/textgen`. The old `text-generation-webui` URL redirects"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.1
          }
        ],
        "editorialScores": {
          "ergonomics": 50,
          "maintenance": 24,
          "payments": 60,
          "reliability": 51,
          "schema": 61,
          "security": 40,
          "transparency": 70
        },
        "provenanceScore": 27
      },
      "connect": {
        "install": "git clone https://github.com/oobabooga/textgen\ncd textgen\npython -m venv venv\nsource venv/bin/activate\npip install -r requirements/portable/requirements.txt --upgrade\npython server.py --portable --api --auto-launch",
        "http": "curl http://127.0.0.1:5000/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\": [{\"role\": \"user\", \"content\": \"Hello!\"}], \"temperature\": 0.6, \"top_p\": 0.95, \"top_k\": 20}'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.local",
        "tool": "https://letme.dev/text-generation-webui"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "",
        "domain": "github.com/oobabooga",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/oobabooga/textgen/releases",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The project belongs to a developer who publishes as oobabooga. The LICENSE is the AGPL-3.0 text and names no legal entity, and the README acknowledges a grant from Andreessen Horowitz in August 2023.",
          "No vendor domain. The README links only the GitHub repository, its wiki, a subreddit, a Substack and a Hugging Face space.",
          "No terms of use and no privacy policy were found in the repository, the README or the wiki, so both fields are left out. The README states zero telemetry.",
          "No SECURITY.md (the Security tab says none is set up) and no security.txt of the project's own.",
          "There's no hosted endpoint. The API answers on the owner's machine, at 127.0.0.1:5000 by default."
        ],
        "score": 27
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/text-generation-webui.json",
      "live": {
        "slug": "text-generation-webui",
        "versions": [
          {
            "registry": "github",
            "name": "oobabooga/textgen",
            "version": "v4.9",
            "released": "2026-05-20",
            "seenAt": "2026-10-15T00:26:02.872635979Z"
          }
        ],
        "githubStars": 47729,
        "domain": {
          "domain": "github.com/oobabooga",
          "checkedAt": "2026-10-11T13:27:10.247865181Z"
        },
        "updatedAt": "2026-10-15T00:26:02.872635979Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "Platform",
        "name": "Kind"
      },
      {
        "a": "Abhishek Khanra (IshekKhal on GitHub)",
        "b": "oobabooga",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "AGPL-3.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-15",
        "b": "2026-05-20",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "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": "5 stars",
        "b": "48k stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "TextGen scores 45.1 (E) on agent readiness against BitRun's 37.9 (F), and leads in 4 of 7 scored categories. BitRun leads on maintenance \u0026 community.",
        "question": "Which is better for AI agents, BitRun or TextGen?"
      },
      {
        "answer": "No hosted endpoint is listed for BitRun. No hosted endpoint is listed for TextGen.",
        "question": "Can an agent call BitRun and TextGen without installing anything?"
      },
      {
        "answer": "Yes. BitRun is open source (MIT). TextGen is open source (AGPL-3.0).",
        "question": "Are BitRun and TextGen open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Maintenance \u0026 community, 59 against 24"
        ],
        "also": [
          "No key needed to call it"
        ],
        "goodFor": "A developer who wants to try ternary models on a laptop CPU behind an OpenAI-style endpoint without building bitnet.cpp.",
        "slug": "bitrun",
        "watchFor": "First released on 12 October 2026. Three pre-release versions in four days, one maintainer and no CI workflow"
      },
      {
        "aheadOn": [
          "Reliability, 51 against 38",
          "Schema \u0026 documentation, 61 against 30",
          "Agent ergonomics, 50 against 40",
          "Security \u0026 auth, 40 against 28"
        ],
        "also": null,
        "goodFor": "A person who wants one app for several backends (llama.cpp, ExLlamaV3, Transformers) with an OpenAI and Anthropic-compatible endpoint, LoRA training and image generation.",
        "slug": "text-generation-webui",
        "watchFor": "No release since v4.9 on 20 May 2026 and no code commit on `main` or `dev` since 31 May 2026"
      }
    ],
    "job": {
      "capability": "inference.local",
      "name": "Local inference"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-bitrun.json",
        "title": "AnythingLLM vs BitRun",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-bitrun"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui.json",
        "title": "AnythingLLM vs TextGen",
        "url": "https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-docker-model-runner.json",
        "title": "BitRun vs Docker Model Runner",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-docker-model-runner"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-foundry-local.json",
        "title": "BitRun vs Foundry Local",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-foundry-local"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-ghost-core.json",
        "title": "BitRun vs Core",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-ghost-core"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-gpt4all.json",
        "title": "BitRun vs GPT4All",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-gpt4all"
      },
      {
        "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/bitrun-vs-khoj.json",
        "title": "BitRun vs Khoj",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-khoj"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-koboldcpp.json",
        "title": "BitRun vs KoboldCpp",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-koboldcpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-lemonade.json",
        "title": "BitRun vs Lemonade",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-lemonade"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-llama-cpp.json",
        "title": "BitRun vs llama.cpp",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-llama-cpp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-lm-studio.json",
        "title": "BitRun vs LM Studio",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-lm-studio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-localai.json",
        "title": "BitRun vs LocalAI",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-localai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-mlx-lm.json",
        "title": "BitRun vs MLX LM",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-mlx-lm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-ollama.json",
        "title": "BitRun vs Ollama",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-ollama"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-open-webui.json",
        "title": "BitRun vs Open WebUI",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-open-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-screenpipe.json",
        "title": "BitRun vs screenpipe",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-screenpipe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-vllm.json",
        "title": "BitRun vs vLLM",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docker-model-runner-vs-text-generation-webui.json",
        "title": "Docker Model Runner vs TextGen",
        "url": "https://www.anchorterminal.com/compare/docker-model-runner-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foundry-local-vs-text-generation-webui.json",
        "title": "Foundry Local vs TextGen",
        "url": "https://www.anchorterminal.com/compare/foundry-local-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-core-vs-text-generation-webui.json",
        "title": "Core vs TextGen",
        "url": "https://www.anchorterminal.com/compare/ghost-core-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gpt4all-vs-text-generation-webui.json",
        "title": "GPT4All vs TextGen",
        "url": "https://www.anchorterminal.com/compare/gpt4all-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jan-vs-text-generation-webui.json",
        "title": "Jan vs TextGen",
        "url": "https://www.anchorterminal.com/compare/jan-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui.json",
        "title": "Khoj vs TextGen",
        "url": "https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koboldcpp-vs-text-generation-webui.json",
        "title": "KoboldCpp vs TextGen",
        "url": "https://www.anchorterminal.com/compare/koboldcpp-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lemonade-vs-text-generation-webui.json",
        "title": "Lemonade vs TextGen",
        "url": "https://www.anchorterminal.com/compare/lemonade-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llama-cpp-vs-text-generation-webui.json",
        "title": "llama.cpp vs TextGen",
        "url": "https://www.anchorterminal.com/compare/llama-cpp-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lm-studio-vs-text-generation-webui.json",
        "title": "LM Studio vs TextGen",
        "url": "https://www.anchorterminal.com/compare/lm-studio-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/localai-vs-text-generation-webui.json",
        "title": "LocalAI vs TextGen",
        "url": "https://www.anchorterminal.com/compare/localai-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mlx-lm-vs-text-generation-webui.json",
        "title": "MLX LM vs TextGen",
        "url": "https://www.anchorterminal.com/compare/mlx-lm-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ollama-vs-text-generation-webui.json",
        "title": "Ollama vs TextGen",
        "url": "https://www.anchorterminal.com/compare/ollama-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/open-webui-vs-text-generation-webui.json",
        "title": "Open WebUI vs TextGen",
        "url": "https://www.anchorterminal.com/compare/open-webui-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/screenpipe-vs-text-generation-webui.json",
        "title": "screenpipe vs TextGen",
        "url": "https://www.anchorterminal.com/compare/screenpipe-vs-text-generation-webui"
      },
      {
        "json": "https://www.anchorterminal.com/compare/text-generation-webui-vs-vllm.json",
        "title": "TextGen vs vLLM",
        "url": "https://www.anchorterminal.com/compare/text-generation-webui-vs-vllm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitrun-vs-underdog.json",
        "title": "BitRun vs Underdog",
        "url": "https://www.anchorterminal.com/compare/bitrun-vs-underdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/text-generation-webui-vs-underdog.json",
        "title": "TextGen vs Underdog",
        "url": "https://www.anchorterminal.com/compare/text-generation-webui-vs-underdog"
      }
    ],
    "scores": [
      {
        "bitrun": 38,
        "by": 13,
        "edge": "text-generation-webui",
        "key": "reliability",
        "name": "Reliability",
        "text-generation-webui": 51,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bitrun": 30,
        "by": 31,
        "edge": "text-generation-webui",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "text-generation-webui": 61,
        "weight": 13
      },
      {
        "bitrun": 40,
        "by": 10,
        "edge": "text-generation-webui",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "text-generation-webui": 50,
        "weight": 13
      },
      {
        "bitrun": 28,
        "by": 12,
        "edge": "text-generation-webui",
        "key": "security",
        "name": "Security \u0026 auth",
        "text-generation-webui": 40,
        "weight": 14
      },
      {
        "bitrun": 60,
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "text-generation-webui": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bitrun": 59,
        "by": 35,
        "edge": "bitrun",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "text-generation-webui": 24,
        "weight": 7
      },
      {
        "bitrun": 50,
        "by": 1,
        "edge": "bitrun",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "text-generation-webui": 49,
        "weight": 7
      }
    ],
    "summary": "TextGen scores 45.1 (E) on agent readiness against BitRun's 37.9 (F), and leads in 4 of 7 scored categories. BitRun leads on maintenance \u0026 community. Both do local inference.",
    "verdicts": {
      "bitrun": "BitRun packages patched llama.cpp builds for ternary models into one download for macOS on Apple silicon, Windows and Linux, with a loopback-only OpenAI-compatible server. It is three days old with three pre-release versions, one maintainer and no CI, and its published power figures come from a fixed formula rather than measurement.",
      "text-generation-webui": "AGPL-3.0 with no telemetry, and a local API on 127.0.0.1:5000 that checks the Host header, limits CORS to localhost and separates an admin key from the caller's key. No release since v4.9 on 20 May 2026, no code commits since 31 May, no test suite, and ten security advisories in the year, all fixed."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bitrun-vs-text-generation-webui",
    "json": "https://www.anchorterminal.com/compare/bitrun-vs-text-generation-webui.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bitrun-vs-text-generation-webui.md",
    "slim": "https://www.anchorterminal.com/compare/bitrun-vs-text-generation-webui.min.md"
  },
  "markdown": "TextGen scores 45.1 (E) on agent readiness against BitRun's 37.9 (F), and leads in 4 of 7 scored categories. BitRun leads on maintenance \u0026 community. Both do local inference.\n\n- BitRun: grade F, 37.9/100, rank #1018 of 1094. Markdown https://www.anchorterminal.com/tools/bitrun.md · JSON https://www.anchorterminal.com/api/v1/tools/bitrun.json\n- TextGen: grade E, 45.1/100, rank #950 of 1094. Markdown https://www.anchorterminal.com/tools/text-generation-webui.md · JSON https://www.anchorterminal.com/api/v1/tools/text-generation-webui.json\n- Best local AI models and assistants: https://www.anchorterminal.com/best/local-ai/index.md\n- All 204 local ai comparisons: https://www.anchorterminal.com/compare/local-ai/index.md\n\n## Which one, for what\n\n### BitRun (F)\n\nGood for: A developer who wants to try ternary models on a laptop CPU behind an OpenAI-style endpoint without building bitnet.cpp.\n\nAhead on:\n- Maintenance \u0026 community, 59 against 24\n\nAlso in its favour:\n- No key needed to call it\n\nWatch for: First released on 12 October 2026. Three pre-release versions in four days, one maintainer and no CI workflow\n\n### TextGen (E)\n\nGood for: A person who wants one app for several backends (llama.cpp, ExLlamaV3, Transformers) with an OpenAI and Anthropic-compatible endpoint, LoRA training and image generation.\n\nAhead on:\n- Reliability, 51 against 38\n- Schema \u0026 documentation, 61 against 30\n- Agent ergonomics, 50 against 40\n- Security \u0026 auth, 40 against 28\n\nWatch for: No release since v4.9 on 20 May 2026 and no code commit on `main` or `dev` since 31 May 2026\n\n\n## Score by category\n\n| Category | Weight | BitRun | TextGen | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 38 | 51 | TextGen +13 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 30 | 61 | TextGen +31 |\n| Agent ergonomics | 13% (16.2 this run) | 40 | 50 | TextGen +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 28 | 40 | TextGen +12 |\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) | 59 | 24 | BitRun +35 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 50 | 49 | BitRun +1 |\n| Negative events | ≤15 | -3 | -4 | |\n| **Total** | | **37.9 · F** | **45.1 · E** | |\n\n## Facts side by side\n\n| Fact | BitRun | TextGen |\n| --- | --- | --- |\n| Kind | HTTP API | Platform |\n| Vendor | Abhishek Khanra (IshekKhal on GitHub) | oobabooga |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | None | API key |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | AGPL-3.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-10-15 | 2026-05-20 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | 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 | 5 stars | 48k stars |\n\n## Verdicts\n\n**BitRun.** BitRun packages patched llama.cpp builds for ternary models into one download for macOS on Apple silicon, Windows and Linux, with a loopback-only OpenAI-compatible server. It is three days old with three pre-release versions, one maintainer and no CI, and its published power figures come from a fixed formula rather than measurement.\n\n**TextGen.** AGPL-3.0 with no telemetry, and a local API on 127.0.0.1:5000 that checks the Host header, limits CORS to localhost and separates an admin key from the caller's key. No release since v4.9 on 20 May 2026, no code commits since 31 May, no test suite, and ten security advisories in the year, all fixed.\n\n## Before you call either\n\n### BitRun\n\n1. Ask the user to install BitRun and run `bitrun pull \u003ctag\u003e` and `bitrun serve \u003ctag\u003e` first. Then call http://127.0.0.1:11435/v1 with any API key string\n2. Poll `/health` before the first request. The server loads the model in the background and answers only when ready\n3. Use a model tag from the catalogue (bitnet-70m, bonsai-1.7b, falcon3-1b, bitnet-2b, falcon3-3b, bonsai-8b) and keep prompts within its context window\n4. Treat the README's energy figures as estimates, and don't report them as measured power\n5. Expect small research checkpoints. Check outputs before relying on them for code or facts\n\n### TextGen\n\n1. Ask the owner to launch with `--api`. Nothing listens on port 5000 without it, and a model must be loaded first\n2. Call `http://127.0.0.1:5000/v1`. Any Host header other than localhost or 127.0.0.1 gets 400 `Invalid host header` unless `--listen` is set\n3. Send the key as `Authorization: Bearer` on OpenAI routes and as `x-api-key` on `/v1/messages`. Model loading needs the admin key\n4. Read `http://127.0.0.1:5000/docs` or `modules/api/typing.py` for parameters. `max_tokens` defaults to 512 on chat completions\n5. Run tool calls yourself. The API returns `finish_reason: \"tool_calls\"` and executes nothing on the server\n6. Use the repository name `oobabooga/textgen`. The old `text-generation-webui` URL redirects\n\n## Questions\n\n### Which is better for AI agents, BitRun or TextGen?\n\nTextGen scores 45.1 (E) on agent readiness against BitRun's 37.9 (F), and leads in 4 of 7 scored categories. BitRun leads on maintenance \u0026 community.\n\n### Can an agent call BitRun and TextGen without installing anything?\n\nNo hosted endpoint is listed for BitRun. No hosted endpoint is listed for TextGen.\n\n### Are BitRun and TextGen open source?\n\nYes. BitRun is open source (MIT). TextGen is open source (AGPL-3.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bitrun-vs-text-generation-webui.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bitrun-vs-text-generation-webui.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bitrun\", \"b\": \"text-generation-webui\"}`. From a terminal: `anchor compare bitrun text-generation-webui`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bitrun.json and https://www.anchorterminal.com/api/v1/tools/text-generation-webui.json\n\n## Other comparisons with BitRun or TextGen\n\n- [AnythingLLM vs BitRun](https://www.anchorterminal.com/compare/anythingllm-vs-bitrun.md)\n- [AnythingLLM vs TextGen](https://www.anchorterminal.com/compare/anythingllm-vs-text-generation-webui.md)\n- [BitRun vs Docker Model Runner](https://www.anchorterminal.com/compare/bitrun-vs-docker-model-runner.md)\n- [BitRun vs Foundry Local](https://www.anchorterminal.com/compare/bitrun-vs-foundry-local.md)\n- [BitRun vs Core](https://www.anchorterminal.com/compare/bitrun-vs-ghost-core.md)\n- [BitRun vs GPT4All](https://www.anchorterminal.com/compare/bitrun-vs-gpt4all.md)\n- [BitRun vs Jan](https://www.anchorterminal.com/compare/bitrun-vs-jan.md)\n- [BitRun vs Khoj](https://www.anchorterminal.com/compare/bitrun-vs-khoj.md)\n- [BitRun vs KoboldCpp](https://www.anchorterminal.com/compare/bitrun-vs-koboldcpp.md)\n- [BitRun vs Lemonade](https://www.anchorterminal.com/compare/bitrun-vs-lemonade.md)\n- [BitRun vs llama.cpp](https://www.anchorterminal.com/compare/bitrun-vs-llama-cpp.md)\n- [BitRun vs LM Studio](https://www.anchorterminal.com/compare/bitrun-vs-lm-studio.md)\n- [BitRun vs LocalAI](https://www.anchorterminal.com/compare/bitrun-vs-localai.md)\n- [BitRun vs MLX LM](https://www.anchorterminal.com/compare/bitrun-vs-mlx-lm.md)\n- [BitRun vs Ollama](https://www.anchorterminal.com/compare/bitrun-vs-ollama.md)\n- [BitRun vs Open WebUI](https://www.anchorterminal.com/compare/bitrun-vs-open-webui.md)\n- [BitRun vs screenpipe](https://www.anchorterminal.com/compare/bitrun-vs-screenpipe.md)\n- [BitRun vs vLLM](https://www.anchorterminal.com/compare/bitrun-vs-vllm.md)\n- [Docker Model Runner vs TextGen](https://www.anchorterminal.com/compare/docker-model-runner-vs-text-generation-webui.md)\n- [Foundry Local vs TextGen](https://www.anchorterminal.com/compare/foundry-local-vs-text-generation-webui.md)\n- [Core vs TextGen](https://www.anchorterminal.com/compare/ghost-core-vs-text-generation-webui.md)\n- [GPT4All vs TextGen](https://www.anchorterminal.com/compare/gpt4all-vs-text-generation-webui.md)\n- [Jan vs TextGen](https://www.anchorterminal.com/compare/jan-vs-text-generation-webui.md)\n- [Khoj vs TextGen](https://www.anchorterminal.com/compare/khoj-vs-text-generation-webui.md)\n- [KoboldCpp vs TextGen](https://www.anchorterminal.com/compare/koboldcpp-vs-text-generation-webui.md)\n- [Lemonade vs TextGen](https://www.anchorterminal.com/compare/lemonade-vs-text-generation-webui.md)\n- [llama.cpp vs TextGen](https://www.anchorterminal.com/compare/llama-cpp-vs-text-generation-webui.md)\n- [LM Studio vs TextGen](https://www.anchorterminal.com/compare/lm-studio-vs-text-generation-webui.md)\n- [LocalAI vs TextGen](https://www.anchorterminal.com/compare/localai-vs-text-generation-webui.md)\n- [MLX LM vs TextGen](https://www.anchorterminal.com/compare/mlx-lm-vs-text-generation-webui.md)\n- [Ollama vs TextGen](https://www.anchorterminal.com/compare/ollama-vs-text-generation-webui.md)\n- [Open WebUI vs TextGen](https://www.anchorterminal.com/compare/open-webui-vs-text-generation-webui.md)\n- [screenpipe vs TextGen](https://www.anchorterminal.com/compare/screenpipe-vs-text-generation-webui.md)\n- [TextGen vs vLLM](https://www.anchorterminal.com/compare/text-generation-webui-vs-vllm.md)\n- [BitRun vs Underdog](https://www.anchorterminal.com/compare/bitrun-vs-underdog.md)\n- [TextGen vs Underdog](https://www.anchorterminal.com/compare/text-generation-webui-vs-underdog.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-15",
    "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",
    "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": "BitRun vs TextGen",
        "url": ""
      }
    ],
    "description": "TextGen scores 45.1 (E) to BitRun's 37.9 (F) for local inference. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "BitRun F 37.9",
      "TextGen E 45.1",
      "scores"
    ],
    "h1": "BitRun vs TextGen",
    "image": "https://www.anchorterminal.com/assets/og/compare-bitrun-vs-text-generation-webui.png",
    "path": "/compare/bitrun-vs-text-generation-webui",
    "published": "2026-10-01",
    "section": "tools",
    "title": "BitRun vs TextGen for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-15",
    "url": "https://www.anchorterminal.com/compare/bitrun-vs-text-generation-webui"
  },
  "tokens": {
    "markdown": 2600,
    "slim": 530
  },
  "version": 1
}
