base_url at your server, and every example in these docs runs as is.
Pick a setup
Weights are the minimum GPU or unified memory: the KV cache and image encoder come on top. Holo3.1 35B-A3B is what the API serves as
holo3-1-35b-a3b. Each Hugging Face model card states its license.
Start a server
- macOS (llama.cpp)
- DGX Spark (vLLM)
- NVIDIA GPU (vLLM, Holo4)
Use llama.cpp with Metal and the The server listens on port
Q4_K_M GGUF. Prefix caching needs room for the KV cache on top of the 21 GB of weights. If memory is tight, lower --cache-ram and --ctx-size.8080: base URL http://localhost:8080/v1. Any string works as the model ID. For Holo4, use the Holo4 GGUF repo instead.Tuned flags for higher throughput
Tuned flags for higher throughput
Point your client at it
Use the same client as the Quickstart with a differentbase_url. The examples target vLLM on port 8000. For llama.cpp, use 8080. The server ignores the API key, but the OpenAI SDKs refuse an empty one.
--model also sets the prompt format, so pass the Holo version you serve (for example holo3-1-35b-a3b for the Holo3.1 recipes). For MCP hosts, see Run the model yourself. To run Agents API sessions on this server, see Run the model on your own GPUs.
Checkpoints
Holo4 checkpoints
Holo4 35B-A3B is under Apache 2.0. Holo4 27B is for research use (CC BY-NC 4.0). Weight sizes are in parentheses.Holo3.1 checkpoints
The 9B, 4B, and 0.8B sizes are not on the API. They are open weights under Apache 2.0.
Throughput: vLLM benchmark tool, agentic workload (12k input tokens, 1k output tokens, three 1080p images per request, concurrency 1). NVFP4 uses NVIDIA Model Optimizer in a W4A16 configuration.
Agent speed in HoloDesktop CLI
Agent speed in HoloDesktop CLI
Steps per minute matter more than tokens per second. Model requests per minute for Holo3.1 35B-A3B inside HoloDesktop CLI:
On DGX Spark, NVFP4 plus the harness optimizations cut the average step from 6.8 s to 3.3 s, about twice as fast as the FP8 baseline. The fast harness (
holo run --fast) takes one screenshot per step, skips thinking, and sends smaller images: quicker, less accurate on fiddly UIs. llama.cpp does not yet cache prefixes or images for the Qwen architecture, which holds its throughput back.