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.8-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.8-nightly/cosign.pub \
ghcr.io/berriai/litellm:v1.83.8-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
What's Changed
- fix(mcp): is_tool_name_prefixed validates against known server prefixes by @voidborne-d in #25085
- fix(s3_v2): use prepared URL for SigV4-signed S3 requests by @nehaaprasad in #25074
- fix(cache): Prevent 'multiple values' TypeError in get_cache_key by @hunterchris in #20261
- fix(presidio): use correct text positions in anonymize_text by @Dmitry-Kucher in #24998
- feat(prometheus): add 7m and 10m latency histogram buckets by @kulia26 in #25071
- fix(ui): resolve login redirect loop when reverse proxy adds HttpOnly to cookies by @jaxhend in #23532
- fix(proxy): set key_alias=user_id in JWT auth for Prometheus metrics by @michelligabriele in #25340
- fix(vertex_ai): normalize Gemini finish_reason enum through map_finis… by @abhyudayareddy in #25337
- fix: remove leading space from license public_key.pem by @milan-berri in #25339
- feat(dashscope): preserve cache_control for explicit prompt caching by @silencedoctor in #25331
- fix: expose reasoning effort fields in get_model_info + add together_ai/gpt-oss-120b by @avarga1 in #25263
- Add PromptGuard guardrail integration by @acebot712 in #24268
- Revert "fix(proxy): set key_alias=user_id in JWT auth for Prometheus metrics" by @krrish-berri-2 in #25438
- build: migrate packaging, CI, and Docker from Poetry to uv by @stuxf in #25007
- fix(security): bump vulnerable dependencies (22 of 25 dependabot alerts) by @stuxf in #25442
- blog: restyle docs.litellm.ai/blog to engineering blog aesthetic by @ishaan-berri in #25580
- blog: Ramp-style engineering blog restyle + Redis circuit breaker post by @ishaan-berri in #25583
- feat(advisor): advisor tool orchestration loop for non-Anthropic providers by @ishaan-berri in #25579
- Litellm dev 04 11 2026 p1 by @krrish-berri-2 in #25585
- blog: add back arrow to blog post pages by @ishaan-berri in #25587
- fix(proxy): cache invalidation double-hashes token in bulk update and key rotation by @dkindlund in #25552
- fix(proxy): model_max_budget silently broken for routed models by @dkindlund in #25549
- fix(embedding): omit null encoding_format for openai requests by @meutsabdahal in #25395
- fix(budget): align reset times for legacy entities (Team Members, End Users) with standardized calendar by @DmitriyAlergant in #25440
- feat(model):add wandb model offerings to include kimi-k2.5 and minimax-m2.5 by @csoni-cweave in #25409
- [Fix] Align field-level checks in user and key update endpoints by @yuneng-berri in #25541
- [Refactor] UI - Virtual Keys: migrate regenerate key modal to AntD by @yuneng-berri in #25406
- [Fix] tighten handling of environment references in request parameters by @yuneng-berri in #25592
- merge main by @Sameerlite in #25616
- Litellm oss staging 04 08 2026 by @krrish-berri-2 in #25397
- fix(auth): gate post-custom-auth DB lookups behind opt-in flag by @michelligabriele in #25634
- fix: blog dark mode - text invisible on dark background by @krrish-berri-2 in #25620
- [Fix] /spend/logs: align filter handling with user scoping by @yuneng-berri in #25594
- feat: add litellm.compress() — BM25-based prompt compression with retrieval tool by @krrish-berri-2 in #25637
- docs: week 2 checklist by @mubashir1osmani in #25452
- feat(guardrails): per-team opt-out for specific global guardrails by @ryan-crabbe-berri in #25575
- Litellm ishaan april11 by @ishaan-berri in #25586
- chore: remove deprecated tests/ui_e2e_tests/ suite by @ryan-crabbe-berri in #25657
- test(e2e): add edit team model TPM/RPM limits test by @ryan-crabbe-berri in #25658
- Litellm oss staging 04 09 2026 by @krrish-berri-2 in #25463
- [Feature] UI - Teams: Allow Editing Router Settings After Team Creation by @yuneng-berri in #25398
- [Infra] Merge dev branch with main by @yuneng-berri in #25647
- [Test] UI - Models: Add E2E tests for Add Model flow by @yuneng-berri in #25590
- Revert "fix(embedding): omit null encoding_format for openai requests" by @Sameerlite in #25698
- feat(bedrock): normalize custom tool JSON schema for Invoke and Converse by @Sameerlite in #25396
- feat(gemini): Veo Lite pricing, video resolution usage and tiered cost by @Sameerlite in #25348
- litellm_staging_04_04_2026 by @krrish-berri-2 in #25192
- Litellm oss staging 04 11 2026 by @krrish-berri-2 in #25589
- litellm oss staging 04/13/2026 by @krrish-berri-2 in #25665
- fix(cost-map): add us-south1 to vertex qwen3-235b-a22b-instruct-2507-maas by @ti3x in #25382
- feat: add litellm.compress() — BM25-based prompt compression with ret… by @krrish-berri-2 in #25650
- fix(ui): pre-select backend default for boolean guardrail provider fields by @ryan-crabbe-berri in #25700
- fix: isolate logs team filter dropdown from root teams state bleed by @ryan-crabbe-berri in #25716
- test(ui): add getCookie to cookieUtils mock in user_dashboard test by @ryan-crabbe-berri in #25719
- [Docs] Add release notes for v1.83.3-stable and v1.83.7.rc.1 by @yuneng-berri in #25723
- fix: default invite user modal global role to least-privilege by @ryan-crabbe-berri in #25721
- [Docs] Regenerate v1.83.3-stable release notes from previous stable by @yuneng-berri in #25726
- [Refactor] Remove Chat UI link from Swagger docs message by @yuneng-berri in #25727
- [Fix] Test - Together AI: replace deprecated Mixtral with serverless Qwen3.5-9B by @yuneng-berri in #25728
- fallbacks image by @shivamrawat1 in #25731
- [Test] Replace flaky bedrock gpt-oss tool-call live test with request-body mock by @yuneng-berri in #25739
- docs update by @shivamrawat1 in #25736
- fix: remove non-existent litellm_mcps_tests_coverage from coverage combine by @joereyna in #25737
- fix(ci): increase test-server-root-path timeout to 30m by @joereyna in #25741
- bump: version 1.83.7 → 1.83.8 by @yuneng-berri in #25730
New Contributors
- @hunterchris made their first contribution in #20261
- @Dmitry-Kucher made their first contribution in #24998
- @kulia26 made their first contribution in #25071
- @jaxhend made their first contribution in #23532
- @abhyudayareddy made their first contribution in #25337
- @avarga1 made their first contribution in #25263
- @acebot712 made their first contribution in #24268
- @meutsabdahal made their first contribution in #25395
Full Changelog: v1.83.7.rc.1...v1.83.8-nightly