Copilot BYOK
Source: docs/models/copilot-byok.md
Generated: 01/09/2026
Use Bring Your Own Key (BYOK) and local Ollama models through the Copilot extension — without forcing a cloud-only workflow.
Key Concepts
- What: BYOK lets JoinGrove route utility and chat models to Ollama while retaining upstream Copilot agent features when signed in.
- Why: Developers want Copilot agent mode when online, but campus labs need fully local models when egress is blocked.
- Related: Ollama setup (
../integrations/ollama.md), zero egress (egress.md), GitHub integration (../integrations/github.md).
API / Reference
| Setting / file | Purpose |
|---|---|
~/.joingrove/User/chatLanguageModels.json |
Ollama provider groups |
chat.defaultModel |
e.g. ollama/qwen2.5-coder:7b |
joingrove.offline.zeroEgressMode |
Blocks Copilot cloud when true (default) |
joingroveOfflineFirst contribution |
Runtime BYOK + Ollama defaults |
product.json → joingroveOfflineProviders |
Bundled model catalog |
Commands
| Command | ID |
|---|---|
| Set up local AI | joingrove.setupOfflineAi |
| Check Ollama | joingrove.checkOllamaStatus |
| Toggle zero egress | joingrove.toggleZeroEgressMode |
| Security mode wizard | joingrove.securityModeWizard |
Setup & Installation
- Run
npm run setup-offline-aito write BYOK config for Ollama. - In zero egress mode (default), only local models are reachable — no Copilot cloud calls.
- To use Copilot cloud → Command Palette → Network Security Mode (
joingrove.securityModeWizard) or disable zero egress. - Pick model in Agents chat — Ollama models appear after setup.
Code Examples
Write BYOK config:
npm run setup-offline-ai
Probe Ollama from smoke script:
npm run smoke-run-anywhere -- --check-ollama
Full offline bundle (models + extensions + config):
npm run install-offline-bundle
Next: No GitHub Copilot subscription is required when using fully local Ollama models only.
How It Connects
- Ollama integration:
../integrations/ollama.md - Models overview:
overview.md - Egress policy:
egress.md - In-app command:
joingrove.setupOfflineAi