README.md

August 21, 2026 · View on GitHub

Unify Chat Provider

Integrate multiple LLM API providers into VS Code's GitHub Copilot Chat using the Language Model API.


English | 简体中文

Features

  • 🐑 Free Tier Access: Aggregates the latest free mainstream model channel configurations!
  • 📦 Out of the Box: One-click configuration, automatic syncing of official model lists, and migration from other tools.
  • 🔌 Perfect Compatibility: Supports all major LLM API formats (OpenAI Chat Completions, OpenAI Responses, Anthropic Messages, Ollama Chat, Gemini).
  • 🎯 Deep Adaptation: Adapts to special API features and best practices of 45+ mainstream providers.
  • 🚀 Best Performance: Built-in recommended parameters for 200+ mainstream models, allowing you to maximize model potential without tuning.
  • 💻 Code Completion: Provides high-performance FIM, NES, and Next Edit Prediction code completion with full-context integration and fully customizable models and algorithms.
  • 💬 Commit Message Generation: Provides better commit message generation than VS Code through the same UI entry point.
  • 💾 Import and Export: Complete import/export support; import configs via Base64, JSON, URL, or URI.
  • 💎 Great UX: Visual interface configuration, fully customizable model parameters, supports unlimited provider and model configurations, and supports coexistence of multiple configuration variants for the same provider and model.
  • One More Thing: One-click use of your Claude Code, Gemini CLI, Antigravity, Github Copilot, OpenAI Codex (ChatGPT Plus/Pro), xAI Grok (SuperGrok / X Premium+), and Zed account quotas.

Installation

  • Requires VS Code 1.115.0 or later.
  • Search for Unify Chat Provider in the VS Code Extension Marketplace and install it.
  • Download the latest .vsix file from GitHub Releases, then install it in VS Code via Install from VSIX... or by dragging it into the Extensions view.

Quick Start

If the provider you want to add is in the Provider Support Table, use One-Click Configuration.

Otherwise, you can also manually configure any provider and model.

You might also be looking for:

⚠️ Avoid VS Code background tasks consuming Copilot quota

VS Code currently uses utility models for some background tasks by default. If you use a free Copilot account, this may consume your Copilot quota.

You need to set these to other models in settings.json yourself to avoid consuming Copilot quota, or use the quick settings interface provided by this extension. See Quick Set VS Code Default Model for details.

⚠️ Allow the extension to enable Proposed APIs

This extension uses some experimental VS Code extension APIs. After installation, you may be prompted to enable these APIs, which requires administrator privileges. Allow them for the best experience.

The extension will still work without them, but with the following limitations:

  • Some models will be less effective.
  • Commit message generation will be significantly less effective.
  • The native commit message generation button will be unavailable.
  • Code completion will be unavailable.
  • Preset templates will be unavailable.

Basic Operations

The UI is integrated into the VS Code Command Palette for a more native experience. Here’s the basic workflow:

  1. Open the Command Palette:
    • From the menu: View -> Command Palette...
    • Or with the shortcut: Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (Mac)
  2. Search commands:
    • Type Unify Chat Provider: or ucp: to find all commands.
  3. Run a command:
    • Select a command with mouse or arrow keys, then press Enter.

One-Click Configuration

See the Provider Support Table for providers supported by one-click configuration.

If your provider is not in the list, you can add it via Manual Configuration.

Steps:

  1. Open the VS Code Command Palette and search for Unify Chat Provider: Add Provider From Well-Known Provider List.

  2. Select the provider you want to add.

  3. Follow the prompts to configure authentication (usually an API key, or it may require logging in via the browser), then you’ll be taken to the config import screen.

    • This screen lets you review and edit the config that will be imported.
    • For details, see the Provider Settings section.
  4. Click Save to complete the import and start using the models in Copilot Chat.

Code Completion

Open the VS Code Command Palette and search for Unify Chat Provider: Code Completion Settings.

Code completion is enabled by default, but it takes effect only after you add at least one valid completion algorithm.

Conflict Notice

Once this extension's code completion becomes active, it automatically disables VS Code's built-in code completion.

To allow both to coexist, which is not recommended, change Code Completion Settings -> Completion Strategy Settings -> Disable VS Code Built-in Completion.

When multiple extensions provide code completion, VS Code returns results only from the one that responds fastest. We therefore recommend enabling code completion in only one extension.

Supported Algorithms

NameIDDescription
SimplesimpleThe simplest FIM implementation; sends only the current document's prefix and suffix and works with any model.
Copilot (Replica)copilot-replicaA complete replica of VS Code Copilot's core FIM/NES implementation that works with any model.
ZedzedA complete replica of Zed Edit Prediction that supports Zeta models only.
InceptioninceptionImplements the documented best practices and supports Mercury Edit 2 only.
MistralmistralImplements the documented best practices and supports Codestral only.

We recommend the Zed and Inception algorithms for better results.

Simple

This algorithm supports any model. A model designed specifically for FIM code completion, such as Qwen Coder, is recommended.

Models such as DeepSeek V4 may support FIM but perform poorly in practice, so they are not recommended.

Steps:

  1. First add a model configuration, then adjust its completion capabilities based on whether the model supports FIM:
    • Supports FIM: set completion.template to fim.
    • Supports chat only: set completion.template to fim and completion.transport to compatible.
  2. Add a Simple algorithm through Code Completion Settings -> Add From Current Provider List -> Simple, then select the model to use.
  3. Click Save.

Zed

This algorithm provides the same code completion experience as the Zed editor.

Zed uses its own Zeta model family. We recommend adding it in one of two ways:

  1. Add the Zed provider through One-Click Configuration and use your Zed account quota.
  2. Deploy a Zeta model locally and add it.
  3. Add a Zed algorithm through Code Completion Settings -> Add From Current Provider List -> Zed, then select the model that was just added.
  4. Click Save.

Inception

  1. Add the Inception provider through One-Click Configuration.
  2. Add an Inception algorithm through Code Completion Settings -> Add From Current Provider List -> Inception, then select the Mercury Edit 2 model.
  3. Click Save.

Mistral

  1. Add the Mistral provider through One-Click Configuration.
  2. Add a Mistral algorithm through Code Completion Settings -> Add From Current Provider List -> Mistral, then select the Codestral model.
  3. Click Save.

Manual Configuration

This section uses DeepSeek as an example, adding the provider and two models.

DeepSeek supports One-Click Configuration. This section shows the manual setup for demonstration purposes.

  1. Preparation: get the API information from the provider docs, at least the following:

    • API Format: The API format (e.g., OpenAI Chat Completions, Anthropic Messages).
    • API Base URL: The base URL of the API.
    • Authentication: Usually an API key; obtained from the user center or console after registration.
  2. Open the VS Code Command Palette and search for Unify Chat Provider: Add Provider.

    - This screen is similar to the [Provider Settings](#provider-settings) screen, and includes in-place documentation for each field.
  3. Fill in the provider name: Name.

    • The name must be unique and is shown in the model list. Here we use DeepSeek.
    • You can create multiple configs for the same provider with different names, e.g., DeepSeek-Person, DeepSeek-Team.
  4. Choose the API format: API Format.

    • DeepSeek uses the OpenAI Chat Completion format, so select that.
    • To see all supported formats, refer to the API Format Support Table.
  5. Set the base URL: API Base URL.

    • DeepSeek’s base URL is https://api.deepseek.com.
  6. Configure authentication: Authentication.

    • DeepSeek uses API Key for authentication, so select API Key.
    • Enter the API key generated from the DeepSeek console.
  7. Click Models to go to the model management screen.

  8. Enable Auto-Fetch Official Models.

  9. Click Save to finish. You can now use the models in Copilot Chat.

One-Click Migration

See the Application Migration Support Table to learn which apps and extensions are supported.

If your app/extension is not in the list, you can configure it via One-Click Configuration or Manual Configuration.

Steps:

  1. Open the VS Code Command Palette and search for Unify Chat Provider: Import Config From Other Applications.
  • The UI lists all supported apps/extensions and the detected config file paths.
  • Use the button group on the far right of each item for additional actions:
    1. Custom Path: Import from a custom config file path.
    2. Import From Config Content: Paste the config content directly.
  1. Choose the app/extension you want to import, then you’ll be taken to the config import screen.
  • This screen lets you review and edit the config that will be imported.
  • For details, see the Provider Settings section.
  1. Click Save to complete the import and start using the imported models in Copilot Chat.

Manage Providers

  • You can create unlimited provider configurations, and multiple configs can coexist for the same provider.
  • Provider names must be unique.

Provider List

Open the VS Code Command Palette and search for Unify Chat Provider: Manage Providers.

The UI also shows all existing providers. Click a provider item to enter the Model List screen.

The button group on the right of each provider item provides additional actions:

  • Export: Export this provider config. See Import and Export.
  • Duplicate: Clone this provider config to create a new one.
  • Delete: Delete this provider config.

Provider Settings

  • Models: This button only appears while adding or importing a config; click it to enter the Model List screen.

This screen shows all configuration fields for the provider. For field details, see Provider Parameters.

Manage Models

  • Each provider can have unlimited model configurations.
  • The same model ID can exist under different providers.
  • Within a single provider config, you cannot have multiple identical model IDs directly, but you can create multiple configs by adding a #xxx suffix.
  • For example, you can add both glm4.7 and glm4.7#thinking to quickly switch thinking on/off.
  • The #xxx suffix is automatically removed when sending requests.
  • Model names can be duplicated, but using distinct names is recommended to avoid confusion.

Model List

Add Model Manually

This screen is similar to the Model Settings screen; you can read the in-place documentation to understand each field.

One-Click Add Models

This screen lists all models that can be added with one click. You can import multiple selected models at once.

See the Model Support Table for the full list of supported models.

Auto-Fetch Official Models

This feature periodically fetches the latest official model list from the provider’s API and automatically configures recommended parameters, greatly simplifying model setup.

Tip

A provider’s API may not return recommended parameters. In that case, recommended parameters are looked up from an internal database by model ID. See the Model Support Table for models that have built-in recommendations.

  • Auto-fetched models show an internet icon before the model name.
  • If an auto-fetched model ID conflicts with a manually configured one, only the manually configured model is shown.
  • Auto-fetched models are refreshed periodically; you can also click (click to fetch) to refresh manually.
  • Run the VS Code command Unify Chat Provider: Refresh All Provider's Official Models to trigger refresh for all providers.

Model Settings

  • Export: Export this model config. See Import and Export.
  • Duplicate: Clone this model config to create a new one.
  • Delete: Delete this model config.

This screen shows all configuration fields for the model. For field details, see Model Parameters.

Sync Built-in Parameters to All Configs

Run Unify Chat Provider: Sync Built-in Parameters to All Configs to sync local model parameters with the built-in model parameters.

This is typically used after a new version updates or optimizes built-in model parameters, allowing you to sync existing configs in one click.

Commit Message Generation

You can generate commit messages via the following commands:

  • Unify Chat Provider: Generate Commit Message
  • Unify Chat Provider: Generate Commit Message(All Changes)
  • Unify Chat Provider: Generate Commit Message(Staged Changes)
  • Unify Chat Provider: Generate Commit Message(Unstaged Changes)

You can also click the sparkle button on the right side of the commit message input box in the Source Control view to generate a commit message (on first use, you need to click the dropdown arrow next to the button and select Unify Chat Provider: Generate Commit Message from the dropdown menu).

Balance Monitoring

Use this feature to monitor provider balances in Provider Settings.

  • Run the VS Code command Unify Chat Provider: Provider Balance Monitoring to open the balance monitoring panel.
  • Configure it from the Balance Monitor field.
  • Built-in methods:
    • Moonshot AI Balance: no extra config required; uses provider baseUrl and API key.
    • Kimi Code Usage: no extra config required; uses provider baseUrl and API key.
    • New API Balance: always shows API key balance; user balance is optional and requires userId + systemToken (sensitive data).
    • DeepSeek Balance: no extra config required; uses provider baseUrl and API key.
    • OpenRouter Balance: no extra config required; uses provider baseUrl and API key.
    • SiliconFlow Balance: no extra config required; uses provider baseUrl and API key.
    • AIHubMix Balance: no extra balance config required; uses provider baseUrl, API key, and optional APP-Code from provider extraHeaders.
    • Claude Relay Service Balance: no extra config required; uses provider baseUrl and API key.
    • Antigravity Usage: no extra config required; uses the provider OAuth credential and project settings.
    • Gemini CLI Usage: no extra config required; uses the provider OAuth credential and optional project settings.
    • Codex Usage: no extra config required; uses provider credential (API key or Codex auth token).
  • Run the VS Code command Unify Chat Provider: Refresh All Providers' Balance Information to force refresh balances for all configured providers.

Adjust Parameters

Global Settings

  • Most unifyChatProvider.* settings are application-scoped and shared across profiles on the same device.
  • Code completion and commit message generation settings are window-scoped and can be configured per workspace.
NameIDDescription
Enable Detailed LoggingverboseEnables detailed request and response logs. Default: false.
Model Display Name TemplatemodelDisplayNameTemplateTemplate for chat model names. Default: {modelName}{{ ({providerName})}}.
Store API Key in SettingsstoreApiKeyInSettingsWhether to store syncable sensitive data in settings.json. Default: false; see Cloud Sync Compatibility.
Newest Providers FirstproviderList.newestFirstWhether to show the most recently added or modified providers first in management views. Default: true.
Balance Refresh IntervalbalanceRefreshIntervalMsPeriodic provider balance refresh interval in milliseconds. Default: 60000; minimum: 1000.
Balance Throttle WindowbalanceThrottleWindowMsThrottle window for refreshing balances after a request, in milliseconds. Default: 10000; minimum: 0.
Balance Status Bar IconbalanceStatusBarIconTheme icon text used for provider balances in the status bar. Default: $(credit-card); use an empty string to hide it.
Display Balance in ConfigurationdisplayBalanceInConfigurationWhether to show refreshed balance information in the model configuration button area. Default: false.
Enable Balance WarningsbalanceWarning.enabledWhether to show a warning icon beside a model name when its balance approaches a threshold. Default: true.
Expiration Warning ThresholdbalanceWarning.timeThresholdDaysExpiration warning threshold in days; decimals are supported. Default: 1; minimum: 0.
Amount Warning ThresholdbalanceWarning.amountThresholdBalance warning threshold, regardless of currency. Default: 1; minimum: 0.
Token Warning ThresholdbalanceWarning.tokenThresholdMillionsRemaining-token warning threshold in millions of tokens. Default: 1; minimum: 0.
Global Network SettingsnetworkSettingsGlobal network settings. Timeout and retry affect chat requests; proxy affects provider HTTP requests.
Global Timeout SettingsnetworkSettings.timeoutGlobal chat request timeout settings in milliseconds.
Global Connection TimeoutnetworkSettings.timeout.connectionMaximum time to wait for a TCP connection. Default: 60000 (60 seconds); must be a positive integer.
Global Response Interval TimeoutnetworkSettings.timeout.responseMaximum time between SSE stream chunks. Default: 300000 (5 minutes); must be a positive integer.
Global Retry SettingsnetworkSettings.retryGlobal retry settings for chat requests.
Global Max RetriesnetworkSettings.retry.maxRetriesDefault: 10; must be a non-negative integer.
Global Initial Retry DelaynetworkSettings.retry.initialDelayMsDelay before the first retry in milliseconds. Default: 1000; must be a non-negative integer.
Global Max Retry DelaynetworkSettings.retry.maxDelayMsUpper limit for retry delays in milliseconds. Default: 60000; must be a positive integer.
Global Backoff MultipliernetworkSettings.retry.backoffMultiplierExponential backoff multiplier. Default: 2; minimum: 1.
Global Jitter FactornetworkSettings.retry.jitterFactorJitter factor used to randomize delays. Default: 0.1; range: 0-1.
Global Retryable Status CodesnetworkSettings.retry.statusCodesHTTP status codes that trigger retries. When set, this fully replaces the default rules: 408, 409, 429, and all status codes >=500.
Global Proxy SettingsnetworkSettings.proxyGlobal proxy settings for provider requests. See Proxy Configuration for fields.
Enable Code Completioncompletion.enabledWhether to enable this extension's code completion. Default: true; see Completion Algorithm Parameters.
Completion Providerscompletion.providersArray of completion algorithm configurations. Default: []; see Completion Algorithm Parameters.
Completion Scheduling Strategycompletion.strategyScheduling and stopping conditions for completion algorithms; see Completion Scheduling Strategy Parameters.
Commit Message Generation ButtonscommitMessageGeneration.enableButtonsWhether to show commit message generation buttons in the Source Control view. Default: true.
Commit Message Generation ModelcommitMessageGeneration.modelModel reference used for commit message generation. Default: { "vendor": "", "id": "" }.
Commit Message Model VendorcommitMessageGeneration.model.vendorLanguage model vendor identifier.
Commit Message Model IDcommitMessageGeneration.model.idLanguage model ID.
Commit Message Generation FormatcommitMessageGeneration.formatauto (default) / conventional / angular / google / atom / plain / custom.
Custom Commit Message InstructionscommitMessageGeneration.customInstructionsAdditional instructions appended to the system prompt. Default: empty string.
Commit Message Excluded FilescommitMessageGeneration.excludeFilesArray of VS Code globs whose diffs are omitted from the prompt. Default: [].
Provider EndpointsendpointsArray of provider configurations. Default: []; see Provider Parameters for fields.

Proxy Configuration

Proxy settings can be configured globally through unifyChatProvider.networkSettings.proxy or per provider through unifyChatProvider.endpoints[].proxy. The effective order is:

  1. Provider proxy
  2. Global networkSettings.proxy
  3. VS Code HTTP proxy settings

proxy.type supports:

  • vscode (default): Use VS Code http.proxy, http.proxyAuthorization, http.proxyStrictSSL, and http.noProxy.
  • direct: Connect directly and bypass VS Code/global proxy settings.
  • custom: Use proxy.url; optional fields are authorization, strictSSL, and noProxy.

Supported custom proxy URL protocols are http, https, socks, socks4, socks4a, socks5, and socks5h. Proxy settings apply to provider HTTP requests, including chat requests, balance refreshes, and official model fetching.

Example global proxy:

{
  "unifyChatProvider.networkSettings": {
    "proxy": {
      "type": "custom",
      "url": "http://127.0.0.1:7890",
      "noProxy": ["localhost", "127.0.0.1", ".example.com"]
    }
  }
}

Example provider override:

{
  "unifyChatProvider.endpoints": [
    {
      "type": "openai-chat-completion",
      "name": "OpenAI Direct",
      "baseUrl": "https://api.openai.com",
      "proxy": {
        "type": "direct"
      },
      "models": ["gpt-5"]
    }
  ]
}

Provider Parameters

The following fields correspond to ProviderConfig (field names used in import/export JSON).

NameIDDescription
API FormattypeRequired. Provider type, which determines the API format and compatibility logic; see API Format Support Table for supported values.
Provider NamenameRequired. Unique name for this provider configuration, used in lists and references.
API Base URLbaseUrlRequired. API base URL, for example https://api.anthropic.com.
Disable URL NormalizationuseRawBaseUrlWhether to disable provider-specific URL handling such as appending /v1 or removing suffixes. Default: false.
Chat Transport Modetransportauto / sse / websocket; leave unset to use the provider's default behavior.
Service TierserviceTierProvider-level default processing tier: auto / standard / flex / scale / priority.
Context CachecontextCacheContext cache configuration, used only by providers that support prompt caching.
Context Cache TypecontextCache.typeonly-free (default): use caching only when free; allow-paid: use it even when it may incur a charge.
Context Cache TTL (seconds)contextCache.ttlPositive integer. Default: 300. Some providers map this to supported TTL tiers; tiers that may incur a charge can require allow-paid.
AuthenticationauthAuthentication configuration, usually managed through the provider settings UI.
Authentication Methodauth.methodnone / api-key / oauth2 / antigravity-oauth / google-gemini-oauth / google-vertex-ai-auth / claude-code / openai-codex / xai-grok-oauth / github-copilot / zed.
Legacy API KeyapiKeyDeprecated and used only to migrate legacy configurations. New configurations should use auth; this field is not persisted again.
Balance MonitorbalanceProviderProvider-level balance monitoring configuration.
Completion CapabilitiescompletionDefault code completion capabilities for this provider.
Completion Transportcompletion.transportauto (the default if still unset after inheritance) / native / compatible.
Native Completion Base URLcompletion.baseUrlUsed only for native completion requests; may be an absolute URL or a path relative to the provider's baseUrl.
Completion Templatescompletion.templatesall or an array of template IDs. Supports fim, codegemma, copilot-replica-nes, zeta1, zeta2, zeta2.1, zeta3-internal, mercury-edit-2, and codestral. An empty array disables completion; if neither provider nor model sets it, the default is an empty array.
ModelsmodelsRequired. Array of model ID strings or ModelConfig objects.
Extra HeadersextraHeadersHTTP headers appended to every request (Record<string, string>); values may reference provider credentials with ${APIKEY}.
Extra Body FieldsextraBodyFields appended to the request body (Record<string, unknown>) for provider-specific parameters.
ProxyproxyProvider-level proxy override; see Proxy Configuration for fields.
TimeouttimeoutProvider-level timeout override for chat requests, in milliseconds.
Connection Timeouttimeout.connectionMust be a positive integer. Inherits the global value when unset; built-in default: 60000 (60 seconds).
Response Interval Timeouttimeout.responseMust be a positive integer. Inherits the global value when unset; built-in default: 300000 (5 minutes).
RetryretryProvider-level retry override for chat requests. Retryable HTTP status codes can be configured only through global networkSettings.retry.statusCodes.
Max Retriesretry.maxRetriesMust be a non-negative integer. Inherits the global value when unset; built-in default: 10.
Initial Delayretry.initialDelayMsMust be a non-negative integer in milliseconds. Inherits the global value when unset; built-in default: 1000.
Max Delayretry.maxDelayMsMust be a positive integer in milliseconds. Inherits the global value when unset; built-in default: 60000.
Backoff Multiplierretry.backoffMultiplierMinimum: 1. Inherits the global value when unset; built-in default: 2.
Jitter Factorretry.jitterFactorRange: 0-1. Inherits the global value when unset; built-in default: 0.1.
Auto-Fetch Official ModelsautoFetchOfficialModelsWhether to fetch and synchronize official models from the provider API. Default: false.

Model Parameters

The following fields correspond to ModelConfig (field names used in import/export JSON).

NameIDDescription
Model IDidRequired. Model identifier. Use a #xxx suffix to create multiple configurations for the same model; the suffix is removed automatically when requests are sent.
Display NamenameName shown in the UI; falls back to id when unset.
Model FamilyfamilyModel identifier used for grouping and matching, such as gpt-4 or claude-3. When unset, uses id after removing its #xxx suffix.
Max Input TokensmaxInputTokensMaximum input or context token count. Some providers interpret this as the combined input and output context. Extension runtime default: 128000.
Max Output TokensmaxOutputTokensMaximum generated token count; required by some providers. Extension runtime default: 64000.
Tokenizertokenizerdefault (an alias for char4, and the default) / conservative / char4 / openai / deepseek.
Token Count MultipliertokenCountMultiplierPositive multiplier applied to the token count before it is returned to VS Code. Default: 1.0.
CapabilitiescapabilitiesCapability declarations used by the UI, routing, and some request construction.
Tool Callingcapabilities.toolCallingA boolean indicates whether tool calling is supported; an integer indicates the maximum number of tools.
Image Inputcapabilities.imageInputWhether image input is supported.
Edit Tool Hintcapabilities.editToolsfind-replace / multi-find-replace / apply-patch / code-rewrite.
StreamingstreamWhether to enable streaming responses; uses the provider's default behavior when unset.
TemperaturetemperatureSampling temperature.
Top-KtopKInteger for top-k sampling.
Top-PtopPTop-p (nucleus) sampling.
Frequency PenaltyfrequencyPenaltyFrequency penalty.
Presence PenaltypresencePenaltyPresence penalty.
Parallel Tool CallingparallelToolCallingtrue to enable, false to disable; uses the provider's default behavior when unset.
Service TierserviceTierauto / standard / flex / scale / priority; inherits the provider value when unset, and omits the field if the provider value is also unset.
Verbosityverbositylow / medium / high; not supported by all providers.
ThinkingthinkingThinking or reasoning configuration; support varies by provider.
Thinking Typethinking.typeRequired when thinking is present: enabled / disabled / auto.
Thinking Budget Tokensthinking.budgetTokensToken budget for thinking.
Thinking Effortthinking.effortnone / minimal / low / medium / high / xhigh / max.
Reasoning Summarythinking.summarynone / auto / concise / detailed.
Reasoning Modethinking.modestandard / pro.
Reasoning Retention Modethinking.contextauto / current_turn / all_turns.
Native Multi-Agentmulti-agentNative multi-agent execution configuration.
Enable Native Multi-Agentmulti-agent.enabledRequired when multi-agent is present.
Max Concurrent Subagentsmulti-agent.maxConcurrentSubagentsOptional positive integer that limits the number of concurrently running subagents.
Native Web SearchwebSearchNative web search tool configuration.
Native Memory ToolmemoryToolWhether to enable the native memory tool; applies only to providers that support it.
Extra HeadersextraHeadersHTTP headers appended to this model request (Record<string, string>); values may reference provider credentials with ${APIKEY}.
Extra Body FieldsextraBodyFields appended to this model request body (Record<string, unknown>).
Completion OverridecompletionModel-level code completion capability override; each unset child field separately inherits the provider configuration.
Completion Transportcompletion.transportauto / native / compatible.
Native Completion Base URLcompletion.baseUrlUsed only for native completion requests; may be an absolute URL or a path relative to the provider's baseUrl.
Completion Templatescompletion.templatesall or an array of template IDs. Supports fim, codegemma, copilot-replica-nes, zeta1, zeta2, zeta2.1, zeta3-internal, mercury-edit-2, and codestral; an empty array explicitly disables completion for this model.
Preset TemplatespresetTemplatesArray of preset templates in the VS Code model submenu. Templates are applied in declaration order, and later templates override same-named fields from earlier templates.

Service Tier Notes

  • Leaving serviceTier empty means this extension omits the service tier / speed fields and keeps the provider default behavior.
  • Mapping for the OpenAI API:
    • auto -> auto
    • standard -> default
    • flex -> flex
    • scale -> scale
    • priority -> priority
  • Mapping for Anthropic Messages API:
    • auto -> auto
    • standard / flex / scale -> standard_only
    • priority -> speed: "fast" with fast-mode-2026-02-01

Preset Template Notes

You can configure multiple preset templates for a single model. Each template corresponds to one enum option group displayed in the VS Code model selection submenu.

Preset overrides for thinking are shallow-merged by child field, allowing independent reasoning controls to compose. Overrides for other top-level fields continue to replace the complete field value. The GPT-5.6 Sol, Terra, and Luna built-ins use the IDs gpt-5.6-sol, gpt-5.6-terra, and gpt-5.6-luna; each has a 1,050,000-token context window, 128,000-token output limit, OpenAI tokenization, tool and image support, and the apply-patch edit hint. The gpt-5.6 alias resolves to Sol. These models expose reasoningEffort (max, xhigh, high, medium, low, none), reasoningMode (standard, pro), and reasoningContext (auto, current_turn, all_turns) without provider-default options. Their defaults are xhigh, standard, and auto.

You can define custom preset templates to switch model parameters quickly. For example:

{
  "presetTemplates": [
    {
      "name": "Reasoning Effort",
      "id": "reasoningEffort",
      "presets": [
        {
          "name": "High",
          "description": "Suitable for tasks involving planning, coding, synthesis, or more difficult reasoning.",
          "id": "high",
          "config": {
            "thinking": {
              "type": "enabled",
              "effort": "high"
            },
            "temperature": 0.7
          }
        },
        {
          "name": "Low",
          "description": "A small amount of extra thinking can improve reliability with almost no added latency.",
          "id": "low",
          "config": {
            "thinking": {
              "type": "enabled",
              "effort": "low"
            },
            "temperature": 0.4
          }
        },
        {
          "name": "Default",
          "description": "Use the model's current configuration.",
          "id": "default",
          "config": {}
        }
      ],
      "default": "default"
    }
  ]
}
  • config overrides fields in the model configuration. In the example above, high and low override thinking and temperature, while default overrides nothing and uses the model's current configuration.
  • If multiple templates override the same field, they are applied in declaration order, and later templates override earlier fields with the same name.

Completion Algorithm Parameters

NameIDDescription
Enable Code CompletionenabledWhether to enable this extension's code completion. Default: true; takes effect only when at least one valid completion provider exists.
Completion ProvidersprovidersArray of completion providers (CompletionAlgorithmEntry[]). Default: [].
Provider IDproviders[].idUnique completion provider identifier.
Algorithmproviders[].algorithmsimple / copilot-replica / zed / inception / mistral.
Algorithm Optionsproviders[].optionsAlgorithm configuration object.

Every model field under options is a CompletionModelReference in the format { "vendor": string, "id": string }.

Simple (simple)

NameIDDescription
Modeloptions.modelRequired. Used to generate FIM completions.

Copilot (Replica) (copilot-replica)

NameIDDescription
Enable FIMoptions.enableFIMRequired boolean. Whether to enable FIM completion.
Enable NESoptions.enableNESRequired boolean. Whether to enable Next Edit Suggestion; at least one of enableFIM and enableNES must be true.
FIM Modeloptions.fimModelRequired when FIM is enabled in independent-model mode.
FIM Candidate Countoptions.nPositive integer. Default: 1. Used only for independent FIM mode; falls back to one candidate when the transport does not support multiple candidates.
NES Modeloptions.nesModelRequired when NES is enabled in independent-model mode.
Model Unificationoptions.modelUnificationWhether FIM and NES share one model. Default: false. May be true only when both FIM and NES are enabled; when enabled, always uses the xtabUnifiedModel protocol and does not invoke the independent FIM transport.
Unified Modeloptions.unifiedModelRequired when model unification is enabled; used for both FIM insertions and NES edits.
Cursor Prediction Modeloptions.cursorPredictionModelOptional. Used only to predict the next cursor position for NES; reuses the current NES or unified model when unset. If this model is unavailable, only cursor prediction is disabled and the main NES request is unaffected.
NES Prompt Strategyoptions.strategyDefault in independent-model mode: copilotNesXtab. Options: copilotNesXtab, xtab275, xtabUnifiedModel, xtabAggressiveness, xtab275Aggressiveness, xtab275AggressivenessHighLow, xtab275EditIntent, xtab275EditIntentShort; match this to the model's prompt and response protocol.
Eagernessoptions.eagernessNES adaptive request strategy: auto / low / medium / high. Default: auto. Changing this field does not rebuild the stateful Copilot runtime.
Completion Languagesoptions.enabledLanguagesAdvanced. Map of language IDs to booleans, with * as a fallback, controlling automatic FIM. In unified-model mode, this works with inlineEditsEnabledLanguages to determine the completion channel. Enabled by default except for plaintext, markdown, and scminput; manually triggered independent FIM is not restricted by this setting.
Inline Edit Languagesoptions.inlineEditsEnabledLanguagesAdvanced. Map of language IDs to booleans, with * as a fallback, controlling NES inline edits. Enabled by default except for plaintext, markdown, and scminput.
Respect Selected Completion Infooptions.respectSelectedCompletionInfoAdvanced. Controls whether FIM treats the selected completion in the suggestion widget as a pending edit. When unset, this is determined automatically from the VS Code version and editor.quickSuggestions state.
Include Inline Completionsoptions.includeInlineCompletionsAdvanced. Whether NES may return inline completions in the current document. Default: true.
Include Inline Editsoptions.includeInlineEditsAdvanced. Whether NES may return inline or cross-file edits. Default: true. When NES is enabled, this and includeInlineCompletions cannot both be false.

Zed (zed)

NameIDDescription
Modeloptions.modelRequired. Used for Zed Edit Prediction.
Max Output Tokensoptions.maxTokensPositive integer. Default: 64; Zed Cloud v3/v4 requests use service-defined limits.

Inception (inception)

NameIDDescription
Modeloptions.modelRequired. Used for Mercury Edit 2 Next Edit; the service determines the output limit.

Mistral (mistral)

NameIDDescription
Modeloptions.modelRequired. Used for Codestral FIM.
Max Output Tokensoptions.maxTokensPositive integer. Default: 150.

Completion Scheduling Strategy Parameters

NameIDDescription
Scheduling Modemodeall (default): immediately requests all providers concurrently; main-first: prioritizes the main provider.
Disable VS Code Built-in CompletiondisableVSCodeBuiltinCompletionDefault: true. Blocks VS Code's code completion; set to false to allow both to coexist.
Disabled File GlobsdisabledGlobsAdditional file globs for which completion requests are not sent. Always merged with **/.env*, **/*.pem, **/*.key, **/*.cert, **/*.crt, **/.dev.vars, and **/secrets.yml; the built-in rules cannot be removed by setting an empty array.
Main ProvidermainProviderRequired in main-first mode; value is a providers[].id. If the reference does not exist, the runtime falls back to the default strategy and shows a throttled configuration warning.
Main Provider Wait TimemainFirstTimeoutMsNon-negative milliseconds. Default: 500. If the main provider still has no usable result, reaching this time starts or releases the other providers; it is not a cancellation timeout for the main request.
Start Other Providers in ParallelparallelRequestOthersUsed only by main-first. Default: false. When false, other providers start after the main provider fails, returns no result, or times out. When true, all start together, but other results enter the stopping condition only after the main provider finishes or its wait time expires.
Stopping ConditionstopWhenObject controlling when to stop waiting and merge the currently available results.
Stopping Condition TypestopWhen.typefirstUsable (default) / deadline / enoughResults / allSettled.
First Result Grace PeriodstopWhen.graceMsNon-negative milliseconds, used only by firstUsable. Time to keep collecting after the first usable result. Default: 0.
DeadlinestopWhen.timeoutMsNon-negative milliseconds; required by deadline. Returns available results when reached.
Minimum Result CountstopWhen.minItemsPositive integer; required by enoughResults. Counts completion items after merging and deduplication.
Enough Results Grace PeriodstopWhen.graceMsNon-negative milliseconds, used only by enoughResults. Time to keep collecting after reaching minItems. Default: 0.

In main-first mode, a usable result from the main provider during the priority phase is returned immediately. Only after the main provider produces no usable result and the fallback phase begins are other providers merged according to stopWhen. The stopping conditions behave as follows:

  • firstUsable: after the first usable result, waits up to graceMs, then returns and cancels running requests; returns earlier if every request finishes first.
  • deadline: returns available results and cancels running requests when timeoutMs is reached; returns earlier if every request finishes first.
  • enoughResults: after the deduplicated completion items reach minItems, waits graceMs, then returns and cancels running requests; if every request finishes first, returns the results available at that time.
  • allSettled: waits until every scheduled request succeeds, fails, or returns no result.

Results from multiple providers are merged in actual completion order and deduplicated by target URI, inserted text, and replacement range, keeping the first occurrence. An error from one provider does not prevent other providers from returning results.

Import and Export

Supported import/export payloads:

  • Single provider configuration
  • Single model configuration
  • Multiple provider configurations (array)
  • Multiple model configurations (array)

Supported import/export formats:

  • Base64-url encoded JSON config string (export uses this format only)
  • Plain JSON config string
  • A URL pointing to a Base64-url encoded or plain JSON config string

URI Support

Supports importing provider configs via VS Code URI.

Example:

vscode://SmallMain.vscode-unify-chat-provider/import-config?config=<input>

<input> supports the same formats as in Import and Export.

Override Config Fields

You can add query parameters to override certain fields in the imported config.

Example:

vscode://SmallMain.vscode-unify-chat-provider/import-config?config=<input>&auth={"method":"api-key","apiKey":"my-api-key"}

The import will override the auth field before importing.

Provider Advocacy

If you are a developer for an LLM provider, you can add a link like the following on your website so users can add your model to this extension with one click:

<a href="vscode://SmallMain.vscode-unify-chat-provider/import-config?config=eyJ0eXBlIjoi...">Add to Unify Chat Provider</a>

Cloud Sync Compatibility

Extension configs are stored in settings.json, so they work with VS Code Settings Sync.

Session-based authentication settings include a non-secret binding ID in settings.json, while OAuth tokens, client secrets, account/project context, and Zed organization/privacy state are stored in a versioned envelope in VS Code Secret Storage. Secret Storage does not sync.

Each device therefore authorizes and refreshes its own session. Syncing, renaming, or changing the account on one device cannot replace another device's token or account context. A newly synced device will ask you to authorize locally.

If you want to sync suitable sensitive data such as API keys, enable storeApiKeyInSettings.

OAuth and Zed credentials are always kept in Secret Storage to avoid multi-device refresh and account-context conflicts. Explicitly exporting and importing sensitive data can still place the same upstream credential on multiple devices.

This can increase the risk of user data leakage, so evaluate the risk before enabling.

Quick Set VS Code Default Model

You can open the quick settings interface with the VS Code command Unify Chat Provider: Change VS Code Default Model.

The following settings can be changed quickly:

  • chat.utilityModel
  • chat.utilitySmallModel
  • chat.exploreAgent.defaultModel
  • github.copilot.chat.exploreAgent.model
  • inlineChat.defaultModel
  • chat.planAgent.defaultModel
  • github.copilot.chat.askAgent.model
  • github.copilot.chat.implementAgent.model

Items marked with mean:

  • By default, VS Code uses Copilot built-in models for these settings. These models do not consume premium quota on paid plans, but may consume free quota on free plans.
  • It is recommended to set them to fast, inexpensive models.

You can select the Change All Built-in Utility Models button to update all items at once.

API Format Support Table

APIIDTypical EndpointNotes
OpenAI Chat Completion APIopenai-chat-completion/v1/chat/completionsIf the base URL doesn’t end with a version suffix, /v1 is appended automatically.
OpenAI Responses APIopenai-responses/v1/responsesIf the base URL doesn’t end with a version suffix, /v1 is appended automatically.
Google AI Studio (Gemini API)google-ai-studio/v1beta/models:generateContentAutomatically detect the version number suffix.
Google Vertex AIgoogle-vertex-ai/v1beta/models:generateContentProvide different base URL based on authentication.
Anthropic Messages APIanthropic/v1/messagesAutomatically removes duplicated /v1 suffix.
Ollama Chat APIollama/api/chatAutomatically removes duplicated /api suffix.
Zed Cloud APIzed/completionsNative sign-in, organization-scoped models, and Edit Prediction v3/v4.

Provider Support Table

The providers listed below support One-Click Configuration. Implementations follow the best practices from official docs to help you get the best performance.

Tip

Even if a provider is not listed, you can still use it via Manual Configuration.

ProviderSupported FeaturesFree QuotaBalance Monitor
Open AI
Google AI Studio
Google Vertex AI
  • Authentication
  • Anthropic
  • InterleavedThinking
  • MidConversationToolChanges
  • FineGrainedToolStreaming
  • AlwaysOnAdaptiveThinking
  • Inception
  • Mercury Edit 2 Completion
  • Mistral AI
  • Reasoning Content Chunks
  • Codestral FIM Completion
  • xAI
    Hugging Face (Inference Providers)
    OpenRouter
  • CacheControl
  • ReasoningParam
  • ReasoningDetails
  • ClaudeAdaptiveVerbosity
  • Details
    AIHubMix
    Cerebras
  • ReasoningField
  • DisableReasoningParam
  • ClearThinking
  • Details
    OpenCode Zen (OpenAI Chat Completion)
  • ReasoningContent
  • Details
    OpenCode Zen (OpenAI Responses)
  • ReasoningContent
  • Details
    OpenCode Zen (Anthropic Messages)
  • InterleavedThinking
  • FineGrainedToolStreaming
  • Details
    OpenCode Zen (Gemini)Details
    OpenCode Go (OpenAI Chat Completion)
  • ReasoningContent
  • Details
    OpenCode Go (Anthropic Messages)
  • InterleavedThinking
  • FineGrainedToolStreaming
  • Details
    NvidiaDetails
    Kilo Code
  • RawBaseUrl
  • Details
    Alibaba Cloud Model Studio (China)
  • ThinkingParam3
  • ReasoningContent
  • Alibaba Cloud Model Studio (Team Token Plan)
  • ThinkingParam3
  • ReasoningContent
  • Alibaba Cloud Model Studio (International)
  • ThinkingParam3
  • ReasoningContent
  • Tencent Cloud TokenHub (China)
  • ThinkingParam
  • ReasoningEffortParam
  • ReasoningContent
  • Tencent Cloud TokenHub (International)
  • ThinkingParam
  • ReasoningEffortParam
  • ReasoningContent
  • Tencent Cloud TokenHub (Personal Token Plan)
  • RawBaseUrl
  • ThinkingParam
  • ReasoningEffortParam
  • ReasoningContent
  • Tencent Cloud Token Plan (Enterprise)
  • RawBaseUrl
  • ThinkingParam
  • ReasoningEffortParam
  • ReasoningContent
  • Model Scope (API-Inference)
  • ThinkingParam3
  • ReasoningContent
  • Details
    Cline BotDetails
    Volcano Engine
  • AutoThinking
  • ThinkingParam2
  • VolcContextCaching
  • Details
    Volcano Engine (Coding Plan)
  • AutoThinking
  • ThinkingParam2
  • Byte Plus
  • AutoThinking
  • ThinkingParam2
  • VolcContextCaching
  • DeepSeek
  • ThinkingParam
  • ReasoningEffortParam
  • ReasoningContent
  • Gitee AI
    Xiaomi MIMO
  • ThinkingParam
  • ReasoningContent
  • Xiaomi MIMO (China, Token Plan)
  • ThinkingParam
  • ReasoningContent
  • Xiaomi MIMO (Singapore, Token Plan)
  • ThinkingParam
  • ReasoningContent
  • Xiaomi MIMO (Europe, Token Plan)
  • ThinkingParam
  • ReasoningContent
  • Ollama Local
    Ollama Cloud
    LM Studio Local
    StepFun (China)
  • ReasoningField
  • StepFun (International)
  • ReasoningField
  • ZhiPu AI
  • ThinkingParam
  • ReasoningEffortParam
  • ReasoningContent
  • ClearThinking
  • Details
    ZhiPu AI (Coding Plan)
  • ThinkingParam
  • ReasoningEffortParam
  • ReasoningContent
  • ClearThinking
  • Z.AI
  • ThinkingParam
  • ReasoningEffortParam
  • ReasoningContent
  • ClearThinking
  • Details
    Z.AI (Coding Plan)
  • ThinkingParam
  • ReasoningEffortParam
  • ReasoningContent
  • ClearThinking
  • MiniMax (China)
  • ReasoningDetails
  • MiniMax (International)
  • ReasoningDetails
  • LongCatDetails
    Moonshot AI (China)
  • ThinkingParam
  • ReasoningEffortParam
  • ReasoningContent
  • Moonshot AI (International)
  • ThinkingParam
  • ReasoningEffortParam
  • ReasoningContent
  • Moonshot AI (Coding Plan)
  • ReasoningContent
  • StreamLake Vanchin (China)Details
    StreamLake Vanchin (China, Coding Plan)
    StreamLake Vanchin (International)Details
    StreamLake Vanchin (International, Coding Plan)
    SiliconFlow (China)
  • ThinkingParam3
  • ThinkingBudgetParam
  • ReasoningContent
  • Details
    SiliconFlow (International)
  • ThinkingParam3
  • ThinkingBudgetParam
  • ReasoningContent
  • Details

    Experimental Supported Providers:

    ⚠️ Warning: Adding the following providers may violate their Terms of Service!

    • Your account may be suspended or permanently banned.
    • You need to accept the risks yourself; all risks are borne by you.
    ProviderFree QuotaBalance Monitor
    OpenAI Codex (ChatGPT Plus/Pro)
    xAI Grok Build (SuperGrok / X Premium+)
    GitHub CopilotDetails
    Google AntigravityDetails
    Google Gemini CLIDetails
    Claude Code
    Zed
    SyntheticDetails

    Long-Term Free Quotas:

    Kilo Code

    • Often includes free models, including stealth models and limited-time frontier models.
    • Availability can change frequently, so check Kilo's latest listing in-app.

    Cline Bot

    • Supported models:
      • minimax/minimax-m2.5
      • kwaipilot/kat-coder-pro
      • z-ai/glm-5

    GitHub Copilot

    • Some models have free quotas, others require Copilot subscription. After subscription, it is completely free with monthly refreshing quotas.
    • Supported models: Claude, GPT, Grok, Gemini and other mainstream models.

    Google Antigravity

    • Each model has a certain free quota, refreshing over time.
    • Supported models: Claude 4.5 Series, Gemini 3.1 Series, Gemini 3 Series.

    Google Gemini CLI

    • Each model has a certain free quota, refreshing over time.
    • Supported models: Gemini 3.1 Series, Gemini 3 Series, Gemini 2.5 Series.

    Synthetic

    • Provides various mainstream models via OpenAI-compatible API.
    • Supported models: MiniMax M2.5, Qwen 3.5, Kimi K2.5, GLM 4.7, DeepSeek V3.2 / V3 / R1, Llama 3.3 and others.

    Cerebras

    • Some models have free quotas, refreshing over time.
    • Supported models:
      • GLM 4.7
      • GPT-OSS-120B
      • Qwen 3 235B Instruct
      • ...

    Nvidia

    • Completely free, but with rate limits.
    • Supports almost all open-source weight models.

    Volcano Engine

    • Each model has a certain free quota, refreshing over time.
    • Supported models: Doubao, Kimi, DeepSeek and other mainstream models.

    Model Scope

    • Each model has a certain free quota, refreshing over time.
    • Supported models: GLM, Kimi, Qwen, DeepSeek and other mainstream models.

    ZhiPu AI / Z.AI

    • Some models are completely free.
    • Supported models: GLM Flash series models.

    SiliconFlow

    • Some models are completely free.
    • Supported models: Mostly open-source weight models under 32B.

    StreamLake

    • Completely free, but with rate limits.
    • Supported models:
      • KAT-Coder-Pro V2.5
      • KAT-Coder-Air V2.5

    LongCat

    • Has a certain free quota, refreshing over time.
    • Supported models:
      • LongCat-Flash-Chat
      • LongCat-Flash-Thinking
      • LongCat-Flash-Thinking-2601
      • LongCat-Flash-Lite

    OpenRouter

    • Some models have certain free quotas, refreshing over time.
    • Supported models: Frequently changing, models with 'free' in the name.

    OpenCode Zen

    • Some models are completely free.
    • Supported models: Frequently changing, models with 'free' in the name.

    Ollama Cloud

    • Each model has a certain free quota, refreshing over time.
    • Supports almost all open-source weight models.

    Model Support Table

    The models listed below support One-Click Add Models, and have built-in recommended parameters to help you get the best performance.

    Tip

    Even if a model is not listed, you can still use it via Add Model Manually and tune the parameters yourself.

    VendorSeriesSupported Models
    OpenAIGPT-5 SeriesGPT-5, GPT-5.1, GPT-5.2, GPT-5.4, GPT-5.5, GPT-5.6 Sol, GPT-5.6 Terra, GPT-5.6 Luna, GPT-5.4 pro, GPT-5.4 Mini, GPT-5.4 Nano, GPT-5.2 pro, GPT-5 mini, GPT-5 nano, GPT-5 pro, GPT-5-Codex, GPT-5.1-Codex, GPT-5.2-Codex, GPT-5.3-Codex, GPT-5.3-Codex-Spark, GPT-5.1-Codex-Max, GPT-5.1-Codex-mini, GPT-5.2 Chat, GPT-5.1 Chat, GPT-5 Chat
    GPT-4 SeriesGPT-4o, GPT-4o mini, GPT-4o Search Preview, GPT-4o mini Search Preview, GPT-4.1, GPT-4.1 mini, GPT-4.1 nano, GPT-4.5 Preview, GPT-4 Turbo, GPT-4 Turbo Preview, GPT-4
    GPT-3 SeriesGPT-3.5 Turbo, GPT-3.5 Turbo Instruct
    o Serieso1, o1 pro, o1 mini, o1 preview, o3, o3 mini, o3 pro, o4 mini
    oss Seriesgpt-oss-120b, gpt-oss-20b
    Deep Research Serieso3 Deep Research, o4 mini Deep Research
    Other Modelsbabbage-002, davinci-002, Codex mini, Computer Use Preview
    GoogleGemini 3.7 Seriesgemini-3.7-flash
    Gemini 3.6 Seriesgemini-3.6-flash
    Gemini 3.5 Seriesgemini-3.5-flash, gemini-3.5-flash-lite
    Gemini 3.1 Seriesgemini-3.1-pro-preview, gemini-3.1-flash-lite-preview
    Gemini 3 Seriesgemini-3-pro-preview, gemini-3-flash-preview
    Gemini 2.5 Seriesgemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite
    Gemini 2.0 Seriesgemini-2.0-flash, gemini-2.0-flash-lite
    Gemma 4 SeriesGemma 4 31B, Gemma 4 26B A4B, Gemma 4 E4B, Gemma 4 E2B
    AnthropicClaude 5 SeriesClaude Fable 5, Claude Mythos 5, Claude Opus 5, Claude Sonnet 5
    Claude 4 SeriesClaude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6, Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.5, Claude Sonnet 4, Claude Opus 4.1, Claude Opus 4
    Claude 3 SeriesClaude Sonnet 3.7, Claude Sonnet 3.5, Claude Haiku 3.5, Claude Haiku 3, Claude Opus 3
    xAIGrok 4.20 SeriesGrok 4.20 0309 (Reasoning), Grok 4.20 0309 (Non-Reasoning)
    Grok 4 SeriesGrok 4.6, Grok 4.5, Grok 4.1 Fast (Reasoning), Grok 4.1 Fast (Non-Reasoning), Grok 4, Grok 4 Fast (Reasoning), Grok 4 Fast (Non-Reasoning), Grok 4.3
    Grok Build SeriesGrok Build 0.1
    Grok Code SeriesGrok Code Fast 1
    CursorComposer SeriesComposer 2.5
    Grok 3 SeriesGrok 3, Grok 3 Mini
    Grok 2 SeriesGrok 2 Vision
    MetaLlama 3 SeriesLlama 3.1 8B, Llama 3.1 70B, Llama 3.1 405B, Llama 3.3 70B
    NVIDIANemotron 3 SeriesNemotron 3 Super 120B A12B
    DeepSeekDeepSeek V4 SeriesDeepSeek V4 Flash Vision Exp, DeepSeek V4 Flash, DeepSeek V4 Pro
    Compatibility AliasesDeepSeek Chat, DeepSeek Reasoner
    DeepSeek V3 SeriesDeepSeek V3.2, DeepSeek V3.2 Exp, DeepSeek V3.2 Speciale, DeepSeek V3.1, DeepSeek V3.1 Terminus, DeepSeek V3, DeepSeek V3 (0324)
    DeepSeek R1 SeriesDeepSeek R1, DeepSeek R1 (0528)
    DeepSeek V2.5 SeriesDeepSeek V2.5
    DeepSeek V2 SeriesDeepSeek V2
    DeepSeek VL SeriesDeepSeek VL, DeepSeek VL2
    DeepSeek Coder SeriesDeepSeek Coder, DeepSeek Coder V2
    DeepSeek Math SeriesDeepSeek Math V2
    ByteDanceDoubao 2.1 SeriesDoubao Seed 2.1 Pro, Doubao Seed 2.1 Turbo
    Doubao 2.0 SeriesDoubao Seed 2.0 Pro, Doubao Seed 2.0 Lite, Doubao Seed 2.0 Mini, Doubao Seed 2.0 Code Preview
    Doubao 1.8 SeriesDoubao Seed 1.8, Doubao Seed Code Preview
    Doubao 1.6 SeriesDoubao Seed 1.6, Doubao Seed 1.6 Lite, Doubao Seed 1.6 Flash, Doubao Seed 1.6 Vision
    Doubao 1.5 SeriesDoubao 1.5 Pro 32k, Doubao 1.5 Pro 32k Character, Doubao 1.5 Lite 32k
    Other ModelsDoubao Lite 32k Character
    MiniMaxMiniMax M3 SeriesMiniMax-M3
    MiniMax M2 SeriesMiniMax-M2.7, MiniMax-M2.7-Highspeed, MiniMax-M2.5, MiniMax-M2.5-Highspeed, MiniMax-M2.1, MiniMax-M2.1-Highspeed, MiniMax-M2
    LongCatLongCat 2 SeriesLongCat 2.0
    LongCat Flash SeriesLongCat Flash Chat, LongCat Flash Thinking, LongCat Flash Thinking 2601, LongCat Flash Lite
    StreamLakeKAT-Coder SeriesKAT-Coder-Pro V2.5, KAT-Coder-Air V2.5, KAT-Coder-Pro V2, KAT-Coder-Pro V1, KAT-Coder-Exp-72B-1010, KAT-Coder-Air V1
    Moonshot AIKimi K3 SeriesKimi K3
    Kimi K2.7 SeriesKimi K2.7 Code, Kimi K2.7 Code Highspeed
    Kimi K2.6 SeriesKimi K2.6
    Kimi K2.5 SeriesKimi K2.5
    Kimi K2 SeriesKimi K2 Thinking, Kimi K2 Thinking Turbo, Kimi K2 0905 Preview, Kimi K2 0711 Preview, Kimi K2 Turbo Preview, Kimi For Coding
    QwenQwen 3.8 SeriesQwen3.8-Max
    Qwen 3.7 SeriesQwen3.7-Max, Qwen3.7-Plus
    Qwen 3.6 SeriesQwen3.6-Max-Preview, Qwen3.6-Plus, Qwen3.6-Flash, Qwen3.6-35B-A3B
    Qwen 3.5 SeriesQwen3.5-Plus, Qwen3.5-Flash, Qwen3.5-397B-A17B, Qwen3.5-122B-A10B, Qwen3.5-27B, Qwen3.5-35B-A3B, Qwen3.5-9B, Qwen3.5-4B, Qwen3.5-2B, Qwen3.5-0.8B
    Qwen 3 SeriesQwen3-Max, Qwen3-Max-Thinking, Qwen3-Max Preview, Qwen3-Coder-Next, Qwen3-Coder-Plus, Qwen3-Coder-Flash, Qwen3-VL-Plus, Qwen3-VL-Flash, Qwen3-VL-32B-Instruct, Qwen3 0.6B, Qwen3 1.7B, Qwen3 4B, Qwen3 8B, Qwen3 14B, Qwen3 32B, Qwen3 30B A3B, Qwen3 235B A22B, Qwen3 30B A3B Thinking 2507, Qwen3 30B A3B Instruct 2507, Qwen3 235B A22B Thinking 2507, Qwen3 235B A22B Instruct 2507, Qwen3 Coder 480B A35B Instruct, Qwen3 Coder 30B A3B Instruct, Qwen3-Omni-Flash, Qwen3-Omni-Flash-Realtime, Qwen3-Omni 30B A3B Captioner, Qwen-Omni-Turbo, Qwen-Omni-Turbo-Realtime, Qwen3-VL 235B A22B Thinking, Qwen3-VL 235B A22B Instruct, Qwen3-VL 32B Thinking, Qwen3-VL 30B A3B Thinking, Qwen3-VL 30B A3B Instruct, Qwen3-VL 8B Thinking, Qwen3-VL 8B Instruct, Qwen3 Next 80B A3B Thinking, Qwen3 Next 80B A3B Instruct, Qwen-Plus, Qwen-Flash, Qwen-Turbo, Qwen-Max, Qwen-Long, Qwen-Doc-Turbo, Qwen Deep Research
    Qwen 2.5 SeriesQwen2.5 0.5B Instruct, Qwen2.5 1.5B Instruct, Qwen2.5 3B Instruct, Qwen2.5 7B Instruct, Qwen2.5 14B Instruct, Qwen2.5 32B Instruct, Qwen2.5 72B Instruct, Qwen2.5 7B Instruct (1M), Qwen2.5 14B Instruct (1M), Qwen2.5 Coder 0.5B Instruct, Qwen2.5 Coder 1.5B Instruct, Qwen2.5 Coder 3B Instruct, Qwen2.5 Coder 7B Instruct, Qwen2.5 Coder 14B Instruct, Qwen2.5 Coder 32B Instruct, Qwen2.5 Math 1.5B Instruct, Qwen2.5 Math 7B Instruct, Qwen2.5 Math 72B Instruct, Qwen2.5-VL 3B Instruct, Qwen2.5-VL 7B Instruct, Qwen2.5-VL 32B Instruct, Qwen2.5-Omni-7B, Qwen2 7B Instruct, Qwen2 72B Instruct, Qwen2 57B A14B Instruct, Qwen2-VL 72B Instruct
    Qwen 1.5 SeriesQwen1.5 7B Chat, Qwen1.5 14B Chat, Qwen1.5 32B Chat, Qwen1.5 72B Chat, Qwen1.5 110B Chat
    QwQ/QvQ SeriesQwQ-Plus, QwQ 32B, QwQ 32B Preview, QVQ-Max, QVQ-Plus, QVQ 72B Preview
    Qwen Coder SeriesQwen-Coder-Plus, Qwen-Coder-Turbo
    Other ModelsQwen-Math-Plus, Qwen-Math-Turbo, Qwen-VL-OCR, Qwen-VL-Max, Qwen-VL-Plus, Qwen-Plus Character (JA)
    Xiaomi MIMOMiMo V2.5 SeriesMiMo V2.5 Pro UltraSpeed, MiMo V2.5 Pro, MiMo V2.5
    MiMo V2 SeriesMiMo V2 Pro, MiMo V2 Omni, MiMo V2 Flash
    ZhiPu AIGLM 5 SeriesGLM-5.3, GLM-5.2, GLM-5.1, GLM-5, GLM-5V-Turbo, GLM-5-Turbo
    GLM 4 SeriesGLM-4.7, GLM-4.7-Flash, GLM-4.7-FlashX, GLM-4.6, GLM-4.5, GLM-4.5-X, GLM-4.5-Air, GLM-4.5-AirX, GLM-4-Plus, GLM-4-Air-250414, GLM-4-Long, GLM-4-AirX, GLM-4-FlashX-250414, GLM-4.5-Flash, GLM-4-Flash-250414, GLM-4.6V, GLM-4.5V, GLM-4.1V-Thinking-FlashX, GLM-4.6V-Flash, GLM-4.1V-Thinking-Flash
    CodeGeeX SeriesCodeGeeX-4
    Tencent HYHY 3.0 SeriesHY 3
    HY 2.0 SeriesHY 2.0 Think, HY 2.0 Instruct
    HY 1.5 SeriesHY Vision 1.5 Instruct
    StepFunStep 3 SeriesStep 3, Step 3.5 Flash
    Step 2 SeriesStep 2 16k, Step 2 16k Exp, Step 2 Mini
    Step 1 SeriesStep 1 8k, Step 1 32k, Step 1 128k, Step 1 256k, Step 1o Turbo Vision, Step 1o Vision 32k, Step 1v 8k, Step 1v 32k, Step R1 V Mini
    OpenCode ZenZenBig Pickle
    ZedZeta SeriesZeta, Zeta 2, Zeta 2.1
    InceptionMercury SeriesMercury 2, Mercury Edit 2
    Mistral AIMistral SeriesMistral Medium 3.5, Mistral Small
    Codestral SeriesCodestral

    Application Migration Support Table

    The applications listed below support One-Click Migration.

    ApplicationNotes
    Claude CodeMigration is supported only when using a custom Base URL and API Key.
    CodexSupports Base URL, API Key, and OAuth.
    Gemini CLIMigration is supported only when using the following auth methods: GEMINI_API_KEY, GOOGLE_API_KEY, GOOGLE_APPLICATION_CREDENTIALS.

    Contributing

    • Feel free to open an issue to report bugs, request features, or ask for support of new providers/models.
    • Pull requests are welcome. See the roadmap.

    Development

    Prerequisite: Node.js 24.12 or later.

    • Build: npm run compile
    • Watch: npm run watch
    • Unit checks: npm run test:unit
    • Full non-E2E checks: npm run check
    • E2E tests: npm run test:e2e
    • Check for chat-lib updates: npm run extract:chat-lib -- --source /path/to/vscode --check
    • Update the chat-lib source: npm run extract:chat-lib -- --source /path/to/vscode
    • Verify the chat-lib port: npm run verify:chat-lib
    • New release: npm run release
    • GitHub Actions release: Actions → Release (VS Code Extension) → Run workflow

    License

    MIT @ SmallMain

    Acknowledgements