Skip to content

Config File

The project configuration lives at .duumbi/config.toml.

[workspace]
name = "myapp"
namespace = "myapp"
default-registry = "duumbi"
[[providers]]
provider = "anthropic"
role = "primary"
api_key_env = "ANTHROPIC_API_KEY"
[[providers]]
provider = "minimax"
role = "fallback"
api_key_env = "MINIMAX_API_KEY"
[[providers]]
provider = "openai"
role = "fallback"
api_key_env = "OPENAI_API_KEY"
[registries]
duumbi = "https://registry.duumbi.dev"
company = "https://registry.acme.com"
[dependencies]
"@duumbi/stdlib-math" = "^1.0"
"@company/auth" = { version = "^3.0", registry = "company" }
"local-utils" = { path = "../shared/utils" }
[vendor]
strategy = "selective"
include = ["@company/*"]
KeyTypeDescription
namestringProject name
namespacestringDefault namespace for modules
default-registrystringRegistry name for unscoped dependencies

Provider entries configure credentials and routing roles. DUUMBI keeps model choice inside the provider catalog and routing policy, so normal setup should not require users to maintain default model IDs.

KeyTypeDescription
providerstringProvider config key
rolestringRouting role such as primary or fallback
api_key_envstringEnvironment variable for API key

Current direct provider keys:

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 not part of the V1 direct-provider catalog because it is an aggregator surface.

The old single-provider [llm] table is backward-compatible configuration. Do not use it as the primary setup path for new projects; use [[providers]] and the provider setup flow instead.

Map of registry names to URLs. @scope/name routes to the registry named scope.

Dependencies can be specified as:

  • Version string: "^1.0" (SemVer range)
  • Table with registry: { version = "^3.0", registry = "company" }
  • Local path: { path = "../shared/utils" }
KeyTypeDescription
strategystring"all" or "selective"
includearrayGlob patterns for selective vendoring