Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>Universal Chat ProviderNew to Visual Studio Code? Get it now.
Universal Chat Provider

Universal Chat Provider

maxdewald

|
786 installs
| (2) | Free
Claude, Codex, Antigravity & more in GitHub Copilot Chat. No API key, just OAuth.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info
Universal Chat Provider logo

Universal Chat Provider

The VS Code extension that brings your Claude, ChatGPT / Codex, Antigravity, and more subscriptions into GitHub Copilot Chat
No API key — just OAuth.
…and use them to write your Git commit messages, too.

VS Code Marketplace version Marketplace installs VS Code 1.131+ MIT License

Claude Codex Antigravity Muse Kimi Grok Devin OpenAI Compatible

Features

  • 🚀 Ready in minutes — install, sign in, and start chatting.
  • 🔀 Native model picker — choose your models directly in Copilot Chat.
  • 🧠 Reasoning built in — pick the thinking effort and follow reasoning live.
  • 📊 Quota at a glance — see remaining usage and redeem available Codex resets with confirmation.
  • ✨ More than chat — generate commit messages, titles, and summaries.
  • 🎙️ Dictation — speak into the chat input via Codex or Gemini (unofficial endpoints).
  • 👥 Account load balancing — add multiple accounts for the same provider; CLIProxyAPI distributes requests round-robin across available accounts and skips those in cooldown.

[!WARNING] Use entirely at your own risk and discretion. This extension routes chat through your personal AI subscription accounts over OAuth. Accessing subscriptions outside their official apps may violate provider terms and could result in rate limiting or account suspension.

Demo

Universal Chat Provider showcase: connect subscription accounts, choose chat models and reasoning effort, inspect quota, configure a utility model, and generate a Git commit message

Quick start

Requires VS Code 1.131+ and the GitHub Copilot Chat extension.

  1. Install — get Universal Chat Provider from the VS Code Marketplace. Prefer to build it yourself? See Development.
  2. Add an account — accept the Add Account prompt (or run Universal Chat Provider: Add Account), pick a provider, and complete OAuth in your browser. Models refresh automatically.
  3. Chat — open Copilot Chat and select a model under Universal Chat Provider.

Manage everything from the status bar item or the Universal Chat Provider: Manage Provider command — inspect quota, redeem OpenAI-provided Codex reset credits, list/remove accounts, restart, update, or reset the managed server.

Commit messages, titles, and summaries

Let your models handle Copilot's light background tasks and Explore searches. Run Universal Chat Provider: Set Utility Model (or use the status bar menu), pick a model (and thinking effort), done. A small, fast, inexpensive model is usually the best fit. Clear it to undo.

How it works

The command points Copilot's chat.utilityModel, chat.utilitySmallModel, and chat.exploreAgent.defaultModel settings at your selected model, so commit messages, chat titles, summaries, and Explore searches run through your accounts. It also sets chat.byokUtilityModelDefault to mainAgent, so remaining utility flows fall back to your selected chat model instead of Copilot's. When the model supports thinking levels, the command also asks for the utility Thinking Effort; commit messages use chat.utilitySmallModel plus that effort. No Copilot subscription required.

How it works

The extension runs CLIProxyAPI locally and registers its models with VS Code. Your subscriptions then appear directly in the Copilot Chat model picker.

Your subscriptions run through a local CLIProxyAPI proxy over OAuth and appear in VS Code Copilot Chat as models and as the utility model.

Reference

Settings
Key Description Type Default
▿ Connection
universalChatProvider.server.mode How to run CLIProxyAPI. string "managed"
universalChatProvider.baseUrl URL of your CLIProxyAPI server. External mode only. string "http://127.0.0.1:8317"
universalChatProvider.server.managementKey Management key of your CLIProxyAPI server (the plain key, not its hash). External mode only. string ""
▿ Managed Server
universalChatProvider.server.updatePolicy How the managed server is updated. string "automatic"
universalChatProvider.server.version CLIProxyAPI version for Manual updates: latest or an exact version (8.0.3 or newer). string "latest"
universalChatProvider.server.extraConfig Extra YAML config for the managed server, such as proxy, retries, and account selection. Changing connection, credential, or provider settings can break the extension. string "# requests:\n# proxy-url: http://127.0.0.1:7890\n# routing:\n# strategy: fill-first\n# retry:\n# request-retry: 3"
▿ Status Bar
universalChatProvider.showQuotaWarnings Warn in the status bar when the current model is low on quota. boolean true
universalChatProvider.quotaWarningThreshold Warn when remaining quota drops below this percentage. number 10
▿ Models
universalChatProvider.models.showLatestOnly Hide older versions of a model when a newer one is available, e.g. Claude Opus 4.8 once Opus 5.5 is out. boolean false
▿ Dictation
universalChatProvider.dictation.engine Speech-to-text via unofficial endpoints; may break. Empty is off. Codex models (gpt-transcribe, gpt-live-transcribe) are the most accurate and fastest; Gemini models such as gemini-3-flash work too but are slower. $(mic) Select Engine… string ""
universalChatProvider.dictation.microphone Input device used for dictation. Leave empty for the system default. $(record) Select Microphone… string ""
universalChatProvider.dictation.language Language you dictate in, as an ISO code such as en or de. Empty takes your system language and saves it on first use; auto sends no hint and lets the engine guess. $(globe) Select Language… string ""
▿ Provider Specific
universalChatProvider.codex.webSearch Let Codex search and browse the web. boolean false
universalChatProvider.claude.webSearch Let Claude search the web. boolean false
▿ Advanced
universalChatProvider.debugLevel How much diagnostic data to collect. string "off"
Commands
Command Title
universalChatProvider.manage Universal Chat Provider: Manage Provider
universalChatProvider.login Universal Chat Provider: Add Account (Login)
universalChatProvider.manageAccounts Universal Chat Provider: Manage Accounts
universalChatProvider.showQuota Universal Chat Provider: Show Quota & Resets
universalChatProvider.restartServer Universal Chat Provider: Restart Managed Server
universalChatProvider.updateBinary Universal Chat Provider: Update Proxy Binary
universalChatProvider.resetServer Universal Chat Provider: Reset Managed Server
universalChatProvider.configure Universal Chat Provider: Configure Connection
universalChatProvider.refresh Universal Chat Provider: Refresh Models
universalChatProvider.setUtilityModel Universal Chat Provider: Set Utility Model (commit messages, chat titles, summaries)
universalChatProvider.clearCredentials Universal Chat Provider: Clear Stored API Key
universalChatProvider.showLogs Universal Chat Provider: Show Logs
universalChatProvider.showServerLogs Universal Chat Provider: Show Server Output
universalChatProvider.openSettings Universal Chat Provider: Open Settings
universalChatProvider.dictate Universal Chat Provider: Dictate to Chat (Start/Stop)
universalChatProvider.selectMicrophone Universal Chat Provider: Select Dictation Microphone
universalChatProvider.selectDictationEngine Universal Chat Provider: Select Dictation Engine
universalChatProvider.selectDictationLanguage Universal Chat Provider: Select Dictation Language

Advanced

Extra managed configuration

Set universalChatProvider.server.extraConfig to a CLIProxyAPI v8 YAML mapping in the multiline settings field. For example:

routing:
  strategy: fill-first
  retry:
    request-retry: 5

Mappings merge recursively; other values replace generated values, and invalid YAML is rejected before a requested restart stops the server.

Managed-server updates

Updates download automatically by default and restart the managed server as soon as no requests are active. Change universalChatProvider.server.updatePolicy to suggestUpdates or manual if you'd rather review or pin them yourself. Manual mode uses the configured version, which defaults to latest; enter an exact version (8.0.3 or newer) to pin it. An installed release older than 8.0.3 is replaced with a supported one regardless of the update policy.

Bring your own CLIProxyAPI server

Prefer to run CLIProxyAPI yourself, such as on a remote or shared machine?

  1. Set universalChatProvider.server.mode to external.
  2. Start CLIProxyAPI and complete the provider login there.
  3. Use the Import API Key notification action when a local config is found, or run Configure Connection to enter the URL and key manually.

The server must run CLIProxyAPI 8.0.3 or newer. Adding or removing an OpenAI-compatible endpoint through the extension saves the server's config.yaml in the v8 layout; CLIProxyAPI keeps unrecognized sections as comments.

The API key is stored in VS Code SecretStorage. In external mode, the extension never starts or stops the server. To use Add Account and Manage Accounts, enter your server's existing management key, not its bcrypt hash, in universalChatProvider.server.managementKey. Managed mode generates and stores its own key automatically and ignores this setting.

Development

pnpm install
pnpm vscode:dts
pnpm check          # lint + typecheck + tests + build
pnpm ext:package    # produce an installable .vsix

Press F5 from VS Code Insiders to launch the Extension Development Host with the proposed APIs enabled.

License

MIT · Not affiliated with GitHub, OpenAI, Anthropic, or Google.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft