Skip to content

Providers

Commander supports 25 LLM providers. Set any single environment variable—Commander auto-detects the provider.

VariableProvider
OPENAI_API_KEYOpenAI / DeepSeek / GLM / MiMo (fallback chain)
AZURE_OPENAI_API_KEYAzure OpenAI
ANTHROPIC_API_KEYAnthropic Claude
GOOGLE_API_KEYGoogle Gemini
DEEPSEEK_API_KEYDeepSeek (dedicated)
ZHIPU_API_KEYGLM (Zhipu AI)
MIMO_API_KEYMiMo (dedicated)
XIAOMI_API_KEYXiaomi MiMo
GROQ_API_KEYGroq (fast inference)
TOGETHER_API_KEYTogether AI
PERPLEXITY_API_KEYPerplexity
FIREWORKS_API_KEYFireworks AI
REPLICATE_API_TOKENReplicate
MISTRAL_API_KEYMistral AI
CO_API_KEYCohere
OPENROUTER_API_KEYOpenRouter (200+ models)
OLLAMA_BASE_URL / OLLAMA_API_KEYOllama (local)
VLLM_BASE_URL / VLLM_API_KEYvLLM (local)
AWS_ACCESS_KEY_IDAWS Bedrock
XAI_API_KEYxAI (Grok)
ANYSCALE_API_KEYAnyscale
DEEPINFRA_API_KEYDeepInfra
AGNES_API_KEYAgnes
STEPFUN_API_KEYStepFun
MINIMAX_API_KEYMiniMax

Provider Selection

Commander uses a modelRouter.ts to select the optimal provider based on:

  • Task complexity — harder tasks route to stronger models
  • Cost constraints — simpler tasks use cheaper providers
  • Latency requirements — time-sensitive tasks use faster inference (Groq, Together)
  • Fallback chain — if primary provider fails, Commander automatically falls back
bash
# The simplest setup—just one key lets Commander auto-select
export OPENAI_API_KEY=sk-...

Custom Providers

Implement the LLMProvider interface and register it:

typescript
import { BaseLLMProvider } from '@commander/core';

class MyProvider extends BaseLLMProvider {
  async call(messages, options) {
    // Your implementation
  }
}

runtime.registerProvider('my-provider', new MyProvider());

MIT Licensed — Built for multi-agent orchestration.