
What virtual models do
A virtual model is a model you define, instead of one a provider advertises. GoModel picks the kind from whether you give it a target:- A redirect (an alias) is a stable name that points to a concrete provider
model. Your app sends the name in the
modelfield, and GoModel resolves it before sending the request upstream. - An access policy has no target. It gates an existing model selector by
user_path— or disables it entirely — without adding a new name. See User Path for access control.
Models -> New virtual model.
Fill Target model to make a redirect; leave it empty to make an access
policy on the Source selector.
The rest of this page covers redirects.
Use stable names
You can expose names likeregular and smarter instead of provider-specific
model IDs.
regular->anthropic/claude-sonnet-4-6smarter->anthropic/claude-opus-4-6
Expose only redirects
To hide provider models fromGET /v1/models, set:
/v1/models
instead of the full provider model list. The setting is also listed in
.env.template.
Shadow a model
A redirect can “shadow” a model by using the same name as an existing model and pointing it somewhere else. This lets you override a requested model without changing application code. For example:- source:
anthropic/claude-opus-4-6 - target model:
anthropic/claude-sonnet-4-6
anthropic/claude-opus-4-6, while GoModel routes the
request to anthropic/claude-sonnet-4-6.
A/B testing
Redirects are useful for short model experiments. Move a redirect from one target to another, then compare app behavior, latency, and usage. For example, pointsmarter at Opus for one test and Sonnet for another. You can
also shadow opus-4-6 with sonnet-4-6 to check whether the same app flow still
works.