Skip to main content

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:

SettingValue
dial.serverUrlhttps://<YOUR_DIAL_HOST>
dial.authMethodopenid 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 — run DIAL: Set API Key first, or paste the key when prompted. The key is sent as DIAL's Api-Key header 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 URI http://127.0.0.1:47821/oauth-callback.

Next steps​