nvidia/vllm-setup
Deploy a vLLM inference server on an NVIDIA DGX Station GB300 with validated container, GPU targeting, and tuning parameters. Use when the user asks to serve a model with vLLM, start a vLLM endpoint, or set up OpenAI-compatible inference on DGX Station.
npx skills add https://github.com/NVIDIA/dgx-spark-playbooks --skill vllm-setup
Deploy a vLLM inference server on DGX Station with validated configuration.
nvidia-smi --query-gpu=index,name --format=csv,noheader
Identify the device index for the GB300 (typically device 1). Use this index for --gpus below. Do NOT use --gpus all — mixed coherency will cause CUDA failures.
nvidia/Qwen3-235B-A22B-NVFP4 — large MoE model, fits in 279 GB HBMmeta-llama/Llama-3.1-70B-Instruct — solid general-purpose modelQwen/Qwen3-8B — small model for testing-e HF_TOKEN="..." — do not rely on shell export in background Docker tasks. docker pull nvcr.io/nvidia/vllm:26.01-py3
docker run -d \
--name vllm-server \
--gpus '"device=<GB300_INDEX>"' \
--ipc host \
--ulimit memlock=-1 \
--ulimit stack=67108864 \
-p 8000:8000 \
-e HF_TOKEN="<TOKEN>" \
-v "$HOME/.cache/huggingface/hub:/root/.cache/huggingface/hub" \
nvcr.io/nvidia/vllm:26.01-py3 \
vllm serve "<MODEL>" \
--max-model-len 32768 \
--gpu-memory-utilization 0.9
Container version: Use nvcr.io/nvidia/vllm:26.01-py3. Do NOT use 25.10 — it has a FlashInfer buffer overflow on DGX Station.
docker logs -f vllm-server
Wait for the line indicating the server is listening on port 8000.
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "<MODEL>",
"messages": [{"role": "user", "content": "Hello"}],
"max_tokens": 64
}'
docker stop vllm-server && docker rm vllm-serverAdjust these based on the user's workload:
| Parameter | Default | Agent workloads | Throughput workloads |
|-----------|---------|-----------------|---------------------|
| --max-model-len | 32768 | 32768-65536 | 8192-16384 |
| --gpu-memory-utilization | 0.9 | 0.85-0.90 | 0.90-0.92 |
| --enable-prefix-caching | off | Enable (multi-turn reuse) | Enable |
| --max-num-seqs | default | 4-16 (lower latency) | 32+ (higher throughput) |
Take nvidia/vllm-setup from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference docker.
Without those the skill loads but fails at the first command.