Verify Docker Image Signature
All LiteLLM Docker images are signed with cosign. Every release is signed with the same key introduced in commit 0112e53.
Verify using the pinned commit hash (recommended):
A commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \
ghcr.io/berriai/litellm:v1.83.10-nightlyVerify using the release tag (convenience):
Tags are protected in this repository and resolve to the same key. This option is easier to read but relies on tag protection rules:
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/v1.83.10-nightly/cosign.pub \
ghcr.io/berriai/litellm:v1.83.10-nightlyExpected output:
The following checks were performed on each of these signatures:
- The cosign claims were validated
- The signatures were verified against the specified public key
⚠️ Breaking Changes
- Python 3.9 is no longer supported. The minimum required Python version is now 3.10 (
requires-pythonchanged from>=3.9, <3.14to>=3.10, <3.14). Python 3.9 reached end-of-life in October 2025. See #26022.
What's Changed
- fix: batch-limit stale managed object cleanup to prevent 300K row UPDATE by @ishaan-berri in #25227
- [bug-fix]return actual status code - /v1/messages/count_tokens endpoint by @otaviofbrito in #21352
- feat(teams): per-member model scope + team default_team_member_models by @ishaan-berri in #24950
- feat: multiple concurrent budget windows per API key and team (#24883) by @ishaan-berri in #25109
- [Fix] Restrict x-pass- header forwarding for credential and protocol headers by @yuneng-berri in #25916
- [Fix] Tighten api_key value check in credential validation by @yuneng-berri in #25917
- fix(ocr): add missing Mistral OCR params to allowlist by @michelligabriele in #25858
- Add capability to override default GitHub Copilot authentication endp… by @steromano87 in #25915
- fix: return None for routing_strategy_args when strategy is not latency-based by @ryan-crabbe-berri in #25882
- Refactor: extract shared PKCE helpers into utils/pkce.ts by @ryan-crabbe-berri in #25878
- fix(proxy): enforce organization boundaries in admin operations by @stuxf in #25904
- fix(proxy): read guardrail config from admin metadata, fix tag routing consistency by @stuxf in #25905
- fix(proxy): add URL validation for user-supplied URLs by @stuxf in #25906
- Add support for grok-4.20-0309-reasoning model by @Sameerlite in #25930
- docs: add "Copy Page as Markdown" + llms.txt to docs site by @krrish-berri-2 in #25975
- [WIP][Perf] Litellm prometheus improvements by @harish-berri in #25934
- [Infra] Merge dev branch by @yuneng-berri in #25972
- Litellm ishaan april6 by @ishaan-berri in #25256
- [Fix] Agent endpoint and routing permission checks by @yuneng-berri in #25922
- [Fix] Remove unresolved merge conflict markers in bedrock test file by @yuneng-berri in #25995
- [Feature] UI - Settings: Claude Code BYOK support by @yuneng-berri in #25998
- chore(ui): migrate GuardrailTestPlayground off @tremor/react to antd by @ryan-crabbe-berri in #25749
- chore(ui): migrate router_settings page from Tremor to antd by @ryan-crabbe-berri in #25879
- feat(ocr/azure-di): support Mistral-style pages param via analyze query string by @shivamrawat1 in #25929
- feat(helm): add tpl support to extraContainers and extraInitContainers by @jlav in #25494
- fix(bedrock): prevent negative streaming costs for start-only cache usage by @Sameerlite in #25846
- fix(proxy): prioritize reasoning health-check max token precedence by @Sameerlite in #25936
- Litellm persist default router end budget by @shivamrawat1 in #25991
- fix(ui): extra_headers not persisting on MCP server edit by @ryan-crabbe-berri in #26003
- [Fix] UI - Keys: strip empty premium fields from key update payload by @yuneng-berri in #26023
- [Fix] Resolve prometheus_helpers file/package shadow breaking /global/spend/logs by @yuneng-berri in #26026
- fix: enforce project-level model-specific rate limits in parallel_req… by @shivamrawat1 in #25994
- [Infra] Merge dev branch by @yuneng-berri in #25983
- [Infra] Bump proxy dependencies and raise minimum Python to 3.10 by @yuneng-berri in #26022
- fix(mcp): restore PKCE-triggering 401 when no stored per-user token exists by @ishaan-berri in #26032
- feat: configurable multi-threshold budget alerts for virtual keys by @ryan-crabbe-berri in #25989
- [Infra] Build UI by @yuneng-berri in #26033
- bump: version 1.83.9 → 1.83.10 by @yuneng-berri in #26038
- bump litellm-proxy-extras to 0.4.67 by @ishaan-berri in #26043
- [Infra] Promote staging to main by @yuneng-berri in #26044
New Contributors
- @steromano87 made their first contribution in #25915
- @harish-berri made their first contribution in #25934
- @jlav made their first contribution in #25494
Full Changelog: v1.83.9-nightly...v1.83.10-nightly