A vendor-neutral, kind-aware public catalog of LLM / embedding / rerank / media models — which model ids exist per vendor and, for each, its kind (chat, embedding, rerank, image, transcription, speech, video, moderation), context window, max output tokens, embedding dimensions, modalities and capability hints. Published as a free, unauthenticated, CORS-open, versioned JSON artifact. Part of Viglet Turing ES.
Identity + kind, not pricing. The catalog never carries cost/price — see docs/STRATEGY.md §I.
| URL | Meaning |
|---|---|
https://openviglet.github.io/model-catalog/catalog.json |
Rolling latest |
https://openviglet.github.io/model-catalog/catalog-v1.json |
Pinned to schema v1 |
https://openviglet.github.io/model-catalog/catalog.schema.json |
JSON Schema (Draft 2020-12) |
https://openviglet.github.io/model-catalog/ |
Browsable reference page |
Full contract → docs/references/api.md.
# every embedding model across all vendors
curl -s https://openviglet.github.io/model-catalog/catalog-v1.json \
| jq '.vendors | to_entries[].value[] | select(.kind=="EMBEDDING") | .id'Zero-/minimal-dependency, read-only clients wrap the endpoints above (URL selection,
vendors-map flattening, byKind/byVendor/get filters, in-memory caching). All
Apache-2.0, published to their public registries — nothing below needs auth:
| SDK | Install |
|---|---|
Java (JDK HttpClient, 17+) |
Maven Central — io.github.openviglet:model-catalog-client |
| JS / TS (ESM, Node 18+ & browser) | npm — npm i @openviglet/model-catalog-client |
Python (stdlib urllib, 3.8+) |
PyPI — pip install openviglet-model-catalog-client |
<dependency>
<groupId>io.github.openviglet</groupId>
<artifactId>model-catalog-client</artifactId>
<version>1.0.2</version>
</dependency>Per-SDK docs: Java · JS/TS · Python.
catalog/ canonical model-catalog.json + JSON Schema (single source of truth)
pipeline/ zero-dep multi-source regeneration pipeline (propose-and-review)
scripts/ emit.mjs — builds the public artifacts from the canonical file
public/ index.html (browsable page); models/* is emitted (gitignored)
docs/ references (api, pipeline) + roadmap set (ROADMAP/CHANGELOG/…)
The canonical file is hand-editable for a quick fix, or regenerated from
multiple trustworthy sources per vendor (live vendor APIs + the LiteLLM registry +
curated overrides.json) via the propose-and-review pipeline:
npm run regen # dry-run: fetch → merge → validate → write report (canonical untouched)
npm run regen -- --apply # write the canonical file (the only path that overwrites it)
npm run emit # rebuild the public artifacts from the canonical file
npm test # pipeline unit testsA missing API key skips that source; nothing hard-fails. The canonical file is only
ever overwritten on --apply. Full workflow → docs/references/pipeline.md.
.github/workflows/publish.yml emits the artifacts and deploys public/ to GitHub
Pages on every push to main that touches the catalog. It never regenerates
from upstream — publishing only serves the already-reviewed canonical file.
The pipeline, emit step and browsable page use only Node built-ins + global fetch
and inline HTML/CSS/JS. There is nothing to npm install. Requires Node ≥ 20.
- CONTRIBUTING.md — how to propose or correct a model (no code required) and how a proposal becomes a catalog entry.
- GOVERNANCE.md — who maintains this community-owned reference and how decisions are made (the neutrality guarantees).
- CODE_OF_CONDUCT.md — Contributor Covenant.
- SECURITY.md — how to report a vulnerability privately.
- Code — Apache-2.0 (the pipeline, emit step, page and SDKs).
- Catalog data — CC-BY 4.0 (the JSON compilation and every derived artifact): reuse freely with attribution to the Viglet Model Catalog.
The data is provided as is; accuracy is not warranted. Figures are indicative
and cited — verify against the vendor before relying on any value (see each
entry's sources / lastVerified).