README.md
June 25, 2026 · View on GitHub
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‑login the subscriptions you already pay for.
…and use them to write your Git commit messages, too.
Features · Quick start · Logins · Configuration
Powered by CLIProxyAPI
Features
- Native model picker — your subscription models appear under Universal Chat Provider in Copilot Chat, with context, output, tool, image, and reasoning metadata.
- Reasoning support — models with multiple reasoning levels use VS Code's built-in selector, and emitted reasoning summaries stream into a collapsible thinking block.
- Utility model — point Copilot's commit messages, chat titles, and summaries at your subscription models with one command. No Copilot subscription required.
- Zero setup (managed mode) — the extension downloads, verifies, and supervises the proxy for you; one shared server across all windows.
Supported logins
Sign in with any subscription you already have — no API key:
- 🟣 Claude — Claude Code / Pro / Max
- 🟢 Codex — ChatGPT Plus / Pro
- ⚪ Grok — Grok Build
- 🟡 Kimi — Moonshot
- ⚫ Antigravity
Warning
Use entirely at your own risk and discretion. This extension routes chat through your personal AI subscription accounts (Claude, ChatGPT / Codex, Antigravity, …) over OAuth. Accessing these subscriptions outside their official apps may violate the providers' Terms of Service and could result in rate limiting or account suspension. You alone are responsible for how you use it.
Quick start
Requires VS Code 1.124+ and the GitHub Copilot Chat extension.
- Install — get Universal Chat Provider from the VS Code Marketplace. Prefer to build it yourself? See Development.
- 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. - 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 — list/remove accounts, restart, update, or reset the managed server.
External mode — bring your own CLIProxyAPI server
Prefer to run CLIProxyAPI yourself (e.g. a remote or shared instance)?
- Set
universalChatProvider.server.modetoexternal. - Start CLIProxyAPI and complete the provider login there.
- Use the Import API Key notification action (when a local config is found) or Configure Connection to set the URL and key manually.
The API key is stored in VS Code SecretStorage. In external mode the extension never starts or stops the server. If your server exposes a plaintext remote-management.secret-key, the Add Account and Manage Accounts commands work against it too.
Utility model
Copilot generates commit messages, chat titles, and summaries with its own background models. Run Universal Chat Provider: Set Utility Model (or use the status bar menu) to point Copilot's chat.utilityModel and chat.utilitySmallModel at one of your subscription models instead, so those background flows run through your accounts. 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. Clear the selection to undo.
How it works
GitHub Copilot Chat normally only talks to Copilot's own models. This extension bridges that gap: it runs a local CLIProxyAPI server, logs you into your AI subscriptions via OAuth, and registers their models as a native chat provider in VS Code. Pick them straight from the Copilot model dropdown.
Your subscriptions Local proxy VS Code
┌────────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ Claude │ │ │ │ Copilot Chat │
│ ChatGPT / Codex │──┐ │ │ ┌─▶│ model picker │
│ Antigravity │ ├─▶│ CLIProxyAPI │──┤ ├──────────────────┤
│ Grok · Kimi · … │──┘ │ (OAuth) │ └─▶│ Utility model │
└────────────────────┘ └──────────────┘ └──────────────────┘
Configuration
All settings
| Key | Description | Type | Default |
|---|---|---|---|
| ▿ Connection | |||
universalChatProvider.server.mode | How CLIProxyAPI is provided. | string | "managed" |
universalChatProvider.baseUrl | CLIProxyAPI server URL. Used only in external mode. | string | "http://127.0.0.1:8317" |
universalChatProvider.configPath | Optional CLIProxyAPI config.yaml path for credential and model metadata discovery. | string | "" |
universalChatProvider.autoDetectConfig | Search common CLIProxyAPI config locations when no config path is set. | boolean | true |
| ▿ Managed Server | |||
universalChatProvider.server.version | CLIProxyAPI release for managed mode. Use a pinned version for reproducible installs, or latest to track new releases. | string | "7.2.5" |
universalChatProvider.server.suggestUpdates | Offer same-major updates for pinned managed server versions. | boolean | true |
| ▿ Status Bar | |||
universalChatProvider.showQuotaWarnings | Warn in the status bar when the model in use is low on quota. | boolean | true |
universalChatProvider.quotaWarningThreshold | Remaining-quota percent below which the status bar warning appears. | number | 10 |
| ▿ Advanced | |||
universalChatProvider.debug | Show prompt-cache hit rate and write per-request diagnostics to extension storage. | boolean | false |
All 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 |
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.importConfig | Universal Chat Provider: Import API Key from Config |
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 |
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.