Head to head · Local inference · October 2026 research run
Berth vs MLX LM
Berth scores 67.6 (B) on agent readiness against MLX LM's 52.5 (D), and leads in 5 of 7 scored categories. Both do local inference.
Best local AI models and assistants · All 229 local ai comparisons
Which one, for what
Berth B
Best 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.
Ahead on
- Reliability, 76 against 66
- Schema & documentation, 69 against 37
- Agent ergonomics, 75 against 54
- Security & auth, 51 against 32
- Maintenance & community, 76 against 61
Watch for
First released on 11 October 2026 and called alpha. Windows, AMD and multiple GPUs are experimental, and the gateway is a preview
MLX LM D
Best for An owner with an Apple silicon Mac who wants MLX-format models, local fine-tuning and quantisation from Python or the command line, with a simple local chat completions server.
Also in its favour
- No key needed to call it
Watch for
mlx_lm.server has no API key or other credential option, and --allowed-origins defaults to *
Score by category
| Category | Weight this run | Berth | MLX LM | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 76 | 66 | Berth +10 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 69 | 37 | Berth +32 |
| Agent ergonomics | 13%16.2 | 75 | 54 | Berth +21 |
| Security & auth | 14%17.5 | 51 | 32 | Berth +19 |
| Payments & pricing | 10%12.5 | 60 | 60 | even |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 76 | 61 | Berth +15 |
| Transparency & trust | 7%8.8 | 68 | 69 | MLX LM +1 |
| Negative events | ≤15 | 0 | 0 | |
| Total | B 67.6/100 | D 52.5/100 |
Facts side by side
| Fact | Berth | MLX LM |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Trevin Tindall (T-Crypt on GitHub) | Apple Inc. |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | HTTP | HTTP |
| Auth | API key | None |
| Pricing | Free | Free |
| x402 | no | no |
| Licence | Apache-2.0. The Berth name, the Pilot mascot and the artwork in assets/ are excluded from the licence, per the NOTICE file | MIT |
| Read-only variant documented | no | no |
| llms.txt | no | no |
| Last release | 2026-10-23 | 2026-10-01 |
| Terms last updated | no document linked | no document linked |
| Privacy policy last updated | no document linked | no document linked |
| Customer content may train models | ||
| Terms restrict automated access | ||
| Terms restrict benchmarking | ||
| Terms or service can change without notice | ||
| Arbitration or class-action waiver | ||
| Popularity | 245 stars | 7.3k stars, 140k PyPI/wk |
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.
MLX LM
MIT, with no telemetry found in the source, and the tests passed on the last eight pushes to main. mlx_lm.server has no API key option, answers any origin by default and loads whichever model a request names, and its own docs say it is not recommended for production.
Before you call either
Berth
- Run
berth status --format jsonbefore 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 holdor 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": truefor cold starts of up to minutes - On a 503, read the
codeand wait forRetry-After. A pinned holder (a game orberth hold) answers 409 to stop and is the user's call - Ask the user before
berth reclaim LEASE --yes, any berth.toml edit orberth update. Each changes the node
MLX LM
- Keep
mlx_lm.serveron 127.0.0.1 and pass--allowed-originswith the origins you trust. There is no API key, and the default answers every origin - Treat any caller as able to load any model. The
modelandadaptersrequest fields accept any Hugging Face repository or local path - Send
max_tokensormax_completion_tokenswhen you need more than 512 tokens, the server default - Read errors as
{"error": "<text>"}with 400 for a bad field and 404 for a model that failed to load. They are not OpenAI error objects - Poll
GET /healthbefore the first request. It answers 503 withunavailablewhen the generation thread has stopped
Questions
Which is better for AI agents, Berth or MLX LM?
Berth scores 67.6 (B) on agent readiness against MLX LM's 52.5 (D), and leads in 5 of 7 scored categories.
Do Berth and MLX LM need an API key?
Berth needs an API key. MLX LM needs no key.
Can an agent call Berth and MLX LM without installing anything?
No hosted endpoint is listed for Berth. No hosted endpoint is listed for MLX LM.
Are Berth and MLX LM open source?
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). MLX LM is open source (MIT).
Other comparisons with Berth or MLX LM
- AnythingLLM vs Berth
- AnythingLLM vs MLX LM
- Berth vs BitRun
- Berth vs Docker Model Runner
- Berth vs Foundry Local
- Berth vs Core
- Berth vs GPT4All
- Berth vs Jan
- Berth vs Khoj
- Berth vs KoboldCpp
- Berth vs Lemonade
- Berth vs llama.cpp
- Berth vs LM Studio
- Berth vs LocalAI
- Berth vs Ollama
- Berth vs Open WebUI
- Berth vs screenpipe
- Berth vs TextGen
- Berth vs vLLM
- BitRun vs MLX LM
- Docker Model Runner vs MLX LM
- Foundry Local vs MLX LM
- Core vs MLX LM
- GPT4All vs MLX LM
- Jan vs MLX LM
- Khoj vs MLX LM
- KoboldCpp vs MLX LM
- Lemonade vs MLX LM
- llama.cpp vs MLX LM
- LM Studio vs MLX LM
- LocalAI vs MLX LM
- MLX LM vs Ollama
- MLX LM vs Open WebUI
- MLX LM vs screenpipe
- MLX LM vs TextGen
- MLX LM vs vLLM
- MLX LM vs Underdog
Machine-readable
- This page as Markdown
/compare/berth-vs-mlx-lm.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/berth.json·/api/v1/tools/mlx-lm.json - From a terminal
anchor compare berth mlx-lm(the CLI) - Over MCP
compare_tools {"a": "berth", "b": "mlx-lm"}at/mcp, no key