vlmrun gateway (alias vlmrun gw) runs OpenAI-compatible OCR and vision-language models.
It calls the VLM Run Gateway at https://gateway.vlm.run/v1.
It uses the same VLMRUN_API_KEY as the rest of the CLI.
Unlike vlmrun chat, requests are a raw passthrough. No Files API upload. No Orion agent.
Every input is a local file path or an http(s) URL. URLs pass by reference. Local files are inlined as base64 data: URLs. The content part follows the media type:
gw chat needs a file, a URL, or -p/--prompt. OCR models such as
zai-org/glm-ocr and paddleocr/pp-ocrv6 reject text-only input. Use -p
alone only with chat models like qwen/qwen3.5-0.8b.
Model ids are the full <org>/<name> from vlmrun gw models. Short aliases work. pp-ocrv6 maps to paddleocr/pp-ocrv6.
Health
Exits non-zero when the check fails. The reply includes version and commit. See
Health.
Models
The default method is marked *. --json returns the raw catalog records. A detail view adds a commands array. See Gateway Models for the catalog.
Embed
Each file and each -t / --text becomes its own vector. --join combines inputs into one vector. At most one file. File inputs must be images or video. Use -t for text.
Without --json, the CLI prints one row per input. Each row shows the vector’s dimensionality and first four components. The footer is model · T:<total> tokens · <latency>s. qwen/qwen3-vl-embedding-2b returns 2048 dimensions by default. --dimensions truncates that vector.
Options
Transcribe
Pass a file or --url. Not both. The transcript prints in a Transcript panel. The footer is model · <format> · <latency>s.
Options
Command Reference
Configuration
The OpenAI-compatible surface is the base URL plus /openai. Pass that URL as base_url to an OpenAI SDK client. Gateway requests default to a 600 second timeout. The CLI default is 120 seconds. --timeout overrides the gateway timeout.
See the Gateway documentation for the model catalog, methods for the methods reference, and client.gateway for the Python SDK.