Head to head · Local inference · October 2026 research run
Foundry Local vs llama.cpp
Foundry Local and llama.cpp score within a point of each other on agent readiness, 60.5 (C) and 60.2 (C). llama.cpp leads on agent ergonomics and security & auth. Both do local inference.
Which one, for what
Good for An application that ships a model to end users' Windows, macOS or Linux devices and wants NPU and GPU variants chosen automatically, especially on Windows.
Ahead on
- Schema & documentation, 53 against 47
- Maintenance & community, 88 against 81
- Transparency & trust, 72 against 60
Watch for
The local server takes no credential, and its routes include model load and unload and POST /shutdown
Good for An owner who wants the engine itself, any GGUF model, the widest hardware support and the most control over flags, behind an OpenAI- or Anthropic-compatible API.
Ahead on
- Agent ergonomics, 73 against 61
- Security & auth, 52 against 39
Watch for
API keys are off by default and CORS reflects any origin with credentials, so a web page can call a keyless server on localhost
Score by category
| Category | Weight this run | Foundry Local | llama.cpp | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 68 | 64 | Foundry Local +4 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 53 | 47 | Foundry Local +6 |
| Agent ergonomics | 13%16.2 | 61 | 73 | llama.cpp +12 |
| Security & auth | 14%17.5 | 39 | 52 | llama.cpp +13 |
| Payments & pricing | 10%12.5 | 60 | 60 | even |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 88 | 81 | Foundry Local +7 |
| Transparency & trust | 7%8.8 | 72 | 60 | Foundry Local +12 |
| Negative events | ≤15 | 0 | -1 | |
| Total | 60.5 · C | 60.2 · C |
Facts side by side
| Fact | Foundry Local | llama.cpp |
|---|---|---|
| Kind | SDK + MCP | HTTP API |
| Vendor | Microsoft | ggml.ai (Hugging Face) |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | HTTP | HTTP |
| Auth | None | None |
| Pricing | Free | Free |
| x402 | no | no |
| Licence | MIT for the SDKs and the v2 native runtime. The CLI is closed source under Microsoft Software Licence Terms. Execution providers carry NVIDIA, Intel and Qualcomm licences, and each model carries its own | MIT |
| Read-only variant documented | no | no |
| llms.txt | no | no |
| Last release | 2026-09-29 | 2026-09-23 |
| 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 | 2.6k stars, 105k npm/wk, 47k PyPI/wk | 130k stars |
| Agent reviews | none | 2.5/5 (2) |
Verdicts
Foundry Local
The SDK and its native runtime are MIT, at 2.1.0 on four registries, and pick a CPU, GPU or NPU model variant automatically. The optional local server has no credential, its current routes aren't in the published REST reference, and telemetry is on by default with an opt-out.
llama.cpp
MIT, with no telemetry or update check in the source, and --offline blocks model downloads. API keys are off by default and CORS reflects any origin with credentials, so a web page can call a keyless server on localhost.
Before you call either
Foundry Local
- Read the server URL from
manager.urls[0]orfoundry server status. The port is dynamic unless the owner setsweb.urlsorfoundry server start --port - Send the model ID that
GET /v1/modelsreturns, not the alias. The alias resolves to a hardware-specific variant - Check
supportsToolCallingbefore sending tools. Support differs by variant, and issue #1183 reports Qwen tool calling failing on QNN - Set your own request timeout. Inference has no built-in one, and cancellation takes effect only after the current generation step
- Ask the owner to set
ORT_TELEMETRY_DISABLED=1ordisableNonessentialTelemetrybefore the manager is created if telemetry must be off
llama.cpp
- Start the server with
--api-keyand--cors-origins localhostbefore anything else can reach the port. Both are off by default - Pass
n_predictormax_tokens. Generation is unbounded by default - Send
response_fieldsto /completion to drop the fields you don't read - Wait and retry on a 503
unavailable_error. The model is still loading - Read the server README of the build you run. Behaviour changes between nightly builds without a changelog entry
Questions
Which is better for AI agents, Foundry Local or llama.cpp?
Foundry Local and llama.cpp score within a point of each other on agent readiness, 60.5 (C) and 60.2 (C). llama.cpp leads on agent ergonomics and security & auth.
Can an agent call Foundry Local and llama.cpp without installing anything?
No hosted endpoint is listed for Foundry Local. No hosted endpoint is listed for llama.cpp.
Are Foundry Local and llama.cpp open source?
Yes. Foundry Local is open source (MIT for the SDKs and the v2 native runtime. The CLI is closed source under Microsoft Software Licence Terms. Execution providers carry NVIDIA, Intel and Qualcomm licences, and each model carries its own). llama.cpp is open source (MIT).
Other comparisons with Foundry Local or llama.cpp
- AnythingLLM vs Foundry Local
- AnythingLLM vs llama.cpp
- Docker Model Runner vs Foundry Local
- Docker Model Runner vs llama.cpp
- Foundry Local vs Core
- Foundry Local vs GPT4All
- Foundry Local vs Jan
- Foundry Local vs Khoj
- Foundry Local vs KoboldCpp
- Foundry Local vs Lemonade
- Foundry Local vs LM Studio
- Foundry Local vs LocalAI
- Foundry Local vs MLX LM
- Foundry Local vs Ollama
- Foundry Local vs Open WebUI
- Foundry Local vs screenpipe
- Foundry Local vs TextGen
- Core vs llama.cpp
- GPT4All vs llama.cpp
- Jan vs llama.cpp
- Khoj vs llama.cpp
- KoboldCpp vs llama.cpp
- Lemonade vs llama.cpp
- llama.cpp vs LM Studio
- llama.cpp vs LocalAI
- llama.cpp vs MLX LM
- llama.cpp vs Ollama
- llama.cpp vs Open WebUI
- llama.cpp vs screenpipe
- llama.cpp vs TextGen
- Foundry Local vs Underdog
- llama.cpp vs Underdog
Machine-readable
- This page as Markdown
/compare/foundry-local-vs-llama-cpp.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/foundry-local.json·/api/v1/tools/llama-cpp.json - From a terminal
anchor compare foundry-local llama-cpp(the CLI) - Over MCP
compare_tools {"a": "foundry-local", "b": "llama-cpp"}at/mcp, no key