Repository navigation
GitHub Copilot Free/Student plans (Auto-only) show no models: add github-copilot/auto #34644
Description
Description
After successfully authenticating OpenCode with my GitHub Copilot subscription via OAuth (/connect → GitHub Copilot → device login), the github-copilot provider does not appear anywhere in the model selector, and is not recognized at all when queried directly.
My account is on the GitHub Copilot Student plan. As of June 24, 2026, GitHub Education states that Copilot Free and Student plans now use "auto model selection" as the default and only model selection experience — manual model picking is no longer exposed for these plans (see GitHub Community Discussion #189268). I suspect this is why OpenCode can't populate a model list for this provider: it likely expects the Copilot API to return a list of individually selectable models, which Student/Free accounts no longer provide.
Expected behavior
GitHub Copilot should appear as a connected provider with at least one selectable model (e.g. an "auto" model entry), consistent with how Student/Free plans now operate via GitHub's auto model selection, since the OAuth credential is valid and stored correctly.
Actual behavior
The provider is completely absent from the model catalog despite a valid, stored OAuth credential. opencode models <provider> returns "Provider not found," suggesting OpenCode silently drops the provider entirely when the Copilot API doesn't return a standard model list (likely the case for Auto-only plans), rather than falling back to a generic/auto model entry.
Environment
-
OpenCode version: 1.17.11 (installed via npm, Windows)
-
GitHub Copilot plan: Copilot Student (Auto-only mode, as of June 2026 policy change)
-
Auth method: OAuth device login (
GitHub Copilot oauth— confirmed present inauth list) -
opencode auth listoutput:Credentials ~/.local/share/opencode/auth.json
• GitHub Copilot oauth
• DeepSeek api
2 credentials -
opencode models github-copilotoutput:Error: Provider not found: github-copilot
Additional context
This started after GitHub rolled out the policy change removing manual model selection for Free/Student Copilot plans (effective June 24, 2026). It's possible this previously worked for Student accounts before that change, since manual model selection used to be available. Happy to provide additional logs/debug output if helpful.
Plugins
None
OpenCode version
1.17.11
Steps to reproduce
- Authenticate with a GitHub Copilot Student plan account via
opencode→/connect→ GitHub Copilot → device login flow. - Confirm the credential is stored:
opencode auth list→ showsGitHub Copilot oauthcorrectly. - Open the model selector in the TUI ("Select model") → GitHub Copilot does not appear in the list at all (only OpenCode Zen / DeepSeek providers show).
- Run
opencode models --refresh→ output lists onlyopencode/*anddeepseek/*models, nothing fromgithub-copilot. - Run
opencode models github-copilotdirectly → returns:Error: Provider not found: github-copilot
Screenshot and/or share link
Operating System
Windows 11
Terminal
Warp
Activity
github-actions commentedon Jun 30, 2026
This issue might be a duplicate of existing issues. Please check:
max_context_window_tokens— the Student/Auto-only plan's API response may omit fields that cause the schema decoder to silently drop the provider entirely, which would match your "Provider not found" symptomLeandroPacsiM commentedon Aug 22, 2026
Buenas dias, el problema sigue vigente a dia de hoy? o encontraron alguna solucion? tengo el mismo problema, antes si se podia sincronizar, gracias.
TavoMtz commentedon Aug 22, 2026
erfansn commentedon Aug 29, 2026
++
mvcpacheco commentedon Sep 25, 2026
Root cause is tracked in #42083 (
model_picker_enabled: falsefilters the whole catalog), and the auto-only policy behind it is confirmed in community discussion #189268. Adding three data points from stable 2.0.16, plus a second problem I don't think is accounted for yet.Still present on 2.0.16 (npm
@opencode/cli@2.0.16, Windows 11 build 26200). Above is on 1.17.11, so this survives into the current release.The log contrast. The failure mode changes shape after re-auth. Before
opencode auth login, retried loudly on every startup:After a successful login:
…and then nothing: no failure line, no success line. The one actionable error gets replaced by silence, which is worse than either a working provider or a persistent failure.
The stored credential doesn't authenticate. Despite the "Connected" result and the
credential createdlog, the token fails the standard exchange:And a PAT with
copilotscope is refused by the models endpoint outright (cf. #44113):So the plan restriction looks like a second layer on top of a credential that doesn't work (worth separating, since fixing the picker filter alone wouldn't make this account functional).
Provider-specific, not a broken catalog: after restart,
opencode models→ 492 models acrossopencode,opencode-go,openrouter;github-copilotabsent.Ask: when a provider authenticates but yields an empty catalog (or when the credential it just stored fails to authenticate), log something. Right now "authenticated, no models", "bad credential", and "provider broken" are indistinguishable from the outside, which is likely why this has accumulated a dozen near-duplicates. #46891 makes a related point about entitled-looking-but-empty connections.
Honest free options: Copilot Free doesn't work with apps; Gemini leads
apoorvdarshan commentedon Oct 2, 2026
Also reproducing this on OpenCode v2.0.22 on macOS with a Copilot educational account. OAuth connects successfully, but no Copilot models appear in
/modelsoropencode models. Reconnecting, reloading configuration, and restarting the background service did not help.We checked the API response using the active connection:
/modelsendpoint returns HTTP 200 with 50 models.model_picker_enabled: false, including some whose policy state isenabled.model_picker_enabledto the model's enabled state, leaving no selectable Copilot models.Could OpenCode support a single GitHub Copilot — Auto entry for Student accounts restricted to Auto selection, using GitHub's supported Auto routing and respecting the account's plan restrictions? This would let Student users use their connected account without exposing individual models that their plan does not allow them to select.
GitHub documents Auto-only model access for Free/Student plans: https://docs.github.com/en/copilot/get-started/plans
The Copilot SDK also documents
model: "auto"; could that provide a supported integration path? https://docs.github.com/en/copilot/how-tos/copilot-sdk/features/session-persistenceIf Auto routing cannot currently be supported through OpenCode's provider integration, an explicit explanation in the UI would help instead of a successful connection followed by an empty model picker.
rekram1-node commentedon Oct 6, 2026
yeah we will add the
autothdxr commentedon Oct 11, 2026
Thanks for the report! OpenCode 2.0 is now out and development is focused on V2, so we're closing issues filed against OpenCode 1. Please upgrade (
opencode upgrade --major, details: https://anoma.ly/notes/opencode-2-0), and if this is still relevant on 2.0, reopen this issue or open a new one with your 2.0 version.— from 𝕺𝖕𝖊𝖓𝕮𝖔𝖉𝖊
brandyballoon commentedon Oct 13, 2026
v2.0.28 still has this issue. Provider connection succeeds but there's no GitHub Copilot section in the models list. I'm on the student plan which shows as pro when using the Copilot plugin in Jetbrains CLion in case that helps - everything works but the only model available is "Auto".
[-]GitHub Copilot provider not registered/found for Copilot Student plan (Auto-only mode)[/-][+]GitHub Copilot Free/Student plans (Auto-only) show no models: add github-copilot/auto[/+]opencode-agent commentedon Oct 17, 2026
This is the tracking issue for GitHub Copilot Free and Student plans showing no models.
Since GitHub's June 24 change, Free and Student plans only allow Auto model selection. Copilot's
/modelsreturns every model withmodel_picker_enabled: false, OpenCode maps that to disabled, and the provider ends up with zero models (Provider not found: github-copiloton V1, an empty Copilot section in/modelson V2). The fix is agithub-copilot/automodel, in progress in #55960.Open reports closed as duplicates of this issue:
Earlier reports of the same problem that were already closed:
model_picker_enabled: false#42083, not able to get GitHub copilot on the desktop application #43436, GitHub copilot shows no models #46455, bug #52536, bug #52562EngineerAtaberk commentedon Oct 21, 2026
Reproduced on v2.1.2 (latest channel), Windows 10.0.19045, desktop app (win32 x64).
GET https://api.githubcopilot.com/modelswith the stored OAuth token returns 46–53 models depending onCopilot-Integration-Id; every model hasmodel_picker_enabled: false, while several havepolicy.state: "enabled"(gpt-4.1,gpt-4o,gpt-4o-mini,kimi-k3-base,kimi-k3-copilot,mai-code-*,claude-haiku-4.5,gpt-5.6-luna,gpt-6-luna,gpt-5.4-mini-free-auto). OpenCode therefore lists zerogithub-copilotmodels, and any explicit reference fails withModel unavailable: github-copilot/<model>.Extra data points that may help with the
automodel implementation:/copilot_internal/userreturnschat_enabled: true, planindividual,access_type_sku: free_limited_copilot, andpremium_interactionsentitlement0(quota snapshots:chat200/200,premium_interactions0)./copilot_internal/v2/tokenreturns 403 for this account's token, so there is no session-token exchange on Copilot Free.gpt-4.1,gpt-4o,gpt-4o-minivia/chat/completionswork, including tool calls.gpt-5.6-lunaandclaude-haiku-4.5returnmodel_not_supported(plan gate, not an OpenCode bug)./modelsresponse also includes non-chat models (copilot-search-*,exec-agent-*,text-embedding-*,gpt-3.5-turbo*,gpt-4*) that would need filtering out of an auto list.openai-compatibleprovider withbaseURL: https://api.githubcopilot.comand explicitly declared models (gpt-4.1,gpt-4o,gpt-4o-mini), plusCopilot-Integration-Id,Editor-Version,Openai-Intent, andX-GitHub-Api-Versionheaders, works end-to-end (chat and tool calls).Following #55960 — thanks for working on this.
thdhyan commentedon Oct 21, 2026
Adding v2 data to this issue, since it is the canonical tracker for the Free/Student (auto-only) case.
Reproduced on v2. This still happens on 2.0.27 and 2.1.2 (current), not just on the 1.17.11 build in the original report. The v1 code filtered the catalog by
pickerEnabled; v2 maps the flag ontoModel.Info.enabledinstead, inpackages/core/src/github-copilot/models.ts:So on v2 the models are fetched and registered successfully and then every one of them is hidden — which is why there is no
failed to sync GitHub Copilot modelswarning in the server log.Which models those accounts can actually call. With the stored token,
/chat/completionsanswers200for the legacy chat models andmodel_not_supportedfor everything Copilot meters. On my account (42 models in/models, 22 usable after the existingusable()filter):/autosession tokengpt-4o,gpt-4o-mini,gpt-4.1,gpt-3.5-turbo,gpt-4-o-preview,gpt-4o-2024-*,gpt-4.1-2025-04-14,copilot-search-a/bgpt-4,gpt-4-0613,gpt-41-copilot,claude-haiku-4.5,kimi-k3,gpt-5.3-codex,gpt-5.6-luna,gpt-5.6-luna-utility,gpt-6-luna,mai-code-1.1-flashThe split follows the
/modelsmetadata: the metered ones (billing.token_prices.batch_size > 0) and the ones that only advertise/responsesare served through the auto route.POST /autoverified on a real Free/edu account, for the record:POST /autowithX-GitHub-Api-Version: 2026-08-01returns{ session_token, selected_model, expires_at }(selected_model.idwasgpt-5.6-luna, whosebilling.restricted_toincludesfree/edu), and that model then answers/responseswith theCopilot-Session-Tokenheader. The same model called directly with the OAuth token answersmodel_not_supported.Other fields in
/modelsthat may help with the auto model:is_chat_default(gpt-4.1here),is_chat_fallback(gpt-5.3-codexhere) andbilling.auto_discounton 17 of the models.PRs
github-copilot/automodel backed byPOST /auto.Both halves are needed for Free/Student accounts.