Model Providers

Providers connect Open Interpreter to model services. A provider decides where requests are sent and how you authenticate; a model is the model ID you run; a harness controls the agent-facing prompt, tools, and message behavior.

For most providers, start Open Interpreter and use /model:

> /model

Choose the provider, authenticate or set the requested environment variable, then choose a model. Open Interpreter automatically selects a provider-specific harness when one is configured for that model family. You can inspect or override it with /harness.

Provider Guides

Provider familyAuthenticationDefault behaviorGuide
Kimi K3 and MoonshotKimi Code sign-in, KIMI_API_KEY, or MOONSHOT_API_KEYkimi-code harnessKimi K3
DeepSeekDEEPSEEK_API_KEYclaude-code-bare harnessDeepSeek
Z.AI, Zhipu AI, and GLMZAI_API_KEY or ZHIPU_API_KEYGeneric Chat, or zcode with a Messages endpointZ.AI, GLM, and ZCode

These guides cover the provider IDs, current model-selection path, API or subscription setup, harness behavior, direct CLI use, and common mistakes.

Provider, Model, and Harness

Keep the three layers separate when troubleshooting:

LayerExampleWhat it controls
ProviderdeepseekEndpoint, credentials, and wire API
Modeldeepseek-v4-proThe model sent to that endpoint
Harnessclaude-code-bareAgent prompt, tools, and request shaping

The provider's wire_api must support the selected harness. See Harness for the compatibility matrix.

Provider Reference

The active provider decides where requests are sent, how credentials are attached, which wire API is used, and which bundled model metadata seeds the picker.

The source of truth is code, not this table:

  • Built-in runtime providers: codex-rs/model-provider-info/src/lib.rs
  • Generated hosted-provider catalog: codex-rs/model-provider-info/provider_catalog.json
  • Hosted-provider generator inputs: codex-rs/scripts/write_provider_catalog.py and codex-rs/model-provider-info/provider_catalog_overrides.json
  • Model metadata: codex-rs/codex-api/model_compatibility_catalog.json and codex-rs/models-manager/src/provider_catalog_models.rs

Built-In Runtime Providers

These providers exist even before the generated hosted-provider catalog is consulted.

Provider IDNameWire APIAuth
openaiOpenAIresponsesChatGPT sign-in or OpenAI auth manager
amazon-bedrockAmazon BedrockresponsesAWS SigV4 via model_providers.amazon-bedrock.aws
ollamaOllama local OSSresponsesnone
lmstudioLM Studio local OSSresponsesnone

OpenAI also has an onboarding preset named openai_api_key. That preset writes an OpenAI-compatible provider using OPENAI_API_KEY; it is a setup shortcut, not a separate built-in provider id in the runtime provider map.

Wire APIs

wire_api controls the HTTP request shape.

ValueTransportUsed by
responsesOpenAI Responses API style requestsOpenAI, Bedrock, Ollama, LM Studio, custom Responses-compatible providers
chatOpenAI-compatible Chat Completions requestsMost generated hosted providers and chat harnesses
messagesAnthropic Messages requestsAnthropic-style providers and Claude Code harness mode

For custom providers:

[model_providers.example]
name = "Example"
base_url = "https://api.example.com/v1"
env_key = "EXAMPLE_API_KEY"
wire_api = "chat"

Use wire_api = "responses" for OpenAI Responses-compatible providers, wire_api = "chat" for OpenAI-compatible chat-completions providers, and wire_api = "messages" only for Anthropic Messages-compatible providers.

Authentication

Provider auth can come from:

  • env_key, which reads a bearer token from an environment variable.
  • experimental_bearer_token, when embedding a token is unavoidable.
  • command-backed auth, which runs a local command and caches the returned bearer token.
  • aws, only for amazon-bedrock.
  • OpenAI auth manager state for providers that set requires_openai_auth.

Anthropic-style API-key auth uses the x-api-key header and automatically adds anthropic-version: 2023-06-01. Other API-key providers use Authorization: Bearer ....

Kimi has two distinct provider paths:

  • kimi-for-coding uses https://api.kimi.com/coding/v1 and supports the built-in Kimi sign-in flow for an eligible Kimi Code subscription. It can also read a compatible token from KIMI_API_KEY.
  • moonshotai uses https://api.moonshot.ai/v1 with a Moonshot Platform API key from MOONSHOT_API_KEY. A Moonshot Platform key is not a Kimi Code subscription token.

Command-backed auth example:

[model_providers.example.auth]
command = "example-token"
args = ["print"]
timeout_ms = 5000
refresh_interval_ms = 300000

Generated Hosted Providers

The generated catalog is built from https://models.dev/api.json, plus live provider model endpoints configured in codex-rs/model-provider-info/provider_catalog_overrides.json. The generator includes providers backed by supported AI SDK packages, excludes unsupported or local-only entries, requires a usable base URL, and keeps only models that advertise tool calling and text output. Some provider entries are further filtered against live model IDs so decommissioned upstream models do not remain visible.

Common generated providers include:

Provider IDNameWire APIAuth envModels
anthropicAnthropicmessagesANTHROPIC_API_KEY25
openrouterOpenRouterchatOPENROUTER_API_KEY252
groqGroqchatGROQ_API_KEY7
github-modelsGitHub ModelschatGITHUB_TOKEN49
opencodeOpenCode ZenchatOPENCODE_API_KEY70
opencode-goOpenCode GochatOPENCODE_API_KEY18
github-copilotGitHub CopilotchatGITHUB_TOKEN23
poePoechatPOE_API_KEY103
perplexity-agentPerplexity AgentchatPERPLEXITY_API_KEY18
requestyRequestychatREQUESTY_API_KEY37
deepseekDeepSeekchatDEEPSEEK_API_KEY4
moonshotaiMoonshot AIchatMOONSHOT_API_KEY17
moonshotai-cnMoonshot AI (China)chatMOONSHOT_API_KEY7
zhipuaiZhipu AIchatZHIPU_API_KEY12
zaiZ.AIchatZAI_API_KEY14
siliconflowSiliconFlowchatSILICONFLOW_API_KEY76
siliconflow-cnSiliconFlow (China)chatSILICONFLOW_CN_API_KEY77
alibabaAlibabachatDASHSCOPE_API_KEY43
alibaba-cnAlibaba (China)chatDASHSCOPE_API_KEY75
stepfunStepFunchatSTEPFUN_API_KEY4
modelscopeModelScopechatMODELSCOPE_API_KEY7
qiniu-aiQiniuchatQINIU_API_KEY81
jiekouJiekou.AIchatJIEKOU_API_KEY58
302ai302.AIchat302AI_API_KEY92
novita-aiNovitaAIchatNOVITA_API_KEY64
fireworks-aiFireworks AIchatFIREWORKS_API_KEY20
nvidiaNvidiachatNVIDIA_API_KEY52
huggingfaceHugging FacechatHF_TOKEN22
chutesChuteschatCHUTES_API_KEY30
ollama-cloudOllama CloudchatOLLAMA_API_KEY36
llamaLlamachatLLAMA_API_KEY7
upstageUpstagechatUPSTAGE_API_KEY3
novaNovachatNOVA_API_KEY2
xiaomiXiaomichatXIAOMI_API_KEY5
abacusAbacuschatABACUS_API_KEY65
abliteration-aiabliteration.aichatABLIT_KEY1
alibaba-coding-planAlibaba Coding PlanchatALIBABA_CODING_PLAN_API_KEY9
alibaba-coding-plan-cnAlibaba Coding Plan (China)chatALIBABA_CODING_PLAN_API_KEY9
ambientAmbientchatAMBIENT_API_KEY2
aurikoAurikochatAURIKO_API_KEY15
bailingBailingchatBAILING_API_TOKEN1
basetenBasetenchatBASETEN_API_KEY14
bergetBerget.AIchatBERGET_API_KEY7
clarifaiClarifaichatCLARIFAI_PAT10
claudinioClaudiniochatCLAUDINIO_API_KEY1
cloudferro-sherlockCloudFerro SherlockchatCLOUDFERRO_SHERLOCK_API_KEY5
cortecsCortecschatCORTECS_API_KEY48
drunD.Run (China)chatDRUN_API_KEY3
digitaloceanDigitalOceanchatDIGITALOCEAN_ACCESS_TOKEN59
dinferenceDInferencechatDINFERENCE_API_KEY5
evrocevrocchatEVROC_API_KEY5
fastrouterFastRouterchatFASTROUTER_API_KEY14
firepassFireworks (Firepass)chatFIREPASS_API_KEY1
friendliFriendlichatFRIENDLI_TOKEN6
frogbotFrogBotchatFROGBOT_API_KEY26
gmicloudGMI CloudchatGMICLOUD_API_KEY8
heliconeHeliconechatHELICONE_API_KEY71
hpc-aiHPC-AIchatHPC_AI_API_KEY3
iflowcniFlowchatIFLOW_API_KEY14
inceptionInceptionchatINCEPTION_API_KEY1
inferenceInferencechatINFERENCE_API_KEY8
io-netIO.NETchatIOINTELLIGENCE_API_KEY17
kiloKilo GatewaychatKILO_API_KEY258
kimi-for-codingKimi For CodingchatKIMI_API_KEY6
kuae-cloud-coding-planKUAE Cloud Coding PlanchatKUAE_API_KEY1
lilacLilacchatLILAC_API_KEY4
llmgatewayLLM GatewaychatLLMGATEWAY_API_KEY156
lucidqueryLucidQuery AIchatLUCIDQUERY_API_KEY2
meganovaMeganovachatMEGANOVA_API_KEY18
minimaxMiniMax (minimax.io)messagesMINIMAX_API_KEY6
minimax-cnMiniMax (minimaxi.com)messagesMINIMAX_API_KEY6
minimax-coding-planMiniMax Token Plan (minimax.io)messagesMINIMAX_API_KEY6
minimax-cn-coding-planMiniMax Token Plan (minimaxi.com)messagesMINIMAX_API_KEY6
mixlayerMixlayerchatMIXLAYER_API_KEY5
moarkMoarkchatMOARK_API_KEY2
nano-gptNanoGPTchatNANO_GPT_API_KEY105
nearaiNEAR AI CloudchatNEARAI_API_KEY29
nebiusNebius Token FactorychatNEBIUS_API_KEY29
neuralwattNeuralwattchatNEURALWATT_API_KEY14
orcarouterOrcaRouterchatORCAROUTER_API_KEY79
ovhcloudOVHcloud AI EndpointschatOVHCLOUD_API_KEY10
qihang-aiQiHangchatQIHANG_API_KEY9
regolo-aiRegolo AIchatREGOLO_API_KEY10
routing-runrouting.runchatROUTING_RUN_API_KEY24
sarvamSarvam AIchatSARVAM_API_KEY2
scalewayScalewaychatSCALEWAY_API_KEY14
stackitSTACKITchatSTACKIT_API_KEY5
submodelsubmodelchatSUBMODEL_INSTAGEN_ACCESS_KEY9
syntheticSyntheticchatSYNTHETIC_API_KEY32
tencent-coding-planTencent Coding Plan (China)chatTENCENT_CODING_PLAN_API_KEY8
tencent-tokenhubTencent TokenHubchatTENCENT_TOKENHUB_API_KEY1
the-grid-aiThe Grid AIchatTHEGRIDAI_API_KEY9
umans-ai-coding-planUmans AI Coding PlanchatUMANS_AI_CODING_PLAN_API_KEY5
vivgridVivgridchatVIVGRID_API_KEY13
vultrVultrchatVULTR_API_KEY5
wafer.aiWaferchatWAFER_API_KEY2
wandbWeights & BiaseschatWANDB_API_KEY18
xiaomi-token-plan-cnXiaomi Token Plan (China)chatXIAOMI_API_KEY5
xiaomi-token-plan-amsXiaomi Token Plan (Europe)chatXIAOMI_API_KEY5
xiaomi-token-plan-sgpXiaomi Token Plan (Singapore)chatXIAOMI_API_KEY4
xpersonaXpersonachatXPERSONA_API_KEY2
zai-coding-planZ.AI Coding PlanchatZAI_API_KEY6
zenmuxZenMuxchatZENMUX_API_KEY110
zhipuai-coding-planZhipu AI Coding PlanchatZHIPU_API_KEY7

Model Picker Behavior

The picker uses provider metadata in two passes:

  1. It asks the active provider's /models endpoint when possible.
  2. It seeds or supplements results from the bundled provider catalog when the provider matches by Anthropic identity, base URL, provider name, or auth env var.

Generated model entries carry display name, description, context window, reasoning control, input modalities, and priority. The generator does not invent reasoning levels from a boolean reasoning flag; those controls come from compatibility metadata or explicit overrides.

Default Harness Selection

When no harness is explicitly configured, Open Interpreter may choose a native harness mode from the provider/model family:

MatchDefault harness
wire_api = "messages", Anthropic provider/name/base URL, or claude model idsclaude-code
kimi, moonshot, api.kimi.com, api.moonshot.ai, or api.moonshot.cnkimi-code
qwen, qwq, dashscope, or DashScope compatible-mode base URLsqwen-code
deepseek or api.deepseek.comclaude-code-bare

You can override this with harness = "..." in config. See Harness for route compatibility.

Regenerating The Catalog

Run this from codex-rs when provider source data changes:

python3 scripts/write_provider_catalog.py
python3 scripts/write_model_compatibility_catalog.py

To refresh only selected hosted providers while preserving every other generated entry, repeat --provider as needed:

python3 scripts/write_provider_catalog.py \
  --provider moonshotai \
  --provider kimi-for-coding

Live sources require their documented provider auth environment variables. For example, Moonshot requires MOONSHOT_API_KEY or KIMI_API_KEY, Z.AI requires ZAI_API_KEY or ZHIPU_API_KEY, and Groq requires GROQ_API_KEY. Missing auth is a generator failure, not a reason to silently keep stale data.

Model Providers | Open Interpreter