Skip to main content

Connect GitHub Copilot to DIAL

Introduction

From this tutorial, you will learn how to 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. By the end, you pick a DIAL model in Copilot Chat and get a reply streamed back from your DIAL deployment.

Prerequisites

  • A DIAL host and API key. Refer to Prerequisites.
  • 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.

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. DIAL Chat Model Provider now 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?" You get a reply streamed back from your DIAL deployment.

Additional Information

  • 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.