/api/tags and /v1/models instead of the discovered catalog, for tools that make you pick one specific model id. Every dyva model name is a routing pattern, so one entry like qwen3 covers every qwen3:* variant on every host. Upload a plain text file, one name per line; blank lines and #comments are ignored. Clear turns the override back off and goes back to advertising the real catalog. Names no host currently serves stay listed (count 0) so the menu can't shift under a tool that pinned one. Minimum model count doesn't apply to an explicit list.
Each source fetches a JSON list of host rows from its url and maps fields onto host entries. Configured sources are tried before the built-ins, so they win on duplicate hosts.
mapping — each target field is one of:
{"field": "x"} — copy row["x"] from the source row{"value": 0} — a constantMap a server (or url) so the host can be keyed; models should resolve to a list of strings. CSV / transform-heavy sources aren't supported here.
Example
[
{
"name": "my-list",
"url": "https://example.com/hosts.json",
"mapping": {
"server": {"field": "url"},
"models": {"field": "models"},
"service": {"value": "ollama"}
}
}
]
{name, url, mapping}.