Skip to content

Providers & Models

Kolega Code is provider-agnostic. You choose which LLM provider to use and which model to use for each of several roles.

Provider breadth is table stakes; Kolega Code’s extra control is assigning models by operational role and by agent role, so cheap/fast models can investigate while stronger models plan, build, or think.

The agent runtime recognizes these providers, plus any server you point it at via Custom Endpoints (custom:<id>, OpenAI / Responses / Anthropic-compatible):

Provider Identifier API key variable
Anthropic anthropic ANTHROPIC_API_KEY
OpenAI openai OPENAI_API_KEY
OpenAI (ChatGPT subscription) openai_chatgpt none — sign in with ChatGPT
Google google GOOGLE_API_KEY
Mistral AI mistral MISTRAL_API_KEY
Groq groq GROQ_API_KEY
Together.ai together TOGETHER_API_KEY
Fireworks.ai fireworks FIREWORKS_API_KEY
x.ai (Grok) xai XAI_API_KEY
DashScope (Alibaba) dashscope DASHSCOPE_API_KEY
Moonshot (Kimi) moonshot MOONSHOT_API_KEY
MiniMax minimax MINIMAX_API_KEY
DeepSeek deepseek DEEPSEEK_API_KEY
Z.AI (GLM Coding Plan) zai ZAI_API_KEY
Kimi Coding Plan kimi_coding KIMI_CODING_API_KEY
Thinking Machines thinking_machines TINKER_API_KEY
Tinker tinker TINKER_API_KEY
Ollama Cloud ollama_cloud OLLAMA_API_KEY
Cloudflare Workers AI cloudflare_workers_ai CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID
OpenRouter openrouter OPENROUTER_API_KEY
Perplexity Agent API perplexity_agent PERPLEXITY_API_KEY
Llama (local) llama none — local model
Refuseless refuseless REFUSELESS_API_KEY

The built-in refuseless provider uses Chat Completions at https://api.refuseless.com/v1, with REFUSELESS_API_KEY or a key saved in Settings → Providers. No custom endpoint is needed. Selecting Refuseless defaults to GLM-5.3 Abliterated (glm-5.3-abliterated); setting its key alone does not change your provider or any existing defaults.

Terminal window
export REFUSELESS_API_KEY="your-api-key"
kolega-code . --provider refuseless --model glm-5.3-abliterated
kolega-code models list --provider refuseless

The installed CLI does not load a target project’s .env. Export the key in the launching shell or save it in Settings instead.

All five paid routes are bundled in the shared catalog used by the Python API, CLI, TUI onboarding, Settings, /model, the Fast slot, per-agent role selectors, and configured sub-agent discovery:

Model ID Context window (tokens) Output limit (tokens) Image input Thinking efforts
glm-5.3-abliterated 1,048,576 131,072 No low, high, max
glm-5.3-flash-abliterated 1,048,576 131,072 Yes low, high, max
deepseek-v4.1-flash-abliterated 1,048,576 65,536 Yes off, low, high, max
deepseek-v4.1-flash-fast 1,048,576 262,144 Yes off, low, high, max
minimax-m3.1-flash 1,048,576 512,000 Yes low, high, max

The primary GLM route’s context and output limits are both measured and published. GLM Flash, DeepSeek Flash Fast, and MiniMax use Refuseless’s published exact-route maxima; these are accepted catalog limits, not claims of live verification at those ceilings. Paid DeepSeek Abliterated retains its measured 65,536-token output cap, despite its model page advertising 131,072: a native-usage probe requested 131,073 tokens and finished with length at 65,536.

All routes default to low. DeepSeek’s native off disables reasoning; it is not a none alias, and medium, minimal, and xhigh are not supported. Reasoning is displayed as thinking and replayed in the native reasoning_content field across tool results, not mixed into the visible answer. Function tools run in Kolega Code; hosted search is not enabled.

The abliterated routes use Refuseless’s modified weights. DeepSeek Flash Fast and MiniMax Flash use standard weights; Fast is not an alias for the Abliterated route. Refuseless credentials, capabilities, limits, and pricing are independent of the corresponding first-party providers.

The standard-weight DeepSeek Flash Fast and MiniMax routes have been observed to exceed small requested output caps. Kolega forwards smaller caller limits unchanged, but those limits are not a reliable provider-side spending ceiling on these routes.

Refuseless uses prepaid credits. HTTP 402 and streamed insufficient_credits errors surface as billing failures, including after partial output, rather than successful truncated answers or an automatic retry loop.

Refuseless’s public pricing page publishes the five paid routes’ rates below. Kolega uses these literal USD per million tokens rates for input, cache reads, and output:

Model ID Input Cache read Output
glm-5.3-abliterated $1.00 $0.15 $2.00
glm-5.3-flash-abliterated $0.12 $0.03 $0.50
deepseek-v4.1-flash-abliterated $0.12 $0.025 $0.45
deepseek-v4.1-flash-fast $0.01 $0.002 $0.08
minimax-m3.1-flash $0.02 $0.002 $0.08

GPT-6 Astra (gpt-6-astra) is available in the model picker for both openai and openai_chatgpt. It supports image input, hosted web search, and reasoning efforts from low through max, with medium as the Kolega Code default. Reasoning cannot be disabled for Astra. The API provider uses its 1,050,000-token context window with 128,000 tokens reserved for output. The ChatGPT provider keeps a conservative 400,000-token budget (272,000 input tokens), matching the existing subscription models. Subscription availability depends on your account and OpenAI’s rollout.

GPT-6 Sol (gpt-6-sol), GPT-6 Luna (gpt-6-luna) and GPT-6.1 Sol (gpt-6.1-sol) are the rest of the GPT-6 family, also on both providers. Sol and Luna are the cheaper/faster members and accept the full none, low, medium, high, xhigh, max ladder; GPT-6.1 Sol is the near-Astra refresh and rejects none and minimal (use low). All three keep Astra’s 1,050,000-token window and 128K output reservation on the API provider and the same conservative 400,000-token budget on the ChatGPT provider.

GPT-6.1 Terra (gpt-6.1-terra) is the mid-tier member of the GPT-6.1 generation and is available on both providers. It keeps Astra’s 1,050,000-token window and 128K output reservation on the API provider, supports image input and hosted web search, and accepts none, low, medium, high, xhigh, and max reasoning efforts (medium by default) — only minimal is rejected. On the ChatGPT provider the Codex backend advertises a 500,000-token window for Terra, which leaves 372,000 input tokens after the 128K output reservation; the rest of the GPT-6 subscription models keep the conservative 400,000-token budget.

Gemini 4 Argon (gemini-4-argon) is available on the google provider. Google released Argon on October 13, 2026. It supports image input, function calling, and low, medium, and high thinking levels (medium by default). Kolega omits temperature for Argon. Unlike Gemini 3, its 1,048,576-token window is shared by input, thinking, and output. Kolega reserves 65,536 tokens for output, leaving 983,040 input tokens. The native GenerateContent integration uses bounded requests; Google’s long-decode continuation and background Interactions workflows are not enabled.

Grok 4.7 (grok-4.7) is available on the xai provider, with image input, function calling, and low, medium, high, and xhigh reasoning efforts. xAI released it on September 21, 2026. Kolega defaults to medium; xAI defaults to high when effort is omitted. Its 500,000-token context window includes input and output. Kolega reserves 32,768 output tokens, leaving 467,232 input tokens. This is Kolega’s budgeting policy, not a hard output ceiling published by xAI. Grok 4.7 Fast is not available on the public xAI API; it is exclusive to Cursor and Grok Build and is not added to this catalog.

Both are available in the main, Fast, per-agent, and vision model selectors. Adding them does not change existing provider defaults. To select either:

Terminal window
kolega-code . --provider google --model gemini-4-argon
kolega-code . --provider xai --model grok-4.7

Rather than one model for everything, Kolega Code uses two model slots, so you can match cost and capability to the job:

Role Purpose When unset
Long context The main coding model — drives the conversation and most work The active model you selected
Fast Quick, cheap utility calls (e.g. web_fetch’s page-answering stage) Inherits the active model

An unset slot inherits the active model, so out of the box both run on your main model. Pin the Fast slot when you want a cheaper or different model for that work — Settings shows which model each slot currently resolves to, so an inherited slot is never a surprise.

In the TUI, open Settings → Models → Model Slots (or /model) and give the Fast row a provider and model. Leave a row on Default (inherit) to keep it following the active model.

A slot may use a different provider from your main model — for example a DeepSeek main model with Anthropic Haiku for fast utility calls. That provider needs its own API key: add it under Settings → Providers, which lists every provider with its credential status and lets you set up more than one before applying. Settings refuses to apply a slot whose provider has no credential.

Equivalently, from the command line:

Terminal window
kolega-code . \
--provider anthropic --model claude-opus-5 \
--fast-provider anthropic --fast-model claude-haiku-4-5-20251001 \
--thinking-effort medium

Or with environment variables — see Environment Variables for the complete list.

For each role, Kolega Code resolves the provider and model in this order (first match wins):

  1. CLI flags — e.g. --provider, --model, --fast-model, …
  2. Environment variables — e.g. KOLEGA_CODE_PROVIDER, KOLEGA_CODE_MODEL, the per-role variants, and a project-local .env file.
  3. Saved slot — the Fast/Thinking provider and model saved in Settings.
  4. The active model — the provider/model selected in Settings.

Provider and model are always given together. A flag or environment variable that names only one of them is an error: no model is defaulted from a provider, and no provider is inferred from a model id — the same id can be served by different providers on different credentials, so choosing one would silently choose an account.

A configuration is only valid if a provider/model has been selected and every role’s provider has an API key available (the local llama provider needs none). If a key is missing, the CLI reports exactly which environment variable is required.

The three slots above describe operational roles (main, fast, thinking). Separately, you can give each agent its own model, so a cheap, fast model handles investigation while a stronger model does the building. This applies to top-level agents and to the sub-agents they dispatch.

Agent role Key Runs
Planning planning The plan-mode agent
Building building The main coder agent
Investigation investigation Read-only research/exploration sub-agents
General general General-purpose sub-agents
Browser browser Browser/web sub-agents

Each role inherits the active (long-context) model unless you give it an override — so with nothing configured, behavior is unchanged.

In the full Settings screen, the Agent Models category lets you select a role and set its provider, model, and effort. Leave a role on Default to inherit; pick a provider, model, and thinking effort to override it.

The Browser role requires a model whose catalog entry supports vision. It does not fall back to another model or run in a text-only mode. If Default resolves to a non-vision model, Settings shows a warning and the browser agent fails with a configuration error when dispatched. Select an explicit vision-capable Browser model to enable it.

Or use environment variables, named KOLEGA_CODE_<ROLE>_PROVIDER / _MODEL / _EFFORT:

Terminal window
# Use a fast model for investigation; everything else uses the active model.
export KOLEGA_CODE_INVESTIGATION_PROVIDER=deepseek
export KOLEGA_CODE_INVESTIGATION_MODEL=deepseek-flash
export KOLEGA_CODE_INVESTIGATION_EFFORT=high
# Browser overrides must name a vision-capable model.
export KOLEGA_CODE_BROWSER_PROVIDER=anthropic
export KOLEGA_CODE_BROWSER_MODEL=claude-sonnet-4-6

Resolution order for a role (first match wins): env var → saved Settings → the active model. Each override’s provider must have an API key, exactly like the main roles. (Inside a run_workflow script, an explicit model=/effort= on an agent() call still takes precedence over these per-role defaults.)

Code that calls Kolega’s LLM client directly can mark a tool definition strict=True. The Responses providers then send "strict": true with that function tool, which asks the provider to hold the tool call to the schema exactly: every required field present and nothing extra.

DeepSeek enforces this only under its beta base URL (https://api.deepseek.com/beta) and silently ignores the flag on the normal one, so Kolega sends all DeepSeek requests to the beta URL. A strict schema must list every property in required and set additionalProperties: false on each object, or DeepSeek rejects the request with a 400. Tools that are not marked strict behave as before.

The released model is served under DeepSeek’s canonical deepseek-flash id, appears as DeepSeek V4.1 Flash in the model picker, and is DeepSeek’s default model in Kolega. DeepSeek says V4.1 Flash surpasses V4 Pro on performance, cost, speed, and total time, and routes every other first-party id to it — including deepseek-v4-pro from 12:00 Beijing Time on September 14, 2026.

Terminal window
kolega-code --provider deepseek --model deepseek-flash

deepseek-v4.1-flash is not an accepted id: DeepSeek’s /models lists exactly deepseek-flash and deepseek-v4-pro, which are the two models Kolega offers for this provider. DeepSeek still accepts the retired deepseek-v4-flash, deepseek-v4-flash-vision-exp, and deepseek-v4.1-flash-expires-on-0910 ids, but they name nothing distinct (every one of them is served by V4.1 Flash), so Kolega no longer lists them; settings or sessions still naming one fall back to the DeepSeek default (deepseek-flash), and passing one explicitly fails with a “not available for” error.

Live API checks on September 10, 2026 confirmed Responses API access, image input, function calls, and none/low/high/max reasoning effort (default: high). The measured context limit is 1,048,576 tokens; Kolega applies the Flash-family 1,000,000-token budget so the input budget retains margin under that hard ceiling. The API rejects max_output_tokens above 393,216, so Kolega keeps the conservative 384,000-token output budget.

Hosted web search is not available on this route. DeepSeek removed it silently with the V4.1 release: on September 9, 2026 their Responses guide still listed web_search as “Supported, executed on the server side” and accepted it under tool_choice; on September 10 both entries read Ignored. Nothing in DeepSeek’s release notes, news page, or FAQ mentions the change. Live probes return no web_search_call items — the model answers that it has no search tool even when the tool is declared. Kolega therefore does not offer the /web toggle for deepseek-flash or the retired flash ids. Results from searches made by older models still replay into context. deepseek-v4-pro still executes hosted search today, and keeps the toggle until DeepSeek routes it to V4.1 Flash on September 14 — expect to revisit it then.

Thinking effort is model-specific. Kolega Code validates the selected value against the active model and resets it to the new model’s default when you switch models in the TUI.

Provider/model Values Kolega Code default
Anthropic claude-fable-5 low, medium, high, xhigh, max medium
Anthropic claude-fable-5-1 low, medium, high, xhigh, max high
Anthropic claude-opus-5 low, medium, high, xhigh, max medium
Anthropic claude-opus-5-5 low, medium, high, xhigh, max medium
Anthropic claude-sonnet-5 low, medium, high, xhigh, max medium
Anthropic claude-sonnet-5-5 low, medium, high, xhigh, max high
DeepSeek deepseek-flash, deepseek-v4-pro none, low, high, max high
Moonshot kimi-k3 max max
Moonshot kimi-k3.1-pro, kimi-k3.1-pro-highspeed low, high, max max
Moonshot kimi-k2.7-code auto auto
Moonshot kimi-k2.6 auto, none auto
MiniMax MiniMax-M3.1-Flash low, medium, high, xhigh, max max
Kimi Coding Plan k3, k3-256k max max
Kimi Coding Plan k3.1-pro, k3.1-pro-highspeed low, high, max max
Kimi Coding Plan kimi-for-coding, kimi-for-coding-highspeed auto, none auto
Z.AI glm-5.3 high, max max
Z.AI glm-5.3-flash high, max max
Z.AI glm-5.2 high, max max
Z.AI glm-5.1 auto, none auto
Fireworks serverless reasoning models none, low, medium, high, max medium
Fireworks ember-1 none, low, medium, high, max medium
Fireworks kimi-k3 max max
Ollama Cloud thinking models none, low, medium, high, max medium
Ollama Cloud gpt-oss:* low, medium, high medium
Cloudflare @cf/zai-org/glm-5.3, glm-5.3-flash low, high, max max
Cloudflare @cf/zai-org/glm-5.2 none, high, max max
Cloudflare @cf/deepseek-ai/deepseek-v4.1-flash-1017, deepseek-v4-pro-0813 none, low, high, max high
Cloudflare @cf/moonshotai/kimi-k2.6 none, high high
Cloudflare @cf/qwen/qwen3.8-27b low, medium, xhigh xhigh
Cloudflare @cf/openai/gpt-oss-* low, medium, high medium
Google gemini-3.8-flash low, medium, high medium
Google gemini-3.7-flash low, medium, high medium
Google gemini-3.6-flash minimal, low, medium, high medium
Google gemini-3.5-flash-lite minimal, low, medium, high minimal
Google gemini-3.5-flash minimal, low, medium, high medium
Google gemini-3.1-pro-preview low, medium, high high
Google gemini-4-argon low, medium, high medium
OpenAI / ChatGPT gpt-6-astra low, medium, high, xhigh, max medium
OpenAI / ChatGPT gpt-6-sol, gpt-6-luna none, low, medium, high, xhigh, max medium
OpenAI / ChatGPT gpt-6.1-sol low, medium, high, xhigh, max medium
OpenAI gpt-5.6-* none, low, medium, high, xhigh, max medium
OpenAI gpt-5.5 minimal, low, medium, high, xhigh medium
OpenAI gpt-5.4* minimal, low, medium, high medium
OpenAI gpt-5.3-codex-spark minimal, low, medium low
xAI grok-4.5 low, medium, high medium
xAI grok-4.7 low, medium, high, xhigh medium
xAI grok-4.3 none, low, medium, high low
Terminal window
kolega-code doctor --project .

doctor prints the resolved provider/model for each role (long, fast, thinking) and whether the necessary API keys are present.