Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@ Under the hood:

Model access is yours: pick a provider, paste your key, switch anytime. Supported out of the box:

**OpenAI · Anthropic · Google Gemini · Inkling (Thinking Machines) · GLM (Z.ai) · DeepSeek · Kimi (Moonshot) · Qwen · MiniMax · Mistral · Grok (xAI)** - plus open-weight models via **Together** and **Fireworks**, and fully local models via **Ollama**.
**OpenAI · Anthropic · Google Gemini · NVIDIA NIM · Inkling (Thinking Machines) · GLM (Z.ai) · DeepSeek · Kimi (Moonshot) · Qwen · MiniMax · Mistral · Grok (xAI)** - plus open-weight models via **Together** and **Fireworks**, and fully local models via **Ollama**.

NVIDIA NIM provides hosted OpenAI-compatible model endpoints, including free development endpoints for selected models.

A curated model list marks what we've verified for tool-calling work. Adding any model string works at your own risk.

Expand Down
9 changes: 9 additions & 0 deletions coworker/providers/capabilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,15 @@ def capabilities_for(model: str) -> ModelCapabilities:
tools=True, vision=False, parallel_tool_calls=False, streaming=True
)

# NVIDIA NIM (custom-added ids; curated ones answered from the matrix above). The catalog
# spans many labs' checkpoints (Nemotron, Llama, DeepSeek, Qwen, …) with mixed tool-calling
# reliability across them, so stay conservative on parallel calls until a specific model is
# probed and added to the matrix — mirrors the Bedrock/Vertex custom-id posture below.
if provider == "nvidia":
return ModelCapabilities(
tools=True, vision=False, parallel_tool_calls=False, streaming=True
)

# Cloud-account providers (custom-added ids; curated ones answered from the matrix).
# The family segment decides: Claude keeps its native capabilities; everything else
# stays conservative until probed (Converse tool calling works across families, but
Expand Down
26 changes: 24 additions & 2 deletions coworker/providers/matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
showing a made-up denominator. Values entered 2026-07-28 from vendor docs; verify alongside
the id refresh.

Resellers: Together + Fireworks + OpenRouter. TODO: add Groq entries here AND its
descriptor in ``registry.py`` once the current provider surface is tested — deliberately
Resellers: Together + Fireworks + OpenRouter + NVIDIA NIM. TODO: add Groq entries here AND
its descriptor in ``registry.py`` once the current provider surface is tested — deliberately
deferred to bound how much needs verifying at once.
"""

Expand Down Expand Up @@ -110,6 +110,16 @@ class ModelEntry:
"Mistral Large · Mistral", _AGENTIC, 128_000
),
# -- resellers (their model namespaces, verbatim) -----------------------------
"nvidia:nvidia/nemotron-3-nano-30b-a3b": ModelEntry(
"Nemotron 3 Nano 30B · NVIDIA NIM",
ModelCapabilities(
tools=True,
vision=False,
parallel_tool_calls=False,
streaming=True,
),
262_144,
),
"together:thinkingmachines/Inkling": ModelEntry("Inkling · via Together"),
"together:zai-org/GLM-5.2": ModelEntry("GLM-5.2 · via Together", _AGENTIC, 128_000),
# Kimi K3 on Together (landed late July 2026): 1M window, native vision; PDFs
Expand Down Expand Up @@ -157,6 +167,18 @@ class ModelEntry:
"openrouter:meta-llama/llama-4-maverick": ModelEntry(
"Llama 4 Maverick · via OpenRouter", _AGENTIC, 1_000_000
),
# NVIDIA NIM ids use the catalog's own `<publisher>/<model>` namespace (checked against
# the NIM catalog 2026-07-04). Nemotron Super 3 120B is NVIDIA's own flagship — the reason
# to reach for NIM over another reseller when it's on the free tier.
"nvidia:nvidia/nemotron-super-3-120b": ModelEntry(
"Nemotron Super 3 120B · via NVIDIA NIM", _AGENTIC, 128_000
),
"nvidia:deepseek-ai/deepseek-v4-pro": ModelEntry(
"DeepSeek V4 Pro · via NVIDIA NIM", _AGENTIC, 128_000
),
"nvidia:meta/llama-4-maverick-17b-128e-instruct": ModelEntry(
"Llama 4 Maverick · via NVIDIA NIM", _AGENTIC, 1_000_000
),
# -- cloud accounts (models running in the user's own AWS/GCP) ----------------
# Bedrock ids carry a family segment (claude/ → native Anthropic path, other/ →
# Converse) plus AWS's own `-v<n>:<m>` version suffix. Some regions require the
Expand Down
15 changes: 15 additions & 0 deletions coworker/providers/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,21 @@ def _compat(
recommended_model="z-ai/glm-5.2",
env_key="OPENROUTER_API_KEY",
),
# NVIDIA NIM: NVIDIA's own hosted catalog of 100+ open-weight models (its own Nemotron
# line alongside Llama, DeepSeek, Qwen, Mistral, and others), all behind one key and one
# OpenAI-compatible endpoint. Free API keys (no credit card) are issued at build.nvidia.com,
# which is what makes this worth listing next to the paid resellers above.
_compat(
"nvidia",
"NVIDIA NIM",
base_url="https://integrate.api.nvidia.com/v1",
recommended_model="nvidia/nemotron-3-nano-30b-a3b",
env_key="NVIDIA_API_KEY",
endpoint_help=(
"Prefilled with NVIDIA's hosted NIM endpoint. "
"You can replace it with a self-hosted NIM or compatible proxy."
),
),
ProviderDescriptor(
name="ollama",
title="Ollama (local models)",
Expand Down
Loading