Overview
Every provider-related config key lives on Config, AnthropicConfig, ClaudeCLIConfig, OpenAIConfig, BedrockConfig, and VertexConfig in internal/config/config.go. Precedence for every field: CLI flag > environment variable (ROUSSEAU_<SECTION>_<KEY>) > YAML file > hard-coded default.
provider
| Field | Type | Default | Required | Description | Source |
|---|---|---|---|---|---|
provider |
string | claudecli |
no | LLM backend selector. One of claudecli, anthropic, openai, openrouter, ollama, bedrock, vertex. |
Config.Provider in internal/config/config.go |
anthropic.*
Direct Anthropic API (SDK-backed).
| Field | Type | Default | Required | Description | Source |
|---|---|---|---|---|---|
anthropic.api_key |
string | empty | yes when provider: anthropic |
Injected automatically from the ANTHROPIC_API_KEY env var by config.Load. |
AnthropicConfig.APIKey |
anthropic.model |
string | claude-sonnet-4-6 |
no | Model id. | AnthropicConfig.Model |
anthropic.max_tokens |
int64 | 4096 |
no | Upper bound on generated tokens per turn. | AnthropicConfig.MaxTokens |
claudecli.*
Default provider. Shells out to a local claude binary and inherits Claude Code's auth.
| Field | Type | Default | Required | Description | Source |
|---|---|---|---|---|---|
claudecli.binary |
string | claude |
no | Executable name or absolute path. | ClaudeCLIConfig.Binary |
claudecli.model |
string | empty | no | Overrides claude's default model. | ClaudeCLIConfig.Model |
claudecli.permission_mode |
string | empty | no | --permission-mode value: acceptEdits, auto, bypassPermissions, default, dontAsk, plan. Unattended daemons flip empty values to bypassPermissions. |
ClaudeCLIConfig.PermissionMode |
claudecli.extra_args |
[]string | empty | no | Appended to every claude invocation. | ClaudeCLIConfig.ExtraArgs |
openai.*, openrouter.*, ollama.*
Three top-level blocks share the same OpenAIConfig shape. openrouter and ollama come pre-seeded with sensible base_url defaults.
| Field | Type | Default | Required | Description | Source |
|---|---|---|---|---|---|
openai.api_key |
string | empty | yes when provider: openai |
OpenAI-compatible API key. | OpenAIConfig.APIKey |
openai.model |
string | empty | yes when provider: openai |
Model id (e.g. gpt-4o-mini). |
OpenAIConfig.Model |
openai.base_url |
string | empty | no | Override to hit a self-hosted vLLM, LM Studio, etc. | OpenAIConfig.BaseURL |
openai.max_tokens |
int64 | 0 (SDK default) | no | Cap on generated tokens. | OpenAIConfig.MaxTokens |
openrouter.api_key |
string | empty | yes when provider: openrouter |
OpenRouter key. | shared |
openrouter.model |
string | empty | yes when provider: openrouter |
Model id, e.g. anthropic/claude-sonnet-4. |
shared |
openrouter.base_url |
string | https://openrouter.ai/api/v1 |
no | Set by setDefaults. |
shared |
ollama.api_key |
string | not-required |
no | Ollama does not need a key; the string exists to satisfy the SDK. | shared |
ollama.model |
string | empty | yes when provider: ollama |
Local model id, e.g. llama3.1:70b. |
shared |
ollama.base_url |
string | http://localhost:11434/v1 |
no | Set by setDefaults. |
shared |
bedrock.*
AWS-managed Claude on Bedrock. Uses the standard AWS credential chain.
| Field | Type | Default | Required | Description | Source |
|---|---|---|---|---|---|
bedrock.region |
string | empty | yes when provider: bedrock |
AWS region. | BedrockConfig.Region |
bedrock.model |
string | empty | yes when provider: bedrock |
Bedrock model id, e.g. anthropic.claude-sonnet-4-6-20250101-v1:0. |
BedrockConfig.Model |
bedrock.profile |
string | empty | no | Named AWS profile from ~/.aws/credentials. |
BedrockConfig.Profile |
bedrock.max_tokens |
int64 | 0 (SDK default) | no | Cap on generated tokens. | BedrockConfig.MaxTokens |
vertex.*
GCP-managed Claude on Vertex AI.
| Field | Type | Default | Required | Description | Source |
|---|---|---|---|---|---|
vertex.project |
string | empty | yes when provider: vertex |
GCP project id. | VertexConfig.Project |
vertex.region |
string | empty | yes when provider: vertex |
GCP region. | VertexConfig.Region |
vertex.model |
string | empty | yes when provider: vertex |
Model id, e.g. claude-sonnet-4-6@20250101. |
VertexConfig.Model |
vertex.credentials_file |
string | empty | no | Path to service-account JSON; falls back to GOOGLE_APPLICATION_CREDENTIALS. |
VertexConfig.CredentialsFile |
vertex.max_tokens |
int64 | 0 (SDK default) | no | Cap on generated tokens. | VertexConfig.MaxTokens |
Environment variable equivalents
Every YAML key maps to ROUSSEAU_<SECTION>_<KEY>. . becomes _. Examples:
export ANTHROPIC_API_KEY=sk-ant-… # magic path; injected by config.Load
export ROUSSEAU_ANTHROPIC_MODEL=claude-sonnet-4-6
export ROUSSEAU_ANTHROPIC_MAX_TOKENS=8192
export ROUSSEAU_CLAUDECLI_BINARY=/opt/claude/claude
export ROUSSEAU_CLAUDECLI_PERMISSION_MODE=bypassPermissions
export ROUSSEAU_BEDROCK_REGION=eu-west-2
export ROUSSEAU_BEDROCK_MODEL=anthropic.claude-sonnet-4-6-20250101-v1:0
export AWS_PROFILE=platform
export ROUSSEAU_VERTEX_PROJECT=my-gcp-project
export ROUSSEAU_VERTEX_REGION=europe-west4
export GOOGLE_APPLICATION_CREDENTIALS=/etc/rousseau/vertex.json