# Unify Chat Provider registers other model APIs inside Copilot Chat, then takes over code completion

> smallmain's extension adds chat back ends to VS Code through the Language Model API, so Copilot Chat can reach Anthropic, Gemini, Ollama and dozens more providers, and it ships its own FIM completion engine that replaces the built-in one.

**smallmain/vscode-unify-chat-provider** — Integrate multiple LLM API providers into VS Code's GitHub Copilot Chat using the Language Model API. One-click use of your Claude Code, Gemini CLI, Antigravity, Github Copilot, OpenAI Codex (ChatGPT Plus/Pro), xAI Grok (SuperGrok / X Premium+) account quotas.

- Repository: https://github.com/smallmain/vscode-unify-chat-provider
- Stars: 719 · Forks: 79
- Language: TypeScript
- License: MIT
- Published: 2026-08-27 · Updated: 2026-08-27 · Language: en
- Canonical page: https://hysenlabs.com/projects/smallmain-vscode-unify-chat-provider

## The chat provider contribution is what routes Copilot Chat elsewhere

Unify Chat Provider does not replace Copilot Chat, it registers inside it. The manifest declares a `contributes.languageModelChatProviders` entry, which is the VS Code mechanism for adding a chat back end, so configured models appear in the chat panel you already use. The manifest version reads 8.13.0 and matches the newest published tag.

Two manifest details shape daily behaviour. `activationEvents` holds a single entry, `onStartupFinished`, so the extension registers on every editor start whether or not a chat is opened. And it runs on proposed APIs, five of them named in the manifest: `languageModelSystem`, `chatProvider`, `inlineCompletionsAdditions`, `contribSourceControlInputBoxMenu` and `languageModelThinkingPart`. Those five names line up one to one with the features warned about further down the README.

The build layout is ordinary for a TypeScript extension: two compiler configurations, `tsconfig.json` and `tsconfig.chat-lib.json`, a `vitest.config.ts`, `test/`, `scripts/`, a `l10n/` directory with matching `package.nls.json` and `package.nls.zh-cn.json` bundles, and a compiled entry point at `./out/extension.js`. Alongside `README.md` there is a `README_zh-CN.md`, and the root holds `AGENTS.md`, `ROADMAP.md`, `CHANGELOG.md` and `SPONSORSHIPPLAN.md`.

## Switching on its completion switches off VS Code's own

Code completion is enabled by default in this extension, and it does nothing until at least one valid completion algorithm has been added. That is worth knowing before the editor starts suggesting lines you did not ask for.

Once it does take effect, it disables VS Code's built-in completion on its own. The reversal is one setting, reached at `Code Completion Settings -> Completion Strategy Settings -> Disable VS Code Built-in Completion`. Coexistence is allowed only for people who need it, because when several extensions offer completion VS Code returns results from whichever responds fastest, and the advice is to run completion in one extension only.

Algorithms are picked by ID. `simple` is the plainest FIM implementation: it sends the current document's prefix and suffix and works with any model. `copilot-replica` is described as a complete replica of VS Code Copilot's core FIM and NES implementation, also working with any model. A third row is named Zed, and that is where the table in the README ends. FIM, NES and next edit prediction are the techniques named as covered, with full context integration, and both the models and the algorithms are described as customizable.

## Five bullets describe exactly what the proposed APIs are worth

Enabling proposed APIs is a separate decision, and the README puts its price in plain terms. After installation VS Code may prompt you to enable experimental extension APIs, and accepting requires administrator privileges. The extension still works without them, with a stated list of losses.

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.

Those five bullets map onto the five proposed APIs named in the manifest. `chatProvider` and `languageModelSystem` back the chat routing, `inlineCompletionsAdditions` is what the completion engine runs on, `contribSourceControlInputBoxMenu` is what puts the button in VS Code's own source control input box, and `languageModelThinkingPart` is what lets a thinking block appear in a response. The pattern is consistent: the parts of this extension that go beyond convenience are the parts that need an API still under proposal, so on a locked down or managed editor the feature set shrinks in a specific order rather than all at once.

## Quota, not convenience, is the resource this extension spends

The sharpest operational warning in the README has nothing to do with model choice. VS Code currently uses utility models for some background tasks by default, so on a free Copilot account those tasks can consume Copilot quota without the user asking for anything. The remedy is manual: redirect those settings at other models in `settings.json` yourself, or use the quick settings interface the extension ships, named Quick Set VS Code Default Model.

The other half is the line that draws attention to the extension at all. The description advertises one-click use of Claude Code, Gemini CLI, Antigravity, GitHub Copilot, OpenAI Codex on ChatGPT Plus or Pro, xAI Grok on SuperGrok or X Premium+, and Zed account quotas. Those are subscription accounts, not API keys, and the one-click flow authenticates either with an API key or by logging in through the browser, so traffic through such a provider counts against the account you signed in with. Anyone enabling this on a work machine should read the terms of each upstream service first, because the extension changes which client sends the requests, not which account pays for them.

One more detail for anyone sharing setups: the test credentials template `.env.example` carries a warning not to commit `.env` to version control.

## Five wire formats behind one configuration screen

The compatibility claim is a list of API shapes: OpenAI Chat Completions, OpenAI Responses, Anthropic Messages, Ollama Chat and Gemini. A manual configuration path exists for anything absent from the well known provider list, and the feature list puts the adaptation count at 45 or more mainstream providers, with built-in recommended parameters for 200 or more mainstream models.

The one-click flow starts at `Unify Chat Provider: Add Provider From Well-Known Provider List`. You pick a provider, answer the authentication prompts, and land on an import screen where the configuration about to be added can be reviewed and edited before you press `Save`. Every other command shares one prefix, so typing `Unify Chat Provider:` or the shorter `ucp:` into the Command Palette brings up the whole surface, reached with `Ctrl+Shift+P` on Windows and Linux or `Cmd+Shift+P` on Mac.

Configuration is not limited to one shape per model. Unlimited provider and model configurations are allowed, and several variants of the same provider and model can coexist, which is the escape hatch for anyone putting the same model behind two endpoints. Import and export work through Base64, JSON, a URL or a URI. Base64 is an encoding and not a lock, so an exported configuration pasted into a chat window still contains whatever credentials were saved in it.

## The sponsor table still reads Placeholder text

Two leftovers from the template are visible in the README and say something about how finished the documentation is. At the top, the block of links to a documentation site and a playground is wrapped in an HTML comment, so the only language switch that renders is the one pointing at `README_zh-CN.md`. Lower down, the Sponsors section is a table with a single row whose link points at `#` and whose text is literally `Placeholder text.` The way to become a sponsor, given in a line under the table, is to email smallmain@outlook.com, and `SPONSORSHIPPLAN.md` sits in the repository root.

The rest of the README reads like a manual for the current layout: palette steps, the well known provider list command, the code completion settings command, and the degradation list for missing proposed APIs. The steps that walk through the interface lean on screenshots, which leaves the command names as the part a reader can follow from the text alone. That matters more than usual here, because with five proposed APIs and a settings path three levels deep, a paraphrased command name is the difference between a feature working and a feature staying greyed out.

## Two install paths, and a Node floor the installation section omits

Installation has two documented routes. The first is the ordinary one: search for Unify Chat Provider in the VS Code Extension Marketplace and install it. The second is to take the latest `.vsix` from GitHub Releases and install it through `Install from VSIX...`, or by dragging the file into the Extensions view. The stated requirement is VS Code 1.115.0 or later.

The manifest asks for more than that. Next to `vscode: ^1.115.0` it declares `node: >=24.12.0`, and it names `npm@10.8.2` as its package manager. The Node floor appears nowhere in the installation section, which is the kind of requirement that only surfaces when a build or a test run refuses to start.

The release cadence is quick and legible. Three tags landed on three consecutive days in September 2026: v8.11.0 on the 20th, v8.12.0 on the 21st, v8.13.0 on the 22nd. The version field in package.json reads 8.13.0, so the manifest and the newest tag agree, and the last push on record is 23 September 2026. Against that sit 721 stars, 78 forks and 16 open issues. None of it is a stability signal on its own, but it does mean the tag you install can be a day old.

## Conclusion

Choose Unify Chat Provider if the editor is your own machine, you already hold several provider accounts or keys, and you want Copilot Chat to route to them without switching clients. The trade-offs are explicit and worth reading before installing. Five proposed VS Code APIs sit under the good parts of the feature set, and enabling them can require administrator rights. Its completion turns off the built-in completion, and VS Code only ever shows the fastest responder when several extensions offer completion. VS Code's own background utility models can quietly spend Copilot quota unless you redirect them in settings.json yourself. Check three things first: that the Node version on the machine satisfies the manifest, that the upstream account terms permit this kind of use, and that any config you share as Base64 or as a URL is treated as a plaintext credential. Release tags are frequent and the manifest version matches the newest tag, and the root keeps a CHANGELOG.md where the changes are written down.

## FAQ

### What does vscode-unify-chat-provider add to VS Code Copilot Chat?

It registers chat providers through VS Code's Language Model API, so Copilot Chat can route requests to other back ends. The supported wire formats are OpenAI Chat Completions, OpenAI Responses, Anthropic Messages, Ollama Chat and Gemini, and the feature list claims adaptations for 45 or more mainstream providers.

### Which VS Code APIs does vscode-unify-chat-provider depend on?

Five proposed APIs declared in the manifest: languageModelSystem, chatProvider, inlineCompletionsAdditions, contribSourceControlInputBoxMenu and languageModelThinkingPart. Enabling them can require administrator privileges, and without them code completion, preset templates and the native commit message generation button are unavailable.

### Can vscode-unify-chat-provider run alongside VS Code built-in code completion?

Not by default. Its completion is enabled by default but inert until a valid completion algorithm is added, and once active it disables the built-in completion. Reversing it means turning on Disable VS Code Built-in Completion, which the project does not recommend, since VS Code shows results only from whichever extension responds fastest.

### How do you install vscode-unify-chat-provider, and what does it require?

From the VS Code Extension Marketplace, or by downloading the latest .vsix from GitHub Releases and using Install from VSIX... or dragging it into the Extensions view. VS Code 1.115.0 or later is required, and package.json additionally declares node >=24.12.0 with npm@10.8.2 as the package manager.

## Sources

- [Official README](https://github.com/smallmain/vscode-unify-chat-provider#readme)
- [Project repository](https://github.com/smallmain/vscode-unify-chat-provider)
- [Release notes](https://github.com/smallmain/vscode-unify-chat-provider/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/smallmain-vscode-unify-chat-provider
