AI Manager
English | 简体中文 | 日本語
AI Manager is a VS Code desktop extension for managing OpenAI-compatible channels, dynamic model catalogs, and native VS Code Chat model bindings from one place.
Why AI Manager
In VS Code, AI features such as code completions and Git commit-message generation typically default to GitHub Copilot. Using another AI model often means manually changing settings in several places. AI Manager was built to bring model connections, management, and switching into one place, so you can choose the right model more freely for each workflow.
Requires VS Code 1.121.0 or later.
Highlights
- Channel connectivity is handled by the Vercel AI SDK, with provider definitions pulled dynamically from models.dev. Any OpenAI-compatible channel works.
- Refresh model catalogs while keeping the last successful cache available.
- Rename discovered models and override their metadata (tool calling, image input, prompt caching, token limits).
- Register enabled models in the native VS Code Chat model picker, with a reasoning-effort selector and reasoning-content forwarding (requires the corresponding proposed API).
- Bind separate models to Chat, Inline Chat, Plan, Plan implementation, Utility, and Utility Small settings.
- AI Gateway: expose your configured channel models to software outside VS Code through a local OpenAI-compatible HTTP endpoint, addressed by aliases you define (see the AI Gateway section below).
- Share all channels, model catalogs, refresh state, Chat bindings, and gateway configuration (ports, tokens, authentication switches, and alias visibility) across local VS Code Profiles, with encrypted cross-device synchronization through
Settings Sync. Whether each gateway instance runs is a per-device local setting and is not synchronized.
Screenshots
Channel and model management

Chat model bindings

Quick Start
- Open AI Manager from the Activity Bar.
- Add a channel: pick a provider from the models.dev list (the Base URL is filled in for you) or choose "custom" and enter the Base URL yourself, then supply an optional API key.
- Refresh the channel to load its model catalog.
- Review the discovered models, adjust aliases or metadata when needed, and enable the models you want to use.
- Open the Chat settings page in AI Manager and assign a channel and model to each setting you want to manage.
Newly discovered models are disabled by default.
Channel Connectivity
Channels are routed through the Vercel AI SDK based on each provider's npmPackage from models.dev (OpenAI-compatible, OpenAI Responses, Anthropic, Google, and others). Model catalog refresh and chat requests share the same protocol-specific authentication (OpenAI-style Authorization: Bearer, Google x-goog-api-key, Anthropic x-api-key). When adding a channel you can search the models.dev provider list and have the Base URL filled in automatically; if your relay is not listed, pick "custom" and enter the Base URL by hand.
Tool calling, image input, prompt caching, and reasoning-effort tiers are taken from the channel's own catalog response first, fall back to models.dev metadata when the catalog omits them, and default conservatively when neither declares anything. You can override token limits and each capability in the model editor; overrides survive later catalog refreshes and can be reverted at any time.
Cross-device Sync
All Profiles of the same VS Code edition share channels, the complete model catalog, refresh results, Chat bindings, and the encrypted vault through one local state directory. A Chat setting changed manually in one Profile is propagated to the others. Stable, Insiders, and compatible VS Code editions use separate directories.
When cross-device sync is enabled, the complete shared state is compressed, integrity-checked, and sent through VS Code Settings Sync. API keys travel inside an AES-256-GCM encrypted vault, and no master password is required.
Note the security boundary of that vault: its key is randomly generated and is stored and synchronized next to the ciphertext, so the vault only provides format encapsulation and integrity checking — it does not add confidentiality beyond your VS Code account. Anyone who can read the local shared directory or your Settings Sync data can decrypt the API keys; the real protection comes from the VS Code account and the encryption of Settings Sync itself. If you do not want credentials to leave the machine, do not enable Settings Sync.
On another computer, sign in to the same VS Code account and enable Settings Sync; credentials arrive automatically with no extra unlock step. To revoke them, run "Reset sync credentials": it deletes the synchronized ciphertext and every API key, propagates the removal to other devices once they come online, and keeps the local non-secret configuration.
AI Gateway
AI Manager can expose one or more local OpenAI-compatible HTTP endpoints (http://127.0.0.1:<port>/v1) that make your configured channel models available to other software - Cline, Continue, Obsidian plugins, or anything else that speaks the OpenAI-compatible API - addressed by aliases you define. Each gateway instance listens on its own port and has its own token, authentication switch, and alias visibility. This is entirely separate from the Copilot side: creating or deleting aliases does not affect the Chat model picker, and turning the gateway off does not affect Copilot at all.
- Start the service and create gateway instances on the AI Gateway tab: each instance has its own name, port, Bearer token, and authentication switch.
- Whether each instance runs is a per-device local setting: a new instance is enabled by default only on the device that created it, and every other device starts with all instances off.
- Create model mappings (alias to channel + model, with optional reasoning effort, temperature, and output-limit defaults). Each alias can be scoped to specific instances or visible to all of them.
- Each instance can also allow or forbid direct addressing (
channel name/model ID) in addition to aliases; when disabled, only the aliases visible to that instance are reachable on its port.
- Point the client's Base URL at a gateway instance and set its Model field to an alias; the client never needs to know the real model name.
- Bearer token authentication is required by default on each instance. The token can be copied or regenerated from the panel, and authentication can be turned off per instance (only sensible if you fully trust every program on the machine).
- The service is off by default and must be started explicitly. It stops when VS Code closes.
- When several VS Code windows or Profiles run on the same machine, only one of them actually listens on the ports; configuration changes made in any window reach the one holding it.
- If an instance's port is already taken by another program, that instance reports the failure in the panel while the other instances keep running - the port is never silently shifted.
- Repointing an alias at a less capable model (for example from image-capable to text-only) raises a warning, because some clients keep those capabilities in their own settings and will not notice the change.
The gateway only forwards requests - it performs no rate limiting, failover, or access auditing. Logs record the alias, channel, model, duration, status code, and error category, never prompts, response bodies, API keys, or the gateway token.
Notes and Limitations
- The main Chat default model applies to new conversations and does not replace a model manually selected in an existing conversation.
- The Plan implementation model uses an experimental VS Code setting and may be unavailable because of the VS Code version or organization policy.
- Disabled or unavailable models are not exposed to the native model picker.
- The AI Gateway is only available while VS Code is running; it is not a background service.
- The extension reads and writes a local shared state directory, so it is declared as a UI extension. In Remote-SSH, WSL, and Codespaces windows it runs on the local machine rather than on the remote host.
Privacy
Request logs contain only the channel, alias, model ID, duration, HTTP status, and error category. AI Manager does not log prompts, response bodies, API keys, the gateway token, or vault keys.
When a model catalog is refreshed, AI Manager also requests https://models.dev/api.json for provider and model metadata. That request carries no API key and no user data; the result is cached for 12 hours, and a stale cache is served while a refresh runs in the background.
The AI Gateway binds to 127.0.0.1 only and never listens on a public address. No endpoint ever returns a channel's real API key or the gateway token in clear text.
Development
npm install
npm run check
npm run package:vsix
Use npm test for unit tests and npm run test:integration for the Extension Host integration test. Press F5 in VS Code to launch an Extension Development Host.