vlmrun gw systemone, alias vlmrun gw s1, asks typed, calibrated questions of text, images, a PDF, or a video. It returns a probability per answer, not generated text. See System One for the concepts and gateway for shared options.
-s sets the state explicitly. Every positional is then media.
Asking questions
Each flag is repeatable.-Q / --questions takes inline JSON, @file.json, or - for stdin. Use a list (ids on each question) or the wire map. -B / --body sends a full request body. Other flags override it.
Listing models
vlmrun gw s1 models prints the models a gateway serves, with release dates. There is no catch-all alias. Name one with -m.
Video
A video positional is sampled into frames. Each frame is one read. Answers render as a series over time. A numeric question is a sparkline with its true peak and low. A choice is the segments it held.The video flags below ship in the next CLI release. The same reads are available now from Python. See Streaming.
--ws saves round trips. The saving grows with frame count. Set it on anything but a short clip. See Streaming.
any is the default. A gate over footage usually asks whether something ever happened. sustained:N is the debounced form.
Gates
--gate asserts a condition and sets the exit code. A script can use that exit code as a guard. The flag is repeatable. All gates must pass. Gates are checked against the question spec before the request is sent. A selector that cannot apply costs nothing.
--json, verdicts go to stderr. Stdout stays the response body.
Repeats and dry runs
--repeat N sends the same request N times. It reports the mean, the spread, and every read. Gates apply to the mean. --samples averages noise draws inside a single read.
--dry-run prints the request body and exits without sending it. Piped output is the verbatim body. It composes with curl.
Options
The CLI fetches remote images. The route accepts images only as data URLs. The URL must resolve to a public address. Set
VLMRUN_ALLOW_PRIVATE_URLS=1 for an internal image host.