One runbook per provider for adding new models and nodes. Each guide names the exact files, the command to run, a copy-pasteable snippet, and how the same change looked in past PRs.
Audience: coding agents and contributors keeping NodeTool current — a new image model shipped, a new endpoint went live, a new provider needs wiring. Start with the provider you’re updating; each guide is self-contained.
NodeTool spans many providers but only a few distinct mechanisms. Find your provider’s mechanism first — it tells you 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, Cohere, OpenRouter), Ollama, Local inference (LM Studio, llama.cpp, vLLM) |
| Static model list | A code edit to a hardcoded array in the provider (plus cost entry). | OpenAI (image), Gemini (Imagen/Veo) |
| Codegen from upstream schemas | Add an endpoint id to a config, run the generator — the manifest is regenerated, never hand-edited. | FAL, Replicate, KIE |
| Hand-maintained manifest | Add a JSON entry to the package manifest. | 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; Imagen/Veo are static lists.
- xAI (Grok) — chat, image, and video classified from
/v1/models. - OpenAI-compatible providers — Groq, Mistral, DeepSeek, Moonshot, Cerebras, Cohere, OpenRouter, 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 — nodes generated from per-model configs into a manifest.
- 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, vLLM over OpenAI-compatible localhost.
Before you open a PR
Whatever the mechanism, run the full check from the repo root:
npm run check # typecheck + lint + test across web, electron, mobile
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.
Contributions are welcome — open a PR on GitHub or say hi on Discord.