Skip to content

Provider Catalog

DUUMBI keeps model choice inside the model catalog and routing policy. Provider credentials stay in provider configuration or credential storage, not in catalog metadata.

Use duumbi provider ... commands or the REPL provider setup surface for configuration. Users should not need to choose and maintain default model IDs for normal provider setup.

ProviderConfig keyEnvironment variable
AnthropicanthropicANTHROPIC_API_KEY
OpenAIopenaiOPENAI_API_KEY
xAIxaiXAI_API_KEY
MiniMaxminimaxMINIMAX_API_KEY
DeepSeekdeepseekDEEPSEEK_API_KEY
Alibaba Cloud Model Studio (Qwen)qwenDASHSCOPE_API_KEY
Moonshot AI (Kimi)moonshotMOONSHOT_API_KEY
Zhipu AI (GLM)zhipuZHIPUAI_API_KEY
Google GeminigeminiGEMINI_API_KEY

xai is the canonical config key for xAI/Grok models. Existing grok configuration is compatibility-only legacy input and should not be used in new examples.

OpenRouter is excluded from the V1 direct-provider catalog because it is an aggregator surface rather than a stable direct-provider target.

[[providers]]
provider = "anthropic"
role = "primary"
api_key_env = "ANTHROPIC_API_KEY"
[[providers]]
provider = "minimax"
role = "fallback"
api_key_env = "MINIMAX_API_KEY"

The provider catalog and routing policy choose concrete model IDs. Keep credentials in environment variables or credential storage, not in docs, catalog metadata, commits, issue comments, or screenshots.

The V1 catalog is published as static deterministic artifacts:

The JSON artifact includes schema version, content timestamp, source provenance, accepted provider metadata, provider discovery status, routing metadata, and a user-facing change summary. Run-specific workflow evidence stays outside the JSON catalog so scheduled publication does not change the semantic adoption hash when catalog inputs are unchanged.

A refreshed catalog is user-level installation state:

~/.duumbi/model-catalog/current.json
~/.duumbi/model-catalog/current.sha256
~/.duumbi/model-catalog/state.json

The client checks the remote hash first and stays quiet when the installed, skipped, deferred, or disabled state means no useful user action exists.

Approval revalidates the reviewed hash, downloads the catalog, verifies SHA-256, validates schema/provider/model fields, and writes the catalog atomically. Hash mismatch, unsupported schema, invalid provider/model entries, download failures, offline startup, and partial writes fail closed and keep the previous local catalog or embedded catalog active.