Skip to main content

The qry operator CLI

qry is a single binary for the people who run a Qry installation. It checks a deployment before and after an upgrade, audits which model each setting really uses, and gathers a support bundle that already says what is wrong. It is cut from the same release as the platform, so its checks match the version they talk to.

Install and update​

curl -fsSL https://get.qry.dev/install.sh | bash               # the latest release
QRY_VERSION=0.187.0 curl -fsSL https://get.qry.dev/install.sh | bash # a specific one

qry update replaces the binary in place with the latest release (--version X.Y.Z for a specific one, --check to only report). Every download is checked against the release's published SHA-256 before it is installed.

Sign in​

qry login --url https://qry.your-company.com

qry login uses the deployment's own sign-in, so the CLI acts as you: it has your permissions and can never do more than you can in the web. Credentials are kept in ~/.config/qry/config.yaml (mode 0600 — the file is refused if it is readable by others), one profile per deployment. For a scheduled run, QRY_URL and QRY_TOKEN provide a single deployment instead of a config file.

Check a deployment: qry doctor​

qry doctor groups its checks by what each needs to run, so a run that cannot reach your cluster says so once instead of failing every cluster check.

PlaneNeedsChecks
product (default)a qry loginwhat the API can see: licence, scheduled jobs failing repeatedly, model settings, prices
clustera kubeconfig, kubectl, helmpods, restarts and out-of-memory kills, database migrations, the JWT secret
releasea kubeconfigthe preconditions for a helm upgrade: the target chart exists, the release is not stuck, every component is on the same tag
prerequisitesaz loginan Azure AI Foundry environment before Qry is installed — whether Entra identity can actually reach each model endpoint
qry doctor                                              # the product plane
qry doctor --plane cluster -n qry-app
qry doctor --plane all --target-version 0.187.0 -n qry-app # before an upgrade
qry doctor --explain # what it would check, without checking
qry doctor --output json

A check that cannot run is reported as could not run, never as a pass. The exit status is 1 when a finding is an error (or any finding, with --strict), so qry doctor --strict in a nightly job fails as soon as something needs attention.

Checks are data, not code — a YAML file of endpoints or commands with an expression each — and you can supply your own with --checks FILE.

Model settings: qry models​

A setting that names a model whose row was removed, or a disabled model, is silently replaced by a fallback at run time. qry models audit lists every admin setting that names a model and says which one it really runs. qry models bump moves settings to the vendor's named successor (a preview until --apply); a setting edited since the audit is skipped, never overwritten.

Upgrade: qry tenant upgrade​

qry tenant upgrade --version 0.187.0 -n qry-app          # preflight, prints the helm command
qry tenant upgrade --version 0.187.0 -n qry-app --apply # runs it, waits for the rollout, checks again

It runs the release-plane checks first, uses --reset-then-reuse-values (never --reuse-values, which fails on any value a new chart adds) and moves every component's image to the version. It changes nothing without --apply.

Support bundle: qry bundle​

qry bundle -n qry-app --since 12h

Collects logs, events and the state of the deployment into one archive, with the result of qry doctor inside — so whoever receives it can see what is wrong without running anything. Kubernetes Secrets are never collected; ConfigMaps and Helm values only with --include-config, passed through a redactor that masks anything that looks like a credential — review the archive before you send it.

Everything else​

CommandWhat it does
qry smokeasks a real question end to end and reports each step
qry pricing applycompares model prices with the published ones; --apply corrects them
qry config diff A Bwhat differs between two deployments' configuration
qry token list · qry token revoke <id>your command-line tokens
qry profiles · qry logoutthe deployments you are signed in to

Only qry pricing apply, qry models bump and qry tenant upgrade change anything, and none of them does without --apply.