LiteLLM is moving to Rust Read the latest updates.
Changelog
The main changes in each LiteLLM release. Open a release for its full notes, upgrade steps and every merged PR. Watch BerriAI/litellm on GitHub to hear about new releases.
LiteLLM v1.106.1 fixes count_tokens, MCP tool calls and thinking blocks
- Bare MCP tool names on a single-server scope now go to that server, so a cold replica no longer returns
Tool not found. - Vector stores created through the proxy send only the caller's
metadatato the provider, so later metadata updates no longer fail with 400. - Token count responses carry
litellm_count_source, and Anthropic-format count requests for OpenAI and Gemini models match how/v1/messagesconverts them.
LiteLLM v1.105.2 fixes count_tokens, bridged tool calls and thinking blocks
- Chat completions bridged to
/responsesreturn text and tool calls in onechoices[0], so agents that read onlychoices[0]run the tool. - Signed thinking blocks with empty text stay on
/v1/messagesand chat completion requests, so replayed turns keep their reasoning. - The
v1.104.4token count fixes are included, and count responses carrylitellm_count_source.
LiteLLM v1.103.6 fixes realtime handshake errors and double spend logs
- A refused upstream realtime handshake now sends the client an
errorevent and closes with 1008, 1013 or 1011. - Non-streaming requests of 256 KiB or more on the chat to Responses bridge now log spend once instead of twice.
- This patch has no new database migrations.
LiteLLM v1.106.0 adds Claude Haiku 5.5, a Rust Lens service and MCP rate limits
- Claude Haiku 5.5 works on day one across Anthropic, Bedrock, Bedrock Mantle, Vertex AI, Azure AI and Perplexity.
- Lens runs as a standalone Rust service, and agents upload traces to it directly with dedicated keys.
- MCP Gateway rate limits now cover every MCP operation, and a new server-level
rpmcaps all callers of one server. - The caller's LiteLLM key is never forwarded to MCP servers, so each upstream server needs its own static header or OAuth credential.
LiteLLM v1.103.5 fixes tool calls in chat completions on GPT-5.4 and newer
- Tool calls no longer appear on a separate
choices[1], so agents that read onlychoices[0]run them. - Each tool call in one non-streaming reply now gets its own
indexvalue instead of 0. - The fix applies to
/chat/completionscalls with tools on GPT-5.4 and newer and onresponses/deployments.
LiteLLM v1.105.1 fixes SpendLogs rows and daily model usage writes
- The model leaderboard rollup now writes
LiteLLM_DailyModelUsagein batches, so heavy traffic to one model no longer drops SpendLogs rows. - Non-streaming requests of 256 KiB or more on the chat to Responses bridge now log spend once instead of twice.
- This patch has no new database migrations and no breaking changes.
LiteLLM v1.104.3 adds hosted vLLM and Microsoft-Decision-1 to Decisions
- Decisions requests that send
safety_identifierto a provider other than OpenAI now return 400, so setdrop_paramstotrueto keep the old behavior. - The
litellm.systemone()SDK function takes the System One format, andlitellm.decisions()takes the OpenAI format. - The
azure_ai/prefix serves Microsoft-Decision-1, andhosted_vllm/is a new Decisions provider that requiresapi_base.
LiteLLM v1.105.0 adds Claude Sonnet 5.5, the Decisions API and litellm.agent()
- Claude Sonnet 5.5 works on day one across Anthropic, Bedrock, Bedrock Mantle, Vertex AI, Azure AI, OpenRouter and Perplexity.
/v1/decisionsand/v1/systemonelet decision models answer yes/no, choice and score questions across OpenAI, Perplexity, TypeSafe, OpenRouter and Cloudflare.litellm.agent()runs Claude Code, Codex, OpenCode and Deep Agents through the AI gateway from the SDK.- Bedrock GPT-5.6, GPT-6 and GPT-6.1 use native Chat Completions, which changes response ids and reasoning fields, so use
bedrock/converse/<model>to stay on Converse.
LiteLLM v1.104.2 adds Decisions API routes for OpenAI and System One
- The proxy now serves
POST /v1/decisionsin OpenAI's Decisions API format andPOST /v1/systemonein the System One format. - Decision models from OpenAI, Perplexity, TypeSafe, OpenRouter, Cloudflare Clef and self-hosted Strands Decider answer on both routes.
- Malformed requests, such as a missing
stateor more than 128 questions, return HTTP 400 before any upstream call.
LiteLLM v1.102.4 fixes double-counted spend on the chat to Responses bridge
- Since v1.102.0, large non-streaming chat requests to
openai/responses/*models logged spend twice, and each request now logs once. - Key, team and daily spend now match the real cost of each request, and streaming requests are unchanged.
LiteLLM v1.101.6 fixes Codex CLI tool calls on the Responses to Chat bridge
- Codex CLI tools now reach models behind the Responses to Chat Completions bridge, such as Bedrock Converse models.
- The bridge moves
additional_toolsinput items intotoolsfor every bridged provider. - The model call returns to Codex as a
custom_tool_callin both streaming and non-streaming responses.
LiteLLM v1.104.1, v1.103.4 and v1.102.3 update pgbouncer to 1.26.0
- Wolfi's
openssl-devpackage now installs OpenSSL 4.0, so the Docker images bundle pgbouncer 1.26.0 to build again. - The locked Python dependencies update
langgraph-sdkto 0.4.4,makoto 1.4.2 andwerkzeugto 3.1.9. - The Admin UI updates
nextto 16.3.6 andmomentto 2.31.0.
LiteLLM v1.100.5 and v1.101.5 update next to 16.3.6 and urllib3 to 2.8.0
- The locked Python dependencies update
urllib3to 2.8.0,pypdfto 6.19.0 andpyjwtto 2.15.0. - The Admin UI updates
nextto 16.3.6, and the wolfi-base image digest picks up glibc 2.44-r6.
LiteLLM v1.103.3 fixes streamed alias spend and bridged tool calls
- The proxy exits at startup when database setup fails, unless you set
ENFORCE_PRISMA_MIGRATION_CHECK=falseto keep the old behavior. - Streamed requests through an alias such as
claude-opus-4.6now record spend from the deployment model instead of $0. - Chat replies bridged from the Responses API now put tool calls in
choices[0], so clients that read only the first choice run the tool.
LiteLLM v1.104.0 adds Claude Opus 5.5, GPT-6 and master key enforcement
- The model catalog adds 331 entries, such as Claude Opus 5.5, GPT-6 Sol and GPT-6 Luna.
- The proxy refuses to start when
LITELLM_MASTER_KEYis unset, empty or publicly known, so set a strong key before you upgrade. - An exhausted budget now returns HTTP 422 instead of 429, so set
litellm_settings.budget_exceeded_status_code: 429to keep the old status. - stdio MCP servers are off by default, so set
LITELLM_ENABLE_MCP_STDIO=truein the proxy environment to start them again.
LiteLLM v1.103.2 supports Claude Code auto mode and fixes CLI spend
- The proxy forwards
safeguardsandanthropic-betaunchanged on/v1/messages, so Claude Code auto mode runs through the gateway. - New CLI session spend is recorded under the per-user
cli-session-<user_id>alias instead of a 64-character session hash. - Pass-through endpoints from the config and the database merge again, and
forward_headers: trueforwardsAuthorizationagain.
LiteLLM v1.101.4 supports Straiker v3 keys and fixes Azure Content Safety
- The Straiker guardrail calls
/api/v3/detectfor v3 platform keys, which start withsk_agt_. - A block from Straiker now reaches the caller as HTTP 400 with the tenant's block message.
- Azure Content Safety guardrails now use
2024-09-01whenapi_versionis unset, so requests no longer return HTTP 404.
LiteLLM v1.103.1, v1.102.2, v1.101.3 and v1.100.4 fix UI and CLI session tokens
- Session tokens issued before the upgrade are rejected, so Admin UI and
liteCLI users must runlite loginagain. - Session tokens now use AES-256-GCM with their own context and return as
litellm_login_followed by unpadded base64url. - Login tokens no longer start with
sk-, so the proxy no longer returns HTTP 401 for about one login in 262,144.
LiteLLM v1.103.0 adds Fuse V2, TypeSafe Jev and config file ownership
- The proxy now ignores database values for keys in
config.yamland returns 400 on runtime writes, so edit the file and restart. - Fuse V2 routing now runs after the capability forecast, and per-model Fast mode is available.
- Without a license, the proxy allows one Capability router and one Fuse v2 router, and a second router returns 403.
- The catalog adds 408 models from providers such as AIHubMix, Azure, Together AI and Vertex AI, and corrects the price of 147 models.
LiteLLM v1.100.3 fixes GPT-6 request rules and end-user budget resets
- GPT-6 names such as
gpt-6-astranow get the GPT-5 request rules, so chat completions acceptreasoning_effort,max_tokensand function tools. - The end-user budget reset now zeroes the cached spend counter in memory and Redis, so customers no longer get 429 errors.
- Shared end-user budgets with more than about 32,700 customers now reset, because the job resets end users by budget link.
Older releases are listed in the sidebar.