Skip to content

feat(litellm): improve reasoning model support and configuration UX#7287

Open
balcsida wants to merge 32 commits intoblock:mainfrom
balcsida:feat/litellm-reasoning-fix
Open

feat(litellm): improve reasoning model support and configuration UX#7287
balcsida wants to merge 32 commits intoblock:mainfrom
balcsida:feat/litellm-reasoning-fix

Conversation

@balcsida
Copy link

@balcsida balcsida commented Feb 18, 2026

Summary

Comprehensive improvements to the LiteLLM provider for better reasoning model support, variant-based reasoning effort control, and enriched model selection UX across CLI and desktop app.

Changes across 4 phases:

Phase 1: Reasoning parameter handling

  • Strip false-positive reasoning parameters (reasoning_effort, thinking) using proxy model capabilities
  • Only apply these params to models that actually support reasoning

Phase 2: Variant (reasoning effort) support

  • Add variant field to ModelConfig for reasoning effort control (low/medium/high/max)
  • CLI --variant flag and /variant slash command
  • Map variant to reasoning_effort for reasoning-capable models

Phase 3: Enriched model info from proxy

  • Fetch pricing and capability data from LiteLLM proxy's /model/info endpoint
  • Display pricing in CLI configure dialog (e.g., "$3.00/$15.00 per 1M tokens")
  • Add supports_reasoning to ModelInfo struct

Phase 4: Configuration UX improvements

  • Show model capabilities (reasoning badge, pricing) in CLI and desktop model selectors
  • Allow unlisted models for LiteLLM provider
  • New /config/providers/{name}/model-info server endpoint returning enriched ModelInfo[]
  • Desktop app: reasoning effort selector dropdown for reasoning models
  • Desktop app: variant field flows through UpdateProviderRequest to ModelConfig

Type of Change

  • Feature
  • Bug fix
  • Refactor / Code quality
  • Performance improvement
  • Documentation
  • Tests
  • Security fix
  • Build / Release
  • Other (specify below)

AI Assistance

  • This PR was created or reviewed with AI assistance

Testing

  • Unit tests for capabilities_to_model_info() including supports_reasoning field and sort order
  • E2e test for openai::create_request + strip_reasoning_params interaction
  • Live integration test for proxy model capabilities (requires running LiteLLM proxy)
  • Manual testing: CLI configure dialog, desktop app model selection, reasoning effort selector, variant application to chat requests

Related Issues

Relates to #4221

Screenshots/Demos (for UX changes)

Desktop model selector now shows reasoning badges and pricing hints in the dropdown, with a "Reasoning Effort" selector appearing when a reasoning model is selected.

Screenshot 2026-02-18 at 18 55 31 Screenshot 2026-02-18 at 18 55 04

@balcsida balcsida force-pushed the feat/litellm-reasoning-fix branch from dfb469d to e1678d5 Compare February 18, 2026 10:14
… info

Query LiteLLM proxy /model/info for supports_reasoning capability
instead of relying on OpenAI model-name heuristics that produce
false positives for user-defined aliases (e.g. 'o3-custom' pointing
to a non-reasoning model). Cache model capabilities per session
via OnceCell to avoid repeated proxy calls.

Fixes block#4221

Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
…ing_params

Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
…ntrol

Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
… to Provider

Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
…names

Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
@balcsida balcsida force-pushed the feat/litellm-reasoning-fix branch from e1678d5 to cf6298d Compare February 18, 2026 10:23
…d name

Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Signed-off-by: Dávid Balatoni <balcsida@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments