[providers.moonshot]
display_name = "Moonshot AI"
adapter = "openai_compatible"
agent_profile = "kimi"
api_key_url = "https://platform.kimi.ai/console/api-keys"
base_url = "https://api.moonshot.ai/v1"
priority = 70

[providers.moonshot.auth]
credentials = [
  "env:MOONSHOT_API_KEY",
  "env:KIMI_API_KEY",
  "vault:MOONSHOT_API_KEY",
  "vault:KIMI_API_KEY",
]

[providers.moonshot.models."kimi-k2.5"]
display_name = "Kimi K2.5"
family = "kimi-k2"
training = "2025-10-01"
knowledge_cutoff = "October 2025"
estimated_output_tps = 50

[providers.moonshot.models."kimi-k2.5".limits]
context_window = 262144
max_output = 32768

[providers.moonshot.models."kimi-k2.5".features]
tools = true
vision = true
reasoning = true
reasoning_by_default = true
prompt_cache = true
sampling_params = false

[providers.moonshot.models."kimi-k2.5".costs]
input_cost_per_mtok = 0.6
output_cost_per_mtok = 3.0
cache_input_cost_per_mtok = 0.1

[providers.moonshot.models."kimi-k3"]
display_name = "Kimi K3"
family = "kimi-k3"
default = true
aliases = ["kimi"]

[providers.moonshot.models."kimi-k3".limits]
context_window = 1048576
# K3 accepts explicit completion budgets up to 1048576, but Fabro also uses
# max_output as the default request budget. Match Kimi's 131072-token default.
max_output = 131072

[providers.moonshot.models."kimi-k3".features]
tools = true
vision = true
reasoning = true
reasoning_effort = "always_adaptive"
prompt_cache = true
sampling_params = false

[providers.moonshot.models."kimi-k3".controls]
reasoning_effort = ["low", "high", "max"]

[providers.moonshot.models."kimi-k3".costs]
input_cost_per_mtok = 3.0
output_cost_per_mtok = 15.0
cache_input_cost_per_mtok = 0.3
