Get API key
GuidesCheapest models for coding agents
Guides

Cheapest models for coding agents

A coding agent needs a model that calls tools, and it sends a lot of tokens. These are the cheapest models with tool calling on llm.buzz right now, and how to point Claude Code, Codex, Cline, OpenCode and Aider at them.

On this page

3 min read

A bee choosing the lowest of a row of hexagonal columns, the lowest lit in amber.

Every number on this page comes from llm.buzz’s public catalog, read 27 October 2026, 05:51 UTC.

A coding agent reads files, calls tools and sends the conversation back on every turn, so it spends far more tokens than a chat does. Two things decide which model it can use: whether the model calls tools, and what each million tokens costs.

The cheapest models with tool calling

Right now 48 models on llm.buzz call tools. The table lists the cheapest, by input price and then output price, in US dollars per million tokens.

ModelInput per 1MOutput per 1MContext
OpenAI: GPT-5 Nano$0.0450$0.3600400K
OpenAI: gpt-oss-120b$0.0500$0.2500128K
Google: Gemma 4 26B A4B$0.0700$0.3400256K
NVIDIA: Nemotron 3 Super$0.0850$0.4000256K
Anthropic: Claude Haiku 5.5$0.1000$0.50001M
OpenAI: GPT-6 Luna$0.1000$0.50001.1M
Surogate: Surogate 3.7 Flash$0.1000$0.75001M
Qwen: Qwen3.8 Flash$0.1125$0.35251M
Mistral: Mistral Small 3.2 24B$0.1297$0.3026128K
Xiaomi: MiMo-V2.6-Flash$0.1400$0.28001M

And 38 more models on Models.

From the public models list, read 27 October 2026, 05:51 UTC.

Each price is the model’s first-ranked provider’s, with any running discount applied. The model page lists every provider’s price.

Every provider of a model serves every capability the model declares. Before a provider serves a model, an automated check sends it real requests, tool calls included when the model declares tools, and a provider that fails stays out of routing. So a model in this table calls tools on whichever of its providers answers.

Get a key

Create a key in the console under Keys, and keep it in the LLM_BUZZ_KEY environment variable.

export LLM_BUZZ_KEY="exp_vk_..."

The examples below use openai/gpt-oss-120b: the cheapest model with tool calling that has a context window of at least 131,072 tokens and at least two live providers that serve it directly, besides llm.buzz’s own route. An agent’s session soon outgrows a smaller window, and a second company takes over when one fails. Any name from the table works in its place, so choose one whose context window fits your sessions. Model names are matched exactly.

Claude Code

Claude Code speaks the Anthropic Messages API. Point it at llm.buzz in your shell, or in the env block of ~/.claude/settings.json. Claude Code’s own default model names do not resolve on llm.buzz, so set the models it uses to names from llm.buzz: ANTHROPIC_MODEL for the main model, and ANTHROPIC_DEFAULT_HAIKU_MODEL for the small model it runs background tasks on.

export ANTHROPIC_BASE_URL="https://api.llm.buzz/api"
export ANTHROPIC_AUTH_TOKEN="$LLM_BUZZ_KEY"
export ANTHROPIC_MODEL="openai/gpt-oss-120b"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="openai/gpt-oss-120b"
claude

To run Claude Code on Claude, set ANTHROPIC_MODEL to anthropic/claude-sonnet-5.5 and ANTHROPIC_DEFAULT_HAIKU_MODEL to anthropic/claude-haiku-5.5. If you switch models with /model, set ANTHROPIC_DEFAULT_SONNET_MODEL and ANTHROPIC_DEFAULT_OPUS_MODEL to names from llm.buzz too.

If Claude Code stops at startup over fields the model does not know, also set CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1, as its gateway docs suggest.

Codex CLI

Add llm.buzz as a model provider in ~/.codex/config.toml. Codex speaks the Responses API to custom providers. It ignores the provider in a project’s .codex/config.toml, so keep it in the file in your home directory.

model = "openai/gpt-oss-120b"
model_provider = "llmbuzz"

[model_providers.llmbuzz]
name = "llm.buzz"
base_url = "https://api.llm.buzz/api/v1"
env_key = "LLM_BUZZ_KEY"
wire_api = "responses"

Cline

Open Cline’s settings and fill in the provider:

FieldValue
API ProviderOpenAI Compatible
Base URLhttps://api.llm.buzz/api/v1
API KeyYour llm.buzz key
Model IDopenai/gpt-oss-120b

OpenCode

Add llm.buzz as a provider in opencode.json, in your project or in ~/.config/opencode/, then pick the model with /models.

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "llmbuzz": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "llm.buzz",
      "options": {
        "baseURL": "https://api.llm.buzz/api/v1",
        "apiKey": "{env:LLM_BUZZ_KEY}"
      },
      "models": { "openai/gpt-oss-120b": { "name": "openai/gpt-oss-120b" } }
    }
  }
}

Aider

Set the OpenAI variables, then start Aider with the model’s name after openai/.

export OPENAI_API_BASE="https://api.llm.buzz/api/v1"
export OPENAI_API_KEY="$LLM_BUZZ_KEY"
aider --model openai/openai/gpt-oss-120b

Other agents have their own setup on the Apps page.

Let the cheapest provider answer first

A model with several providers tries them in its routing preset’s order. Add :floor to the model’s name and the cheapest provider goes first for that request. It works anywhere the agent takes a model name:

export ANTHROPIC_MODEL="openai/gpt-oss-120b:floor"

Keep a conversation on its cache

An agent resends the same long context on every turn. A session_id field in the request, or an x-session-id header, names the conversation so its turns stay on the provider that holds its cache. Send it if your agent lets you add a field or a header. Claude models cache only where a request marks the prompt; Prompt caching explains the marker and what a cached read costs.

See your agent on Rankings

Coding agents that llm.buzz recognizes get their usage counted under their own name on Rankings. Most are recognized by their User-Agent, so there is nothing to set.

Docs