Docs · Provider
GitHub Copilot in Claude Code, Codex, Gemini CLI and OpenCode
A Copilot seat comes with Claude, GPT and Gemini models, among others. Sign in to Copilot once in magpie, and Claude Code, Codex, Gemini CLI, OpenCode and every other agent you connect can use the models your plan gets, through magpie’s gateway at 127.0.0.1:3425. No API key.
Sign in to Copilot
- Open Add providerIn magpie’s Providers tab, press + Add provider and click the Copilot tile.
- Enter the code on GitHubmagpie shows a code and opens GitHub’s device page,
github.com/login/device. Enter the code and approve. magpie then asks GitHub whose account it is and which plan it has, and the account shows under Copilot. - Pick a model for an agentIn the Agents tab, click the model on the agent’s row and choose a
copilot/…model.
magpie accounts add copilot # github.com magpie accounts add copilot --host acme.ghe.com # GitHub Enterprise on GHE.com magpie accounts copilot # each account and what it has used
magpie serves a Copilot sign-in from three places:
- Copilot’s editor plugins. The sign-in they keep in
~/.config/github-copilot(apps.jsonorhosts.json). - The Copilot CLI. Its sign-in in
~/.copilot/config.json, with the token in the system keychain or in that file. magpie on Windows also reads the Copilot CLI sign-in of a running WSL distro, fromconfig.jsononly. - magpie’s own. Each account you sign in with a code in magpie. Its token is kept in magpie’s own
logins.json.
The editors’ and the CLI’s sign-ins are only read; magpie never writes them. When both are there, the editors’ github.com sign-in comes first, then the CLI’s, then an editor’s GHE.com sign-in. If GitHub turns away the editors’ token, magpie uses the CLI’s sign-in of the same account instead, never another account’s.
<name>.ghe.com, so add the account with --host (or answer the GHE.com question in the sign-in sheet). magpie accepts github.com or a <name>.ghe.com address and nothing else, so a GitHub token is never sent to a host of your choosing. The account is served at its enterprise’s copilot-api.<name>.ghe.com. One login on github.com and on GHE.com is two accounts: you and you@acme.ghe.com.The models your seat gets
magpie asks Copilot’s /models for each account and lists what comes back, so the list follows your plan rather than a fixed table. The models are named copilot/ and Copilot’s own id: copilot/claude-opus-5.5, copilot/gpt-5.4, copilot/gpt-5.3-codex. magpie models prints them all.
- Chat models only. Copilot’s internal models and the ones no model picker offers are left out, and so is a model the account isn’t allowed to turn on.
- Terms to accept. A model whose terms are still waiting is listed anyway. The first request for it accepts them, as turning it on in Copilot’s editor would.
- Reasoning efforts come from what Copilot lists for each model, and show in each agent’s picker.
- Auto is always on the list; see Copilot Auto.
- Image models such as GPT Image 2.5 Flare are listed for drawing (Settings → Models → Images), and are never offered as a chat model.
- Older models. A model for which Copilot names no API, such as GPT-4.1 and GPT-4o on a Student plan, is asked on Chat Completions only.
Claude Code reads a Claude version written with a dot as an older model, so magpie gives it Copilot’s Claude models with dashes (claude-opus-5-5) and turns the name back before the request reaches Copilot. Other agents see Copilot’s own spelling.
In each agent
Pick the model on an agent’s row in the Agents tab, or from a terminal. Each guide says what magpie writes in that agent’s config and how to switch back.
magpie claude copilot/claude-opus-5.5 magpie codex copilot/gpt-5.4 magpie gemini model copilot/gpt-5.4-mini magpie opencode copilot/claude-opus-5.5
- Claude Code speaks Anthropic Messages. Copilot serves its Claude models on Messages too, so Claude Code’s requests go to them as they are; a GPT or Gemini model gets them translated. Models in Claude Code.
- Codex speaks only OpenAI Responses, and magpie asks Copilot’s OpenAI models on Responses, so they pass through. Codex’s web search runs on Copilot’s side for those models, and Codex’s native compaction works with them too, but not with Copilot’s Claude models. Models in Codex.
- Gemini CLI speaks Gemini’s API. magpie points it at its gateway and translates. Models in Gemini CLI.
- OpenCode gets the model in
opencode.json, with its reasoning variants. Models in OpenCode.
The Copilot CLI is one of the agents magpie connects, too. Its row offers auto (Copilot picks) and Copilot’s own models, plus every other model you have added to magpie, which reach it through the Copilot CLI’s providers.json.
How requests reach Copilot
Copilot doesn’t serve every model on every API. Its newest OpenAI models answer only on Responses; its Claude models on Chat Completions and Anthropic Messages; its Gemini models and the older ones on Chat Completions only. magpie sends each request on an API the model is served on, and translates between that API and the agent’s when they differ, streaming and tool calls included.
- Wrong API. When Copilot answers that a model isn’t served on the API it was asked on, magpie rebuilds the request for the next one and remembers which one worked.
- Pin one yourself.
magpie model api copilot/<model> chat(orresponses,anthropic) asks the model on that API only;autohands the choice back to magpie. - Tool schemas for Gemini. Copilot turned some of Codex’s tool schemas away for its Gemini models with 400 “invalid request body”. magpie rewrites the ones it can prove safe to rewrite, so those tools reach the model.
Copilot Auto
copilot/auto is the model Copilot chooses for your account. It isn’t in Copilot’s /models, so magpie always adds it. On a Student plan it is the only model you may choose.
- magpie asks Copilot for a pick with the turn’s prompt, at Copilot Chat’s default setting, and keeps a pick for at most an hour.
- If Copilot has no Auto for the account, or picks a model the account was refused, a model the account may pick by hand stands in for 10 minutes: Copilot’s base model, its default,
gpt-4.1, a model that isn’t premium, then the rest. - If Copilot then refuses the model Auto picked, magpie picks another and sends the request again.
- The model Auto chose is noted on the request’s route, so you can see what answered.
Premium requests, usage and cost
Each Copilot account has a card with three allowances, as GitHub reports them: Premium requests, Chat requests and Completions, each as used / allowance. magpie accounts copilot prints the same.
- Monthly. The allowances renew each month, on the date GitHub gives.
- Unlimited shows as Unlimited. A window GitHub gives no figure for is left off the card, never shown as unlimited.
- One request a turn. A turn you type is billed as one request; the tool replies that carry it on are not.
- Business and Enterprise. A seat that uses up its allowance is paused, so magpie counts the account as used up and moves on to the next one. An organization’s pooled premium allowance shows as used up once the pool is spent.
- Other plans. When your plan lets you pay past the premium allowance, using it up doesn’t stop the account. Completions are counted too, but no request through magpie uses them.
- No allowance. Copilot’s base model,
gpt-4.1, is billed to no allowance on any plan.
The Usage tab counts tokens, cache hits and cost for each agent and model that went through magpie. Cost on a subscription is an estimate at the model maker’s list price, or at the price you set for the model. One difference from Anthropic’s own pricing: Copilot bills a cache write at one price however long it is kept, so magpie prices a 1-hour write at the 5-minute rate. For claude-opus-5.5 that is $5 per million tokens, where Anthropic’s 2× input would be $8.
Several accounts and failover
- Add another. Click the Copilot tile again, or run
magpie accounts add copilotagain. The one in use is listed first, then the rest in the order you added them. - Choose which goes first.
magpie accounts switch copilot <login>;magpie accounts forget copilot <login>removes one. With the same login on github.com and GHE.com, name it in full (you@acme.ghe.com) or add--host. - Spread requests. Tick the accounts to use on Copilot’s row. Routing sets how requests spread over them, Smart by default; the provider’s Fallback lists models to use when every account is out, rate limited or down. See Subscriptions in any agent.
- One model from two subscriptions. Claude Opus from your Claude subscription and from Copilot become one group by themselves,
auto/<model>. To set the order yourself:magpie group add "Opus anywhere" models=claude/claude-opus-5-5,copilot/claude-opus-5.5 routing=order. - A stale editor sign-in. When GitHub refuses the token Copilot’s editors keep, an account you signed in to magpie with the same login is kept and used.
Troubleshooting
| What you see | What it means |
|---|---|
| GitHub refused this Copilot sign-in; sign in again | GitHub turned the account’s token away. Sign in again from its row: the account is signed in again in place, and its settings stay. A network error or a 5xx from GitHub never marks an account, and the mark goes when a request is served. |
| the GitHub token Copilot’s editors keep in … was refused | The editors’ sign-in has lapsed. Sign in to Copilot again in your editor or in magpie, or move that file aside. |
| <login> has no Copilot subscription | The GitHub account you approved has no Copilot plan. Sign in with the account that has the seat. |
| Copilot doesn’t serve this model on Anthropic’s Messages API; it isn’t about your plan | Copilot serves that model on other APIs only. magpie model api copilot/<model> chat sends it on Chat Completions. |
| The requested model is not supported. | Copilot won’t serve that model to this account now. magpie leaves it out of the account’s models and the agents’ pickers for 6 hours, then tries it again. Under Auto, another model is picked and the request is sent again. |
| Copilot doesn’t offer Auto to this account … | Copilot made no pick and the account lists no model it may pick by hand. Check the plan at github.com/settings/copilot. |
| the code expired; start again · the sign-in was declined on GitHub | The device code ran out before it was entered, or the request was declined on GitHub’s page. Start the sign-in again. |
| Copilot signs in on github.com or an enterprise’s <name>.ghe.com, not … | The --host given isn’t github.com or a GHE.com address. |
| subscription accounts are off in magpie | Settings → Privacy → Subscription accounts is off (or magpie accounts discovery off was run), so magpie reads no sign-in and serves no subscription, Copilot included. Turn it on, or run magpie accounts discovery on. |
FAQ
How do I use GitHub Copilot in Claude Code?
Sign in to Copilot in magpie (Providers, Add provider, Copilot; GitHub gives you a code to enter), then pick a copilot/… model such as copilot/claude-opus-5.5 on Claude Code’s row, or run magpie claude copilot/claude-opus-5.5. magpie writes Claude Code’s settings.json. Copilot’s Claude models get Claude Code’s Anthropic requests as they are; its GPT and Gemini models get them translated.
Can Codex use Copilot’s models?
Yes. Codex speaks OpenAI Responses, and magpie asks Copilot’s OpenAI models on Responses too, so they pass through, web search included. Copilot’s Claude and Gemini models are translated. Pick one on Codex’s row or run magpie codex copilot/gpt-5.4; it shows in Codex’s /model list.
Can I use Copilot in Gemini CLI and OpenCode?
Yes. Run magpie gemini model copilot/gpt-5.4-mini or magpie opencode copilot/claude-opus-5.5, or pick the model on the agent’s row. magpie translates Gemini CLI’s requests, and writes the model into OpenCode’s opencode.json.
Do I need VS Code or another editor signed in to Copilot?
No. magpie signs in to GitHub itself with a device code. If Copilot’s editor plugins or the Copilot CLI are already signed in on this computer, magpie reads that sign-in too, and never changes it.
Does it spend my premium requests?
Requests go to Copilot on your account, so they count against your plan as Copilot counts them. A turn you type is billed as one request; the tool replies that carry it on are not. magpie shows each account’s Premium requests, Chat requests and Completions as used out of the allowance.
Does it work with Copilot Business, Enterprise and GHE.com?
Yes. magpie reads the plan from GitHub: Free, Pro, Pro+, Max, Education, Business or Enterprise. An enterprise on GHE.com signs in with magpie accounts add copilot --host <name>.ghe.com. A Business or Enterprise seat that uses up its allowance is paused, and magpie counts the account as used up until it renews.
Why is a Copilot model missing from my list?
magpie lists what Copilot’s /models gives the account: chat models only, without the ones no model picker offers or the account can’t turn on. A model Copilot answered with “The requested model is not supported.” is left out for 6 hours, then tried again in case your plan changed.
By provider: DeepSeek · Kimi and Kimi Code · GLM Coding Plan · Qwen · MiniMax · Gemini · Grok · Mistral · OpenRouter · Ollama
Every agent: Models in Claude Code, Models in Codex, Models in Gemini CLI, Models in OpenCode. Ask on Discord if you get stuck.