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.
Supported providers
Section titled “Supported providers”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_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 |
Refuseless
Section titled “Refuseless”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.
export REFUSELESS_API_KEY="your-api-key"kolega-code . --provider refuseless --model glm-5.3-abliteratedkolega-code models list --provider refuselessThe 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:
kolega-code . --provider google --model gemini-4-argonkolega-code . --provider xai --model grok-4.7Model roles
Section titled “Model roles”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.
Set models per role
Section titled “Set models per role”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:
kolega-code . \ --provider anthropic --model claude-opus-5 \ --fast-provider anthropic --fast-model claude-haiku-4-5-20251001 \ --thinking-effort mediumOr with environment variables — see Environment Variables for the complete list.
How a model gets chosen
Section titled “How a model gets chosen”For each role, Kolega Code resolves the provider and model in this order (first match wins):
- CLI flags — e.g.
--provider,--model,--fast-model, … - Environment variables — e.g.
KOLEGA_CODE_PROVIDER,KOLEGA_CODE_MODEL, the per-role variants, and a project-local.envfile. - Saved slot — the Fast/Thinking provider and model saved in Settings.
- 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.
Per-agent models
Section titled “Per-agent models”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:
# Use a fast model for investigation; everything else uses the active model.export KOLEGA_CODE_INVESTIGATION_PROVIDER=deepseekexport KOLEGA_CODE_INVESTIGATION_MODEL=deepseek-flashexport KOLEGA_CODE_INVESTIGATION_EFFORT=high
# Browser overrides must name a vision-capable model.export KOLEGA_CODE_BROWSER_PROVIDER=anthropicexport KOLEGA_CODE_BROWSER_MODEL=claude-sonnet-4-6Resolution 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.)
Strict tool schemas on DeepSeek
Section titled “Strict tool schemas on DeepSeek”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.
Thinking effort
Section titled “Thinking effort”DeepSeek V4.1 Flash
Section titled “DeepSeek V4.1 Flash”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.
kolega-code --provider deepseek --model deepseek-flashdeepseek-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.
Supported effort values
Section titled “Supported effort values”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 |
Check what’s active
Section titled “Check what’s active”kolega-code doctor --project .doctor prints the resolved provider/model for each role (long, fast, thinking)
and whether the necessary API keys are present.