1200+ AI models in your GitHub Copilot Chat — free & forever free. VS Code extension powered by OmniRoute: 340+ providers (90+ free) — Kimi, Claude, GPT, Gemini, GLM, DeepSeek, Qwen — with agent mode, tool calling, vision and quota-aware auto-fallback. MIT.
88
stars
18
commits
TypeScript
primary language
Sep 3, 2026
updated
1200+ AI models in your Copilot Chat — free & forever free.
340+ providers, 90+ with free tiers, one endpoint. MIT open source.
🧩 Install from the VS Code Marketplace
🔓 Install from Open VSX (Cursor, Windsurf, VSCodium, Theia, code-server…)
🌐 OmniRoute on GitHub • 🔌 Extension source • 🐛 Issues
Don't replace Copilot — power it up. No new sidebar to learn, no new chat UI. This extension drops every model from your OmniRoute server — Kimi, Claude, GPT, Gemini, GLM, DeepSeek, Qwen, Llama and hundreds more across 340+ providers, 90+ of them with free tiers that stay free — straight into the model picker of the Copilot Chat you already use. Including VS Code Insiders.
🆓 No Copilot subscription required. Since VS Code 1.122, provider models work without a GitHub sign-in and without any Copilot plan. VS Code + OmniRoute + this extension = a fully working AI chat with agent mode, for free.
omniroute CLI under the hood.settings.json.npm install -g omniroute
omniroute # dashboard at http://localhost:20128
Add your providers/keys in the dashboard — or use the built-in free ones. Full guide: github.com/diegosouzapw/OmniRoute.
Already running OmniRoute somewhere else (home server, VPS, tunnel)? Point the extension at it — see below.
Search for "OmniRoute" in the VS Code Extensions view — it resolves from the
Marketplace on VS Code
and from Open VSX on forks like Cursor,
Windsurf and VSCodium. Or grab the .vsix from the releases.
That's it. If OmniRoute runs on the default http://localhost:20128, there is nothing to configure.
Click the OmniRoute icon in the Activity Bar (or run OmniRoute: Manage Connection, or click the status-bar dot) to open the connection panel:
http://my-vps:20128 (the /v1 suffix is added automatically)REQUIRE_API_KEY); stored in the OS keychainRun OmniRoute: Configure Coding CLI and pick a tool — the extension drives the omniroute CLI to generate ready-to-use profiles:
| Tool | What you get |
|---|---|
| Codex CLI | codex --profile glm52 style profiles in ~/.codex |
| Claude Code | omniroute launch --profile <name> launch profiles |
| Cline / Roo / Kilo | Extension settings pointed at OmniRoute |
| Continue / Cursor / Aider / Goose / Crush / OpenCode / Qwen Code | Tool-native config |
| Setting | Default | Description |
|---|---|---|
omnicopilot.baseUrl | http://localhost:20128 | OmniRoute server root (local or remote) — /v1 is appended automatically |
omnicopilot.modelFilter | (empty) | Substring/regex to limit which models are listed |
omnicopilot.maxOutputTokens | 16384 | Output budget reserved per response |
omnicopilot.defaultContextLength | 128000 | Context assumed when the catalog omits it |
omnicopilot.statusBar | true | Show the connection dot |
omnicopilot.healthCheckIntervalSeconds | 30 | Probe frequency |
omnicopilot.dashboardOpen | external | Open the dashboard in the browser, or in a VS Code tab (editor) — see below |
omnicopilot.defaultReasoningEffort | (unset) | Effort for models with extended thinking — none/low/medium/high/xhigh; see below |
omnicopilot.cliPath | omniroute | Path to the OmniRoute CLI |
omnicopilot.exposeToAgentsWindow | false | Experimental: also list the models in the Copilot Agents window — see below |
Models with extended thinking (GPT-5.x, Claude with thinking, DeepSeek R1, Gemini
Thinking…) accept a reasoning tier. When VS Code shows an effort control next to the model,
that choice is forwarded to OmniRoute as reasoning_effort — you do not have to configure
anything.
omnicopilot.defaultReasoningEffort covers the case where the editor exposes no control. It
uses OmniRoute's canonical vocabulary — none, low, medium, high, xhigh — and the
server downshifts a tier a model does not implement, so asking for xhigh is always safe.
The default is applied only to models the catalog marks as reasoning-capable: sending the field to a model without thinking support is ignored at best and rejected with a 400 at worst. An explicit choice from the chat UI always wins over the setting.
Turn on omnicopilot.exposeToAgentsWindow to also register every tool-calling OmniRoute model
for the Copilot Agents window (the Copilot CLI agent host). VS Code scopes these entries to
agent-host sessions, so they appear in the Agents window's model picker instead of the regular
chat picker — the regular picker keeps working unchanged.
Prerequisites, both on the VS Code side:
chat.agentHost.byokModels.enabled.This rides a proposed VS Code API (targetChatSessionType), which is why it ships opt-in
and default-off: the mechanism can change under us in a VS Code update. If the entries show up
duplicated in the regular picker instead of the Agents window, your VS Code build does not
support the proposal yet — turn the setting back off.
When OmniRoute runs a recent enough version, the Activity Bar panel shows a My usage section — your key's own daily/weekly spend against its limit, the reset time, and the quota of each provider connection (Codex, Claude, OpenCode…) side by side.
It reads the self-service endpoint GET /api/usage/om-usage?format=json with your connection's
API key — the same data as the terminal @@om-usage command, never the management surface.
Three states are normal and distinct:
allowUsageCommand flag, which
is off by default. An admin turns it on per key in OmniRoute's API-key manager. This is a
setting, not an error.?format=json; the panel hides it
rather than parse the older text form.Requires OmniRoute with the usage JSON endpoint (v3.8.50+). See
docs/CATALOG.md for the server version the feature matrix assumes.
Set omnicopilot.dashboardOpen to editor to open the OmniRoute dashboard in a VS Code tab
instead of your browser. This needs the server to allow embedding, which is opt-in via
DASHBOARD_ALLOW_EMBED=vscode (landed in
OmniRoute #10273).
⚠️ That flag is read at build time — Next.js bakes the response headers into the route
manifest — so exporting it in front of an already-installed server does nothing. It works on a
build from source (DASHBOARD_ALLOW_EMBED=vscode npm run build), not on the prebuilt
npm install -g omniroute package or the official Docker image. Full matrix in the
OmniRoute guide.
Without an embed-enabled build the page refuses to frame; the extension detects that from the response headers and falls back to the external browser, so nothing breaks either way.
Curious why the picker shows the number of models it shows, or why a provider you never
configured is in there? → docs/CATALOG.md explains the duplicate-prefix
mode, the non-chat filter and the free/keyless providers, with measured numbers.
OmniRoute is MIT-licensed and free forever — ⭐ star it on GitHub and join the project. This extension is MIT too; issues and PRs welcome at diegosouzapw/OmniCopilot. Maintainers publishing a new version: see docs/PUBLISHING.md (Marketplace + Open VSX).
OmniRoute is an independent open-source project, not affiliated with GitHub or Microsoft. GitHub Copilot is a trademark of GitHub, Inc.
18 commits
TypeScript
98.7%
JavaScript
1.3%
1200+ AI models in your GitHub Copilot Chat — free & forever free. VS Code extension powered by OmniRoute: 340+ providers (90+ free) — Kimi, Claude, GPT, Gemini, GLM, DeepSeek, Qwen — with agent mode, tool calling, vision and quota-aware auto-fallback. MIT.
88
stars
18
commits
TypeScript
primary language
Sep 3, 2026
updated
1200+ AI models in your Copilot Chat — free & forever free.
340+ providers, 90+ with free tiers, one endpoint. MIT open source.
🧩 Install from the VS Code Marketplace
🔓 Install from Open VSX (Cursor, Windsurf, VSCodium, Theia, code-server…)
🌐 OmniRoute on GitHub • 🔌 Extension source • 🐛 Issues
Don't replace Copilot — power it up. No new sidebar to learn, no new chat UI. This extension drops every model from your OmniRoute server — Kimi, Claude, GPT, Gemini, GLM, DeepSeek, Qwen, Llama and hundreds more across 340+ providers, 90+ of them with free tiers that stay free — straight into the model picker of the Copilot Chat you already use. Including VS Code Insiders.
🆓 No Copilot subscription required. Since VS Code 1.122, provider models work without a GitHub sign-in and without any Copilot plan. VS Code + OmniRoute + this extension = a fully working AI chat with agent mode, for free.
omniroute CLI under the hood.settings.json.npm install -g omniroute
omniroute # dashboard at http://localhost:20128
Add your providers/keys in the dashboard — or use the built-in free ones. Full guide: github.com/diegosouzapw/OmniRoute.
Already running OmniRoute somewhere else (home server, VPS, tunnel)? Point the extension at it — see below.
Search for "OmniRoute" in the VS Code Extensions view — it resolves from the
Marketplace on VS Code
and from Open VSX on forks like Cursor,
Windsurf and VSCodium. Or grab the .vsix from the releases.
That's it. If OmniRoute runs on the default http://localhost:20128, there is nothing to configure.
Click the OmniRoute icon in the Activity Bar (or run OmniRoute: Manage Connection, or click the status-bar dot) to open the connection panel:
http://my-vps:20128 (the /v1 suffix is added automatically)REQUIRE_API_KEY); stored in the OS keychainRun OmniRoute: Configure Coding CLI and pick a tool — the extension drives the omniroute CLI to generate ready-to-use profiles:
| Tool | What you get |
|---|---|
| Codex CLI | codex --profile glm52 style profiles in ~/.codex |
| Claude Code | omniroute launch --profile <name> launch profiles |
| Cline / Roo / Kilo | Extension settings pointed at OmniRoute |
| Continue / Cursor / Aider / Goose / Crush / OpenCode / Qwen Code | Tool-native config |
| Setting | Default | Description |
|---|---|---|
omnicopilot.baseUrl | http://localhost:20128 | OmniRoute server root (local or remote) — /v1 is appended automatically |
omnicopilot.modelFilter | (empty) | Substring/regex to limit which models are listed |
omnicopilot.maxOutputTokens | 16384 | Output budget reserved per response |
omnicopilot.defaultContextLength | 128000 | Context assumed when the catalog omits it |
omnicopilot.statusBar | true | Show the connection dot |
omnicopilot.healthCheckIntervalSeconds | 30 | Probe frequency |
omnicopilot.dashboardOpen | external | Open the dashboard in the browser, or in a VS Code tab (editor) — see below |
omnicopilot.defaultReasoningEffort | (unset) | Effort for models with extended thinking — none/low/medium/high/xhigh; see below |
omnicopilot.cliPath | omniroute | Path to the OmniRoute CLI |
omnicopilot.exposeToAgentsWindow | false | Experimental: also list the models in the Copilot Agents window — see below |
Models with extended thinking (GPT-5.x, Claude with thinking, DeepSeek R1, Gemini
Thinking…) accept a reasoning tier. When VS Code shows an effort control next to the model,
that choice is forwarded to OmniRoute as reasoning_effort — you do not have to configure
anything.
omnicopilot.defaultReasoningEffort covers the case where the editor exposes no control. It
uses OmniRoute's canonical vocabulary — none, low, medium, high, xhigh — and the
server downshifts a tier a model does not implement, so asking for xhigh is always safe.
The default is applied only to models the catalog marks as reasoning-capable: sending the field to a model without thinking support is ignored at best and rejected with a 400 at worst. An explicit choice from the chat UI always wins over the setting.
Turn on omnicopilot.exposeToAgentsWindow to also register every tool-calling OmniRoute model
for the Copilot Agents window (the Copilot CLI agent host). VS Code scopes these entries to
agent-host sessions, so they appear in the Agents window's model picker instead of the regular
chat picker — the regular picker keeps working unchanged.
Prerequisites, both on the VS Code side:
chat.agentHost.byokModels.enabled.This rides a proposed VS Code API (targetChatSessionType), which is why it ships opt-in
and default-off: the mechanism can change under us in a VS Code update. If the entries show up
duplicated in the regular picker instead of the Agents window, your VS Code build does not
support the proposal yet — turn the setting back off.
When OmniRoute runs a recent enough version, the Activity Bar panel shows a My usage section — your key's own daily/weekly spend against its limit, the reset time, and the quota of each provider connection (Codex, Claude, OpenCode…) side by side.
It reads the self-service endpoint GET /api/usage/om-usage?format=json with your connection's
API key — the same data as the terminal @@om-usage command, never the management surface.
Three states are normal and distinct:
allowUsageCommand flag, which
is off by default. An admin turns it on per key in OmniRoute's API-key manager. This is a
setting, not an error.?format=json; the panel hides it
rather than parse the older text form.Requires OmniRoute with the usage JSON endpoint (v3.8.50+). See
docs/CATALOG.md for the server version the feature matrix assumes.
Set omnicopilot.dashboardOpen to editor to open the OmniRoute dashboard in a VS Code tab
instead of your browser. This needs the server to allow embedding, which is opt-in via
DASHBOARD_ALLOW_EMBED=vscode (landed in
OmniRoute #10273).
⚠️ That flag is read at build time — Next.js bakes the response headers into the route
manifest — so exporting it in front of an already-installed server does nothing. It works on a
build from source (DASHBOARD_ALLOW_EMBED=vscode npm run build), not on the prebuilt
npm install -g omniroute package or the official Docker image. Full matrix in the
OmniRoute guide.
Without an embed-enabled build the page refuses to frame; the extension detects that from the response headers and falls back to the external browser, so nothing breaks either way.
Curious why the picker shows the number of models it shows, or why a provider you never
configured is in there? → docs/CATALOG.md explains the duplicate-prefix
mode, the non-chat filter and the free/keyless providers, with measured numbers.
OmniRoute is MIT-licensed and free forever — ⭐ star it on GitHub and join the project. This extension is MIT too; issues and PRs welcome at diegosouzapw/OmniCopilot. Maintainers publishing a new version: see docs/PUBLISHING.md (Marketplace + Open VSX).
OmniRoute is an independent open-source project, not affiliated with GitHub or Microsoft. GitHub Copilot is a trademark of GitHub, Inc.
18 commits
TypeScript
98.7%
JavaScript
1.3%