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}.