GitHub Docs

vLLM is a high-throughput inference server you run yourself. It exposes an OpenAI-compatible API, so VibeCody talks to it exactly as it talks to a hosted provider — the only differences are the base URL and that there is usually no API key at all.

Use it when you want to serve a large open-weight model on your own hardware with batching and paged attention, rather than one request at a time.

Requirements

  • A machine with a supported GPU (vLLM’s CPU backend exists but is slow enough that the desktop experience suffers)
  • vLLM installed: pip install vllm

Start the server

vllm serve meta-llama/Llama-3.1-8B-Instruct

That listens on http://localhost:8000/v1 — the default VibeCody assumes. The server prints the model id it is serving; that string is what you pass as the model, and it is the same id you gave vllm serve.

To confirm it is up and see exactly what it will answer to:

curl http://localhost:8000/v1/models

Configure VibeCody

No key is needed unless you started vLLM with --api-key. All three routes work:

Nothing at all — if vLLM is on the default port, vibecli --provider vllm works with no configuration.

Config file (~/.vibecli/config.toml) — for a non-default host or port:

[vllm]
api_url = "http://gpu-box.local:8000/v1"
model = "meta-llama/Llama-3.3-70B-Instruct"

Environment — VLLM_BASE_URL overrides the URL, VLLM_API_KEY supplies a key if you started the server with one:

export VLLM_BASE_URL=http://gpu-box.local:8000/v1

If you did start it with --api-key, store the key encrypted rather than in a file:

vibecli set-key vllm <key>

Models

vLLM serves whatever you passed to vllm serve — one model per server process. The list below is what the pickers offer as a starting point, not a claim about your machine; every picker also accepts a typed-in id, and /v1/models on your running server is the authority.

Model Notes
meta-llama/Llama-3.1-8B-Instruct Default. Fits on a single 24 GB card
meta-llama/Llama-3.3-70B-Instruct Needs multiple GPUs or heavy quantisation
Qwen/Qwen2.5-Coder-32B-Instruct Strongest coding model of this set
Qwen/Qwen2.5-Coder-7B-Instruct Coding model for a single card
mistralai/Mistral-7B-Instruct-v0.3 Small and fast
microsoft/Phi-3.5-mini-instruct Smallest; useful on constrained hardware

Verify

vibecli --provider vllm "Explain the borrow checker in two sentences"

Troubleshooting

“vLLM request failed” / connection refused — nothing is listening. Check the server is running and on the port you configured: curl http://localhost:8000/v1/models.

404 on /chat/completions — the base URL is missing the /v1 suffix. VibeCody appends /chat/completions to whatever you set, so api_url must end in /v1.

The model picker shows a model your server does not have — the listed models are suggestions. vLLM serves exactly one model, the one named in vllm serve. Type that id into the picker, or set it in config.toml.

401 Unauthorized — the server was started with --api-key but VibeCody has no key for it. Set it with vibecli set-key vllm <key>.

See also

  • Provider comparison — all providers side by side
  • LM Studio — the other local OpenAI-compatible server, with a GUI
  • Ollama — simpler local option, no GPU tuning required