Connect GitHub Copilot to DIAL
In this tutorial you add your DIAL deployments to the GitHub Copilot model picker in VS Code, then chat with one of them. Turns you send through the picker run on DIAL, with DIAL auth, roles, quotas, and cost tracking applied. This tutorial is for developers who already have a DIAL host and use Copilot in VS Code.
Prerequisites
- A DIAL host and API key. See Before you begin.
- VS Code 1.110 or newer.
- The GitHub Copilot extension, installed and signed in.
Note
The DIAL Chat Model Provider used below is a community extension, not published by GitHub, Microsoft, or EPAM. Review its source and install it at your own discretion.
What you'll build
DIAL deployments listed in the Copilot model picker. By the end, you pick a DIAL model in Copilot Chat and get a reply streamed back from your DIAL deployment.
Step 1: Install the DIAL extension
Download the DIAL Chat Model Provider .vsix from either source:
In VS Code, open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P), run Extensions: Install from VSIX…, and select the file you downloaded. When prompted, reload VS Code.
Verify:
DIAL Chat Model Provider appears in the Extensions view, and new DIAL: commands are available in the Command Palette.
Step 2: Point at DIAL and sign in
Open the Command Palette and run DIAL: Open Settings. Set:
| Setting | Value |
|---|---|
dial.serverUrl | https://<YOUR_DIAL_HOST> |
dial.authMethod | openid or apikey |
Then run DIAL: Login:
openid— VS Code opens your browser, you sign in, and the tokens are stored in your OS keychain.apikey— runDIAL: Set API Keyfirst, or paste the key when prompted. The key is sent as DIAL'sApi-Keyheader on every request.
Step 3: Pick a DIAL model in Copilot
Open Copilot Chat, open the model picker, and choose a deployment listed under DIAL. The deployments your DIAL role can access appear automatically, and vision-capable models are marked.
Send a message — for example, "What model are you?"
Verify:
You get a reply streamed back from your DIAL deployment.
What you learned
- How to install the DIAL Chat Model Provider extension and point it at your DIAL host.
- How to sign in with either OpenID Connect or an API key.
- How to select a DIAL deployment from the Copilot model picker.
Good to know
- Only turns that go through the model picker (and other
vscode.lm.*clients) reach DIAL. Inline ghost-text completions keep using GitHub's backend. - The extension uses DIAL's Chat Completions surface. Deployments exposed only over the Responses API are not reachable this way.
- A deployment works correctly through the extension only when its DIAL model configuration explicitly declares token limits and a tokenizer. Deployments missing either may fail or misbehave in the picker.
- Copilot's prompt-cache markers (
cache_control) are not forwarded to DIAL, so Bedrock-style prompt caching is not activated from Copilot turns. - Auto-compaction does not work with this setup. When a conversation grows past the model's context window, Copilot will not summarize it down automatically — start a new chat instead.
- For
openid, your DIAL admins must allow the extension's OIDC client registration and its redirect URIhttp://127.0.0.1:47821/oauth-callback.
Next steps
- Connect OpenCode to DIAL — a terminal agent that also uses Chat Completions
- Agentic tools overview — shared prerequisites and the other tools
- DIAL Chat Model Provider on Open VSX — the extension's current feature list and settings reference