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.