1. Create a free API key on NVIDIA → https://build.nvidia.com
2. npm i -g free-coding-models
3. free-coding-models
Find the fastest coding LLM models in seconds
Ping free NVIDIA NIM models in real-time — pick the best one for OpenCode, OpenClaw, or any AI coding assistant
Features • Requirements • Installation • Usage • Models • OpenCode • OpenClaw • How it works
- 🎯 Coding-focused — Only LLM models optimized for code generation, not chat or vision
- 🚀 Parallel pings — All 44 models tested simultaneously via native
fetch - 📊 Real-time animation — Watch latency appear live in alternate screen buffer
- 🏆 Smart ranking — Top 3 fastest models highlighted with medals 🥇🥈🥉
- ⏱ Continuous monitoring — Pings all models every 2 seconds forever, never stops
- 📈 Rolling averages — Avg calculated from ALL successful pings since start
- 📊 Uptime tracking — Percentage of successful pings shown in real-time
- 🔄 Auto-retry — Timeout models keep getting retried, nothing is ever "given up on"
- 🎮 Interactive selection — Navigate with arrow keys directly in the table, press Enter to act
- 🔀 Startup mode menu — Choose between OpenCode and OpenClaw before the TUI launches
- 💻 OpenCode integration — Auto-detects NIM setup, sets model as default, launches OpenCode
- 🦞 OpenClaw integration — Sets selected model as default provider in
~/.openclaw/openclaw.json - 🎨 Clean output — Zero scrollback pollution, interface stays open until Ctrl+C
- 📶 Status indicators — UP ✅ · Timeout ⏳ · Overloaded 🔥 · Not Found 🚫
- 🔧 Multi-source support — Extensible architecture via
sources.js(add new providers easily) - 🏷 Tier filtering — Filter models by tier letter (S, A, B, C) with
--tier
Before using free-coding-models, make sure you have:
- Node.js 18+ — Required for native
fetchAPI - NVIDIA NIM account — Free tier available at build.nvidia.com
- API key — Generate one from Profile → API Keys → Generate API Key
- OpenCode (optional) — Install OpenCode to use the OpenCode integration
- OpenClaw (optional) — Install OpenClaw to use the OpenClaw integration
💡 Tip: Without OpenCode/OpenClaw installed, you can still benchmark models and get latency data.
# npm (global install — recommended)
npm install -g free-coding-models
# pnpm
pnpm add -g free-coding-models
# bun
bun add -g free-coding-models
# Or use directly with npx/pnpx/bunx
npx free-coding-models YOUR_API_KEY
pnpx free-coding-models YOUR_API_KEY
bunx free-coding-models YOUR_API_KEY# Just run it — shows a startup menu to pick OpenCode or OpenClaw, prompts for API key if not set
free-coding-models
# Explicitly target OpenCode (current default behavior — TUI + Enter launches OpenCode)
free-coding-models --opencode
# Explicitly target OpenClaw (TUI + Enter sets model as default in OpenClaw)
free-coding-models --openclaw
# Show only top-tier models (A+, S, S+)
free-coding-models --best
# Analyze for 10 seconds and output the most reliable model
free-coding-models --fiable
# Filter models by tier letter
free-coding-models --tier S # S+ and S only
free-coding-models --tier A # A+, A, A- only
free-coding-models --tier B # B+, B only
free-coding-models --tier C # C only
# Combine flags freely
free-coding-models --openclaw --tier S
free-coding-models --opencode --bestWhen you run free-coding-models without --opencode or --openclaw, you get an interactive startup menu:
⚡ Free Coding Models — Choose your tool
❯ 💻 OpenCode
Press Enter on a model → launch OpenCode with it as default
🦞 OpenClaw
Press Enter on a model → set it as default in OpenClaw config
↑↓ Navigate • Enter Select • Ctrl+C Exit
Use ↑↓ arrows to select, Enter to confirm. Then the TUI launches with your chosen mode shown in the header badge.
How it works:
- Ping phase — All 44 models are pinged in parallel
- Continuous monitoring — Models are re-pinged every 2 seconds forever
- Real-time updates — Watch "Latest", "Avg", and "Up%" columns update live
- Select anytime — Use ↑↓ arrows to navigate, press Enter on a model to act
- Smart detection — Automatically detects if NVIDIA NIM is configured in OpenCode or OpenClaw
Setup wizard:
🔑 Setup your NVIDIA API key
📝 Get a free key at: https://build.nvidia.com
💾 Key will be saved to ~/.free-coding-models
Enter your API key: nvapi-xxxx-xxxx
✅ API key saved to ~/.free-coding-models
# Pass directly
free-coding-models nvapi-xxxx-your-key-here
# Use environment variable
NVIDIA_API_KEY=nvapi-xxx free-coding-models
# Or add to your shell profile
export NVIDIA_API_KEY=nvapi-xxxx-your-key-here
free-coding-models- Create NVIDIA Account — Sign up at build.nvidia.com with your email
- Verify — Confirm email, set privacy options, create NGC account, verify phone
- Generate Key — Go to Profile → API Keys → Generate API Key
- Name it — e.g., "free-coding-models" or "OpenCode-NIM"
- Set expiration — Choose "Never" for convenience
- Copy securely — Key is shown only once!
💡 Free credits — NVIDIA offers free credits for NIM models via their API Catalog for developers.
44 coding models across 8 tiers, ranked by Aider Polyglot benchmark (225 coding exercises across C++/Go/Java/JS/Python/Rust). Models without a confirmed Aider score are estimated from model family, size, and published release benchmarks.
| Tier | Score | Count | Models |
|---|---|---|---|
| S+ | 75%+ | 7 | DeepSeek V3.1/Terminus, DeepSeek V3.2, Kimi K2.5, Devstral 2, Nemotron Ultra 253B, Mistral Large 675B |
| S | 62–74% | 7 | Qwen2.5 Coder 32B, GLM 5, Qwen3.5 400B VLM, Qwen3 Coder 480B, Qwen3 80B Thinking, Llama 3.1 405B, MiniMax M2.1 |
| A+ | 54–62% | 6 | Kimi K2 Thinking/Instruct, Qwen3 235B, Llama 3.3 70B, GLM 4.7, Qwen3 80B Instruct |
| A | 44–54% | 5 | MiniMax M2, Mistral Medium 3, Magistral Small, Nemotron Nano 30B, R1 Distill 32B |
| A- | 36–44% | 5 | GPT OSS 120B, Nemotron Super 49B, Llama 4 Scout, R1 Distill 14B, Colosseum 355B |
| B+ | 25–36% | 5 | QwQ 32B, GPT OSS 20B, Stockmark 100B, Seed OSS 36B, Step 3.5 Flash |
| B | 14–25% | 5 | Llama 4 Maverick, Mixtral 8x22B, Ministral 14B, Granite 34B Code, R1 Distill 8B |
| C | <14% | 4 | R1 Distill 7B, Gemma 2 9B, Phi 3.5 Mini, Phi 4 Mini |
- S+/S — Frontier coders, top Aider polyglot scores, best for complex refactors
- A+/A — Excellent alternatives, strong at most coding tasks
- A-/B+ — Solid performers, good for targeted programming tasks
- B/C — Lightweight or older models, good for code completion on constrained infra
Use --tier to focus on a specific capability band:
free-coding-models --tier S # Only S+ and S (frontier models)
free-coding-models --tier A # Only A+, A, A- (solid performers)
free-coding-models --tier B # Only B+, B (lightweight options)
free-coding-models --tier C # Only C (edge/minimal models)The easiest way — let free-coding-models do everything:
- Run:
free-coding-models --opencode(or choose OpenCode from the startup menu) - Wait for models to be pinged (green ✅ status)
- Navigate with ↑↓ arrows to your preferred model
- Press Enter — tool automatically:
- Detects if NVIDIA NIM is configured in OpenCode
- Sets your selected model as default in
~/.config/opencode/opencode.json - Launches OpenCode with the model ready to use
Create or edit ~/.config/opencode/opencode.json:
{
"provider": {
"nvidia": {
"npm": "@ai-sdk/openai-compatible",
"name": "NVIDIA NIM",
"options": {
"baseURL": "https://integrate.api.nvidia.com/v1",
"apiKey": "{env:NVIDIA_API_KEY}"
}
}
},
"model": "nvidia/deepseek-ai/deepseek-v3.2"
}Then set the environment variable:
export NVIDIA_API_KEY=nvapi-xxxx-your-key-here
# Add to ~/.bashrc or ~/.zshrc for persistenceRun /models in OpenCode and select NVIDIA NIM provider and your chosen model.
⚠️ Note: Free models have usage limits based on NVIDIA's tier — check build.nvidia.com for quotas.
If NVIDIA NIM is not yet configured in OpenCode, the tool:
- Shows installation instructions in your terminal
- Creates a
promptfile in$HOME/promptwith the exact configuration - Launches OpenCode, which will detect and display the prompt automatically
OpenClaw is an autonomous AI agent daemon. free-coding-models can configure it to use NVIDIA NIM models as its default provider — no download or local setup needed, everything runs via the NIM remote API.
free-coding-models --openclawOr run without flags and choose OpenClaw from the startup menu.
- Wait for models to be pinged
- Navigate with ↑↓ arrows to your preferred model
- Press Enter — tool automatically:
- Reads
~/.openclaw/openclaw.json - Adds the
nvidiaprovider block (NIM base URL + your API key) if missing - Sets
agents.defaults.model.primarytonvidia/<model-id> - Saves config and prints next steps
- Reads
{
"models": {
"providers": {
"nvidia": {
"baseUrl": "https://integrate.api.nvidia.com/v1",
"api": "openai-completions"
}
}
},
"env": {
"NVIDIA_API_KEY": "nvapi-xxxx-your-key"
},
"agents": {
"defaults": {
"model": {
"primary": "nvidia/deepseek-ai/deepseek-v3.2"
},
"models": {
"nvidia/deepseek-ai/deepseek-v3.2": {}
}
}
}
}
⚠️ Note:providersmust be nested undermodels.providers— not at the config root. A root-levelproviderskey is ignored by OpenClaw.
⚠️ Note: The model must also be listed inagents.defaults.models(the allowlist). Without this entry, OpenClaw rejects the model with "not allowed" even if it is set as primary.
OpenClaw's gateway auto-reloads config file changes (depending on gateway.reload.mode). To apply manually:
# Apply via CLI
openclaw models set nvidia/deepseek-ai/deepseek-v3.2
# Or re-run the interactive setup wizard
openclaw configure
⚠️ Note:openclaw restartdoes not exist as a CLI command. Kill and relaunch the process manually if you need a full restart.
💡 Why use remote NIM models with OpenClaw? NVIDIA NIM serves models via a fast API — no local GPU required, no VRAM limits, free credits for developers. You get frontier-class coding models (DeepSeek V3, Kimi K2, Qwen3 Coder) without downloading anything.
Problem: By default, OpenClaw only allows a few specific NVIDIA models in its allowlist. If you try to use a model that's not in the list, you'll get this error:
Model "nvidia/mistralai/devstral-2-123b-instruct-2512" is not allowed. Use /models to list providers, or /models <provider> to list models.
Solution: Patch OpenClaw's configuration to add ALL 47 NVIDIA models from free-coding-models to the allowlist:
# From the free-coding-models package directory
node patch-openclaw.jsThis script:
- Backs up
~/.openclaw/agents/main/agent/models.jsonand~/.openclaw/openclaw.json - Adds all 47 NVIDIA models with proper context window and token limits
- Preserves existing models and configuration
- Prints a summary of what was added
After patching:
-
Restart OpenClaw gateway:
systemctl --user restart openclaw-gateway
-
Verify models are available:
free-coding-models --openclaw
-
Select any model — no more "not allowed" errors!
Why this is needed: OpenClaw uses a strict allowlist system to prevent typos and invalid models. The patch-openclaw.js script populates the allowlist with all known working NVIDIA models, so you can freely switch between them without manually editing config files.
┌─────────────────────────────────────────────────────────────┐
│ 1. Enter alternate screen buffer (like vim/htop/less) │
│ 2. Ping ALL models in parallel │
│ 3. Display real-time table with Latest/Avg/Up% columns │
│ 4. Re-ping ALL models every 2 seconds (forever) │
│ 5. Update rolling averages from ALL successful pings │
│ 6. User can navigate with ↑↓ and select with Enter │
│ 7. On Enter (OpenCode): set model, launch OpenCode │
│ 8. On Enter (OpenClaw): update ~/.openclaw/openclaw.json │
└─────────────────────────────────────────────────────────────┘
Result: Continuous monitoring interface that stays open until you select a model or press Ctrl+C. Rolling averages give you accurate long-term latency data, uptime percentage tracks reliability, and you can configure your tool of choice with your chosen model in one keystroke.
| Parameter | Description |
|---|---|
NVIDIA_API_KEY |
Environment variable for API key |
<api-key> |
First positional argument |
Configuration:
- Ping timeout: 15 seconds per attempt (slow models get more time)
- Ping interval: 2 seconds between complete re-pings of all models (adjustable with W/X keys)
- Monitor mode: Interface stays open forever, press Ctrl+C to exit
Flags:
| Flag | Description |
|---|---|
| (none) | Show startup menu to choose OpenCode or OpenClaw |
--opencode |
OpenCode mode — Enter launches OpenCode with selected model |
--openclaw |
OpenClaw mode — Enter sets selected model as default in OpenClaw |
--best |
Show only top-tier models (A+, S, S+) |
--fiable |
Analyze 10 seconds, output the most reliable model as provider/model_id |
--tier S |
Show only S+ and S tier models |
--tier A |
Show only A+, A, A- tier models |
--tier B |
Show only B+, B tier models |
--tier C |
Show only C tier models |
Keyboard shortcuts:
- ↑↓ — Navigate models
- Enter — Select model (launches OpenCode or sets OpenClaw default, depending on mode)
- R/T/O/M/P/A/S/V/U — Sort by Rank/Tier/Origin/Model/Ping/Avg/Status/Verdict/Uptime
- W — Decrease ping interval (faster pings)
- X — Increase ping interval (slower pings)
- Ctrl+C — Exit
git clone https://github.com/vava-nessa/free-coding-models
cd free-coding-models
npm install
npm start -- YOUR_API_KEY- Make your changes and commit them with a descriptive message
- Update
CHANGELOG.mdwith the new version entry - Bump
"version"inpackage.json(e.g.0.1.3→0.1.4) - Commit with just the version number as the message:
git add .
git commit -m "0.1.4"
git pushThe GitHub Actions workflow automatically publishes to npm on every push to main.
MIT © vava
Built with ☕ and 🌹 by vava
We welcome contributions! Feel free to open issues, submit pull requests, or get involved in the project.
Q: Can I use this with other providers? A: Yes, the tool is designed to be extensible; see the source for examples of customizing endpoints.
Q: How accurate are the latency numbers? A: They represent average round-trip times measured during testing; actual performance may vary based on network conditions.
Q: Do I need to download models locally for OpenClaw?
A: No — free-coding-models configures OpenClaw to use NVIDIA NIM's remote API, so models run on NVIDIA's infrastructure. No GPU or local setup required.
For questions or issues, open a GitHub issue or join our community Discord: https://discord.gg/QnR8xq9p
