Config File
The project configuration lives at .duumbi/config.toml.
Full example
Section titled “Full example”[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/*"]Sections
Section titled “Sections”[workspace]
Section titled “[workspace]”| Key | Type | Description |
|---|---|---|
name | string | Project name |
namespace | string | Default namespace for modules |
default-registry | string | Registry name for unscoped dependencies |
[[providers]]
Section titled “[[providers]]”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.
| Key | Type | Description |
|---|---|---|
provider | string | Provider config key |
role | string | Routing role such as primary or fallback |
api_key_env | string | Environment variable for API key |
Current direct provider keys:
| Provider | Config key | Environment variable |
|---|---|---|
| Anthropic | anthropic | ANTHROPIC_API_KEY |
| OpenAI | openai | OPENAI_API_KEY |
| xAI | xai | XAI_API_KEY |
| MiniMax | minimax | MINIMAX_API_KEY |
| DeepSeek | deepseek | DEEPSEEK_API_KEY |
| Alibaba Cloud Model Studio (Qwen) | qwen | DASHSCOPE_API_KEY |
| Moonshot AI (Kimi) | moonshot | MOONSHOT_API_KEY |
| Zhipu AI (GLM) | zhipu | ZHIPUAI_API_KEY |
| Google Gemini | gemini | GEMINI_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.
[registries]
Section titled “[registries]”Map of registry names to URLs. @scope/name routes to the registry named
scope.
[dependencies]
Section titled “[dependencies]”Dependencies can be specified as:
- Version string:
"^1.0"(SemVer range) - Table with registry:
{ version = "^3.0", registry = "company" } - Local path:
{ path = "../shared/utils" }
[vendor]
Section titled “[vendor]”| Key | Type | Description |
|---|---|---|
strategy | string | "all" or "selective" |
include | array | Glob patterns for selective vendoring |