+ {/* Info box */}
+
+
info
+
+
GitHub Copilot Config Generator
+
+ Generates the{" "}
+
+ chatLanguageModels.json
+ {" "}
+ block for VS Code GitHub Copilot using the Azure vendor pattern. Select the models
+ you want, then copy the JSON into your config file.
+
+
+
+
+ {/* Version compatibility warning */}
+
+
warning
+
+ This configuration uses the Azure vendor workaround for custom model lists. Tested
+ with VS Code ≥ 1.109 and{" "}
+ GitHub Copilot Chat ≥ v0.37 . Future extension updates may change
+ this behavior.
+
+
+
+ {/* Step 2: API Key (if cloud enabled) */}
+ {cloudEnabled && apiKeys?.length > 0 && (
+
+
+
handleApiKeyChange(e.target.value)}
+ className="w-full px-3 py-2 bg-bg-secondary rounded-lg text-sm border border-border focus:outline-none focus:ring-1 focus:ring-primary/50"
+ >
+ {apiKeys.map((key: any) => (
+
+ {key.key}
+
+ ))}
+
+
+ )}
+
+ {/* Step 3: Model Selection */}
+
+
+
+
+ {cloudEnabled && apiKeys?.length > 0 ? "2" : "1"}
+
+
+ Select Models ({selectedModels.size}/{availableModels.length})
+
+
+
+
+ Select All
+
+
+ Clear
+
+
+
+
+ {/* Search filter */}
+
+ setSearchFilter(e.target.value)}
+ placeholder="Filter models..."
+ className="w-full px-3 py-1.5 bg-bg-secondary rounded-lg text-sm border border-border focus:outline-none focus:ring-1 focus:ring-primary/50"
+ />
+
+
+ {!modelsLoaded && allModels.length === 0 ? (
+
+
+ progress_activity
+
+ Loading models...
+
+ ) : availableModels.length === 0 && allModels.length === 0 ? (
+
+
warning
+
+ {t("noActiveProviders")}
+
+
+ ) : (
+
+ {availableModels.map((model) => (
+
+ toggleModel(model.value)}
+ className="rounded border-border text-primary accent-[#1F6FEB]"
+ />
+ {model.label}
+
+ ))}
+
+ )}
+
+
+ {/* Step 4: Advanced options (collapsible) */}
+
+
+
+ chevron_right
+
+ Advanced Options
+
+
+
+
+ {/* Step 5: Generated config */}
+ {selectedModels.size > 0 && (
+
+
+
+
+ {cloudEnabled && apiKeys?.length > 0 ? "3" : "2"}
+
+
+ Copy Config ({selectedModels.size} model{selectedModels.size !== 1 ? "s" : ""}
+ )
+
+
+
handleCopy(generateConfig(), "config")}
+ >
+
+ {copiedField === "config" ? "check" : "content_copy"}
+
+ {copiedField === "config" ? t("copied") : t("copyConfig")}
+
+
+
+
+ {generateConfig()}
+
+
+
+ {/* Usage instructions */}
+
+
+ Paste into:
+
+ ~/.config/Code/User/chatLanguageModels.json
+
+
+
+ Then reload VS Code and set the API key in the input prompt.
+
+
+
+ )}
+