recursive-agent 0.6.0

A minimal, orthogonal, self-improving coding agent kernel in Rust
Documentation
# Recursive provider presets — auto-loaded at startup.
# Fields: id, name, provider_type, api_base, default_model, models[], mainland_accessible, key_env, key_url
# Each model entry: {name, context_window, pricing? = {input_per_million, output_per_million, cache_hit_input_per_million?}}
# Pricing is in USD per million tokens. cache_hit_input_per_million defaults to input_per_million when omitted.

[[providers]]
id = "anthropic"
name = "Anthropic"
provider_type = "anthropic"
api_base = "https://api.anthropic.com"
default_model = "claude-sonnet-4-6"
models = [
  {name = "claude-opus-4-7",   context_window = 200000, pricing = {input_per_million = 15.00, output_per_million = 75.00, cache_hit_input_per_million = 1.50}},
  {name = "claude-sonnet-4-6", context_window = 200000, pricing = {input_per_million = 3.00,  output_per_million = 15.00, cache_hit_input_per_million = 0.30}},
  {name = "claude-haiku-4-5",  context_window = 200000, pricing = {input_per_million = 0.80,  output_per_million = 4.00,  cache_hit_input_per_million = 0.08}},
]
mainland_accessible = false
key_env = "ANTHROPIC_API_KEY"
key_url = "https://console.anthropic.com/settings/keys"

[[providers]]
id = "openai"
name = "OpenAI"
provider_type = "openai"
api_base = "https://api.openai.com/v1"
default_model = "gpt-4o"
models = [
  {name = "gpt-4o",      context_window = 128000, pricing = {input_per_million = 2.50,  output_per_million = 10.00}},
  {name = "gpt-4o-mini", context_window = 128000, pricing = {input_per_million = 0.15,  output_per_million = 0.60}},
  {name = "o3",          context_window = 200000, pricing = {input_per_million = 2.00,  output_per_million = 8.00}},
  {name = "o4-mini",     context_window = 200000, pricing = {input_per_million = 1.10,  output_per_million = 4.40}},
]
mainland_accessible = false
key_env = "OPENAI_API_KEY"
key_url = "https://platform.openai.com/api-keys"

[[providers]]
id = "deepseek"
name = "DeepSeek"
provider_type = "openai"
api_base = "https://api.deepseek.com/v1"
default_model = "deepseek-chat"
models = [
  {name = "deepseek-chat",      context_window = 64000, pricing = {input_per_million = 0.27, output_per_million = 1.10, cache_hit_input_per_million = 0.027}},
  {name = "deepseek-reasoner",  context_window = 64000, pricing = {input_per_million = 0.55, output_per_million = 2.19, cache_hit_input_per_million = 0.14}},
]
mainland_accessible = true
key_env = "DEEPSEEK_API_KEY"
key_url = "https://platform.deepseek.com/api_keys"

[[providers]]
id = "minimax"
name = "MiniMax"
provider_type = "openai"
api_base = "https://api.minimax.io/v1"
default_model = "MiniMax-M3"
models = [
  {name = "MiniMax-M3",       context_window = 1000000, pricing = {input_per_million = 0.30, output_per_million = 1.20}},
  {name = "MiniMax-Text-01",  context_window = 1000000, pricing = {input_per_million = 0.30, output_per_million = 1.20}},
]
mainland_accessible = true
key_env = "MINIMAX_API_KEY"
key_url = "https://platform.minimax.io/user-center/basic-information/interface-key"

[[providers]]
id = "zhipu"
name = "智谱 AI (GLM)"
provider_type = "openai"
api_base = "https://open.bigmodel.cn/api/paas/v4"
default_model = "glm-4-plus"
models = [
  {name = "glm-4-plus",   context_window = 128000, pricing = {input_per_million = 0.50, output_per_million = 1.50}},
  {name = "glm-4-air",    context_window = 128000, pricing = {input_per_million = 0.10, output_per_million = 0.10}},
  {name = "glm-z1-flash", context_window = 128000, pricing = {input_per_million = 0.10, output_per_million = 0.10}},
]
mainland_accessible = true
key_env = "ZHIPU_API_KEY"
key_url = "https://open.bigmodel.cn/usercenter/apikeys"

[[providers]]
id = "moonshot"
name = "月之暗面 (Kimi)"
provider_type = "openai"
api_base = "https://api.moonshot.ai/v1"
default_model = "moonshot-v1-128k"
models = [
  {name = "moonshot-v1-128k", context_window = 128000, pricing = {input_per_million = 12.00, output_per_million = 12.00}},
  {name = "moonshot-v1-8k",   context_window = 8000,   pricing = {input_per_million = 1.00,  output_per_million = 1.00}},
]
mainland_accessible = true
key_env = "MOONSHOT_API_KEY"
key_url = "https://platform.moonshot.ai/console/api-keys"

[[providers]]
id = "doubao"
name = "字节跳动 Doubao (火山引擎 Ark)"
provider_type = "openai"
api_base = "https://ark.cn-beijing.volces.com/api/v3"
default_model = "doubao-seed-2-0-250615"
models = [
  {name = "doubao-seed-2-0-250615", context_window = 128000, pricing = {input_per_million = 4.00, output_per_million = 16.00}},
  {name = "doubao-1-5-pro-256k",    context_window = 256000, pricing = {input_per_million = 0.45, output_per_million = 1.80}},
  {name = "doubao-1-5-lite-32k",    context_window = 32000,  pricing = {input_per_million = 0.10, output_per_million = 0.10}},
]
mainland_accessible = true
key_env = "ARK_API_KEY"
key_url = "https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"

[[providers]]
id = "dashscope"
name = "阿里云通义千问 (DashScope)"
provider_type = "openai"
api_base = "https://dashscope.aliyuncs.com/compatible-mode/v1"
default_model = "qwen-max"
models = [
  {name = "qwen-max",        context_window = 32768,  pricing = {input_per_million = 2.40, output_per_million = 9.60}},
  {name = "qwen-plus",       context_window = 131072, pricing = {input_per_million = 0.56, output_per_million = 1.68}},
  {name = "qwen3-235b-a22b", context_window = 131072, pricing = {input_per_million = 0.60, output_per_million = 2.40}},
]
mainland_accessible = true
key_env = "DASHSCOPE_API_KEY"
key_url = "https://bailian.console.aliyun.com/?apiKey=1"

[[providers]]
id = "hunyuan"
name = "腾讯混元 (Hunyuan)"
provider_type = "openai"
api_base = "https://api.hunyuan.cloud.tencent.com/v1"
default_model = "hunyuan-turbos"
models = [
  {name = "hunyuan-turbos", context_window = 256000, pricing = {input_per_million = 0.60, output_per_million = 2.40}},
  {name = "hunyuan-t1",     context_window = 128000, pricing = {input_per_million = 2.00, output_per_million = 8.00}},
  {name = "hunyuan-lite",   context_window = 256000, pricing = {input_per_million = 0.10, output_per_million = 0.10}},
]
mainland_accessible = true
key_env = "HUNYUAN_API_KEY"
key_url = "https://console.cloud.tencent.com/hunyuan/api-key"

[[providers]]
id = "stepfun"
name = "阶跃星辰 (StepFun)"
provider_type = "openai"
api_base = "https://api.stepfun.com/v1"
default_model = "step-3-5-flash"
models = [
  {name = "step-3-7-flash", context_window = 256000, pricing = {input_per_million = 0.80, output_per_million = 2.40}},
  {name = "step-3-5-flash", context_window = 256000, pricing = {input_per_million = 0.30, output_per_million = 0.90}},
  {name = "step-1-8k",      context_window = 8000,   pricing = {input_per_million = 0.30, output_per_million = 0.90}},
]
mainland_accessible = true
key_env = "STEPFUN_API_KEY"
key_url = "https://platform.stepfun.com/account-info"

[[providers]]
id = "gemini"
name = "Google Gemini"
provider_type = "openai"
api_base = "https://generativelanguage.googleapis.com/v1beta/openai"
default_model = "gemini-2.5-pro"
models = [
  {name = "gemini-2.5-pro",        context_window = 1048576, pricing = {input_per_million = 1.25, output_per_million = 10.00}},
  {name = "gemini-2.5-flash",      context_window = 1048576, pricing = {input_per_million = 0.30, output_per_million = 2.50}},
  {name = "gemini-2.5-flash-lite", context_window = 1048576, pricing = {input_per_million = 0.10, output_per_million = 0.40}},
]
mainland_accessible = false
key_env = "GEMINI_API_KEY"
key_url = "https://aistudio.google.com/app/apikey"

[[providers]]
id = "groq"
name = "Groq"
provider_type = "openai"
api_base = "https://api.groq.com/openai/v1"
default_model = "llama-3.3-70b-versatile"
models = [
  {name = "llama-3.3-70b-versatile",     context_window = 128000, pricing = {input_per_million = 0.59, output_per_million = 0.79}},
  {name = "llama-3.1-8b-instant",        context_window = 128000, pricing = {input_per_million = 0.05, output_per_million = 0.08}},
  {name = "moonshotai/Kimi-K2-Instruct", context_window = 128000, pricing = {input_per_million = 1.00, output_per_million = 3.00}},
]
mainland_accessible = false
key_env = "GROQ_API_KEY"
key_url = "https://console.groq.com/keys"

[[providers]]
id = "mistral"
name = "Mistral AI"
provider_type = "openai"
api_base = "https://api.mistral.ai/v1"
default_model = "mistral-large-latest"
models = [
  {name = "mistral-large-latest", context_window = 131072, pricing = {input_per_million = 2.00, output_per_million = 6.00}},
  {name = "mistral-small-latest", context_window = 32000,  pricing = {input_per_million = 0.10, output_per_million = 0.30}},
  {name = "codestral-latest",     context_window = 32000,  pricing = {input_per_million = 0.30, output_per_million = 0.90}},
]
mainland_accessible = false
key_env = "MISTRAL_API_KEY"
key_url = "https://console.mistral.ai/api-keys"

[[providers]]
id = "xai"
name = "xAI (Grok)"
provider_type = "openai"
api_base = "https://api.x.ai/v1"
default_model = "grok-3"
models = [
  {name = "grok-4",      context_window = 256000, pricing = {input_per_million = 3.00,  output_per_million = 15.00}},
  {name = "grok-3",      context_window = 131072, pricing = {input_per_million = 3.00,  output_per_million = 15.00}},
  {name = "grok-3-mini", context_window = 131072, pricing = {input_per_million = 0.30,  output_per_million = 0.50}},
]
mainland_accessible = false
key_env = "XAI_API_KEY"
key_url = "https://console.x.ai/"

[[providers]]
id = "ollama"
name = "Ollama (本地)"
provider_type = "openai"
api_base = "http://localhost:11434/v1"
default_model = "qwen2.5-coder"
models = [
  {name = "qwen2.5-coder", context_window = 32768},
  {name = "llama3.2",      context_window = 131072},
  {name = "deepseek-r1",   context_window = 65536},
  {name = "mistral",       context_window = 32768},
]
mainland_accessible = true
key_env = ""
key_url = "https://ollama.ai/"