🚀 LiteLLM Connector for GitHub Copilot ChatBring any LiteLLM-supported model into the Copilot Chat model picker — OpenAI, Anthropic, Google, Mistral, local Llama, and more. If LiteLLM can talk to it, Copilot can use it. 🆕 What's New in 2.5.19
See ⭐️ Support the Project
⚡ Quick Start (60 Seconds)
✅ Requirements
✨ Features & Differentiators
🐛 TroubleshootingModels not showing up?
"Sign in to use GitHub Copilot" appears while using BYOK?
A background utility call is being routed to a Copilot model. Set 🚫 Using BYOK Without CopilotBYOK models work without signing into a GitHub account or a Copilot plan, including fully air-gapped scenarios. Your LiteLLM Connector models appear in the Chat model picker and work for chat and agent workflows with no Copilot subscription required. A few Copilot-backed features stop working without a login because their defaults point at Copilot models. You can redirect all of them to your LiteLLM Connector models so the full chat experience keeps working offline.
Settings that take a fully qualified model nameA fully qualified model name is
Settings that use a model dropdownThese settings present a dropdown of every available model (including your BYOK models). Pick the LiteLLM Connector model you want from the list.
Example
|
| Surface | Status |
|---|---|
| Next Edit Suggestions | Copilot models only |
| Execution / search subagents | Copilot models only |
| Agents window subagents | BYOK main model works; BYOK models are not offered for subagents (vscode#333802) |
| Copilot's SCM commit-message sparkle | Follows chat.utilitySmallModel / chat.byokUtilityModelDefault. The connector's own LiteLLM: Generate Commit Message command talks to your LiteLLM model directly and never needs Copilot. |
These are VS Code / Copilot Chat limitations, not connector limitations.
Enterprise note: For Copilot Business or Enterprise, organization administrators can control BYOK availability through Copilot policy settings.
⚙️ Configuration
Base URL + API key are configured through VS Code's Language Models UI (run LiteLLM: Manage Configuration).
Standard Settings
| Setting | Default | Description |
|---|---|---|
commitModelIdOverride |
"" |
Model ID for commit message generation. Accepts the complete litellm-connector/<group>/<model> value copied from the model picker; the vendor prefix is normalized automatically. |
commitOutputTokenReserve |
0 |
Requested commit output cap used during diff preparation, also capped to the known model output maximum. 0 = adaptive (1000 + 400/file + 40/hunk), target clamped to 1000–8000. Output consumes explicit combined context, not an independent input maximum twice. |
commitSystemPromptOverride |
"" |
Override the system prompt used for git commit message generation. Leave empty for the built-in default. |
commitMessagePromptOverride |
"" |
Override the commit message style/body prompt. Leave empty for the built-in default. |
inactivityTimeout |
60 |
Seconds before stream is considered idle |
disableCaching |
false |
When enabled, bypass LiteLLM caching for models that advertise support for the cache parameter |
disableLiteLLMResponseCaching |
false |
Bypass the LiteLLM proxy response cache on every request (no-cache + no-store), regardless of model card. Use when the proxy replays truncated/incomplete responses to retries |
disableAbnormalTerminationErrors |
false |
Log-only mode for truncated/empty/failed stream terminals instead of surfacing them as chat errors |
disableQuotaToolRedaction |
false |
Disable automatic tool removal on quota errors |
enableModelOverrides |
false |
Enable model-card override rules |
displayPricingInPicker |
true |
Show model pricing in picker details, hovers, and cost metadata; native model-name rows remain price-free |
discoveryTimeoutMs |
5000 |
Timeout (ms) for model discovery |
discoveryCacheTtlMs |
60000 |
Cache TTL (ms), 0 to disable |
discoveryFireDebounceMs |
250 |
Debounce (ms) for change notifications |
discoveryFireMinIntervalMs |
2000 |
Min interval (ms) between notifications |
Reasoning model-card overrides are disabled by default. Enable
enableModelOverrideswhen LiteLLM reports incorrect or incomplete reasoning metadata. Overrides replace or add only the explicitly named LiteLLM fields; related fields are not inferred.
🛠️ Help: Applying a Model Override
Model overrides are disabled by default. To correct incomplete LiteLLM /model/info metadata:
- Open Preferences: Open User Settings (JSON) or Preferences: Open Workspace Settings (JSON).
- Set
litellm-connector.enableModelOverridestotrue. - Add a matching rule to
litellm-connector.modelOverrides. - Run LiteLLM: Reload Models.
Use the raw LiteLLM model_name and exact snake_case model-card fields. Only explicitly defined fields are changed; related fields are not inferred.
{
"litellm-connector.enableModelOverrides": true,
"litellm-connector.modelOverrides": [
{
"match": "^gpt-4\\.8$",
"supports_reasoning": true,
"supports_max_reasoning_effort": true
}
]
}
Define each desired effort explicitly, such as supports_xhigh_reasoning_effort: true. Setting one effort field does not enable supports_reasoning or any other effort field automatically.
Advanced (JSON-Only)
These aren't in Settings UI — add to settings.json if needed:
| Setting | Default | Why Use It |
|---|---|---|
forceResponsesEndpoint |
false |
Force all models to use /responses endpoint for consistent reasoning/thinking support |
allowChatCompletionsFallback |
false |
Fall back to /chat/completions if /responses fails (needs forceResponsesEndpoint: true) |
⌨️ Commands
- LiteLLM: Manage Configuration — Add/edit provider groups
- LiteLLM: Reload Models — Refresh model list
- LiteLLM: Show Available Models — View discovered models and copy a fully qualified ID to the clipboard
- Generate Commit Message — Generate a commit message from staged changes (SCM sparkle appears once
commitModelIdOverrideis set) - Stop Generating Commit Message — Cancel an active generation from the animated Source Control stop button or the Command Palette; the original draft is restored. Failed or empty responses also restore the draft.
- LiteLLM: Set Log Level — Change logging verbosity
- LiteLLM: Reset All Configuration — Remove all provider groups, API keys, and connector settings (asks for confirmation)
📋 Feedback & Issues
- GitHub Issues: https://github.com/gethnet/litellm-connector-copilot/issues
🧩 Notes
- This extension is a language model provider for VS Code Chat
- Works with or without GitHub Copilot (BYOK models work without a Copilot subscription)
- VS Code Chat (formerly Copilot Chat) is built into VS Code 1.120+
📜 License
Apache-2.0 © GethNet