One runbook per provider for adding models and nodes. Each guide names the files, the command to run, and a snippet. Find the provider’s mechanism below first: it decides whether a new model needs zero code, a manifest entry, or a codegen run.
How adding a model works, by mechanism
| Mechanism | What “add a model” means | Providers |
|---|---|---|
| Dynamic fetch | Nothing — models appear from the provider’s live /models (or local daemon) endpoint. Code only for capability/cost overrides. |
OpenAI (chat), Anthropic, Gemini (text), xAI, OpenAI-compatible (Groq, Mistral, DeepSeek, Moonshot, Cerebras, Alibaba Cloud, OpenRouter, Requesty), Ollama, Local inference (LM Studio, llama.cpp, vLLM, in-process llama.cpp) |
| Static model list | A code edit to a hardcoded array in the provider (plus cost entry). | OpenAI (image), Gemini (image, Veo, Omni, Lyria, TTS, ASR, embeddings) |
| Codegen from upstream schemas | Add an endpoint id to a config, run the generator — the manifest is regenerated, never hand-edited. | FAL, Replicate, KIE |
| Manifest | Add a JSON entry to the package manifest. AtlasCloud adds a sync script for fields and Together generates its manifest from a script. | AtlasCloud, Topaz, Together |
| Static node package | Add a model id to the provider/base arrays, or a new BaseNode subclass. |
MiniMax, Reve, ElevenLabs, HuggingFace |
All guides
- OpenAI — chat models auto-fetch; image models (
gpt-image-*) are a static list. - Anthropic (Claude) — models fetched live from the Anthropic API.
- Google Gemini — text auto-fetches; image, Veo, Omni, and Lyria models are static lists.
- xAI (Grok) — a static catalog plus chat, image, and video rows classified from
/v1/models. - OpenAI-compatible providers — Groq, Mistral, DeepSeek, Moonshot, Cerebras, Alibaba Cloud, Cohere, OpenRouter, Requesty, Opper, API Route, Cheaper Inference, Runcrate, Standard Compute, UberLLM, and how to add a new one.
- FAL — nodes generated from FAL OpenAPI schemas via codegen.
- Replicate — nodes generated from Replicate model schemas via codegen.
- KIE — configs and manifest generated from KIE’s published API docs.
- AtlasCloud — hand-maintained manifest drives nodes and the model picker.
- Topaz — manifest-driven image/video enhancement nodes.
- Together AI — generated image/video manifest plus live-fetched chat models.
- MiniMax — chat, image, video, and audio via provider arrays and a node pack.
- Reve — image create/edit/remix nodes.
- ElevenLabs — TTS models and voices as static arrays (decorator package).
- HuggingFace — Hub-backed model discovery plus a hand-written node pack.
- Ollama — local models discovered from the running daemon (
ollama pull). - Local inference — LM Studio, llama.cpp, and vLLM over OpenAI-compatible localhost, plus in-process llama.cpp.
Before you open a PR
Whatever the mechanism, run these from the repo root:
npm run test:affected
npm run typecheck
npm run lint
npm run dev:nodetool -- harness gate --base origin/main
For decorator/codegen packages (FAL, Replicate, KIE, ElevenLabs, and other dist/-loaded packs), run npm run build:packages after regenerating so the runtime picks up the change. Each guide lists its exact verify commands. npm run check is the full aggregate and runs only when explicitly needed.