Model Discovery
The CopilotModelDiscovery class lets you enumerate all models available through your
Copilot subscription at runtime.
Usage
using JD.SemanticKernel.Connectors.GitHubCopilot;
var provider = new CopilotSessionProvider(new CopilotSessionOptions());
var discovery = new CopilotModelDiscovery(provider);
var models = await discovery.DiscoverModelsAsync();
foreach (var model in models)
{
Console.WriteLine($"{model.Id} ({model.Provider}) — {model.Name}");
}
Output example
claude-opus-4.6 (Anthropic) — Claude Opus 4.6
claude-opus-4.6-fast (Anthropic) — Claude Opus 4.6 (fast mode)
claude-sonnet-4.6 (Anthropic) — Claude Sonnet 4.6
claude-sonnet-4 (Anthropic) — Claude Sonnet 4
claude-haiku-4.5 (Anthropic) — Claude Haiku 4.5
gpt-5.3-codex (OpenAI) — GPT-5.3-Codex
gpt-5.2 (OpenAI) — GPT-5.2
gpt-5-mini (Azure OpenAI) — GPT-5 mini
gemini-3.1-pro-preview (Google) — Gemini 3.1 Pro
grok-code-fast-1 (xAI) — Grok Code Fast 1
... (41+ models total)
Interface
CopilotModelDiscovery implements IModelDiscoveryProvider from the shared abstractions:
public interface IModelDiscoveryProvider
{
Task<IReadOnlyList<ModelInfo>> DiscoverModelsAsync(
CancellationToken cancellationToken = default);
}
ModelInfo record
public sealed record ModelInfo(string Id, string Name, string Provider);
CLI model listing
The jdcplt tool includes model listing:
jdcplt --list-models
Known model constants
The CopilotModels class provides constants for commonly used models across 5 providers:
public static class CopilotModels
{
// Default
public const string Default = "claude-sonnet-4.6";
// Anthropic
public const string ClaudeOpus46 = "claude-opus-4.6";
public const string ClaudeOpus46Fast = "claude-opus-4.6-fast";
public const string ClaudeSonnet46 = "claude-sonnet-4.6";
public const string ClaudeSonnet4 = "claude-sonnet-4";
public const string ClaudeHaiku45 = "claude-haiku-4.5";
// OpenAI
public const string Gpt53Codex = "gpt-5.3-codex";
public const string Gpt52 = "gpt-5.2";
public const string Gpt51Codex = "gpt-5.1-codex";
public const string Gpt5Mini = "gpt-5-mini";
public const string Gpt4o = "gpt-4o";
// Google
public const string Gemini31Pro = "gemini-3.1-pro-preview";
public const string Gemini3Pro = "gemini-3-pro-preview";
public const string Gemini3Flash = "gemini-3-flash-preview";
// xAI
public const string GrokCodeFast1 = "grok-code-fast-1";
}