# GitHub Copilot Fusion Copilot Fusion is the "model" you pick in [[GitHub Copilot]] when you don't want to pick a model. You select Copilot Fusion and an effort level in the model picker, and for each prompt Copilot decides which models to call and how to combine them. You get one answer back. It went generally available on 28 October 2026, at GitHub Universe. It merges two things that existed before: auto model selection (one prompt, the one model that fits best) and Project HydraFusion, a research preview that ran several models on the same task. Why it matters to me: until now, [[Model routing]] and [[AI Model Cascades]] were things you built yourself, with [[OpenRouter]], a gateway, or your own scripts. Here, the biggest coding tool on the market ships both, plus a critique loop, as the default way to use it. ## How it works Fusion reads each prompt and scores it on reasoning, code generation, debugging and tool use. It also looks at the health and availability of each model at that moment. Then it picks one of three workflows: - **Single**: one model does the task. That's the cheap and fast path, and the default for easy work - **Cascade**: an efficient model writes a draft, and a judge accepts it or escalates to a stronger model. That's the classic [[AI Model Cascades|model cascade]] - **Critique**: one model drafts, several models review it in parallel, and the first model revises with the combined feedback. In HydraFusion, the critic came from a different model family than the drafter, so they don't share the same blind spots The choice is made per prompt, so one session can mix the three. Routing only changes at natural cache boundaries or when the conversation gets a lot more complex. That's smart: switching model in the middle of a conversation throws away the prompt cache and makes you pay the full input price again. HydraFusion's research post describes a few rules I find worth copying for any multi-model setup: - Pick the least complex workflow expected to meet the quality bar. Add model calls only when they are likely to improve the result - Critics run in isolated contexts, without tools. Only the solver touches the workspace - Count the cost of every leg, retries and fallbacks included - Never apply a patch when the workflow is cancelled or fails validation - Show the stages while it works, but not the intermediate drafts, because they may be thrown away The router itself was not hand-tuned. The team used beam search over candidate policies and measured each one against a frozen baseline on quality, cost and failure modes. ## Effort levels | Level | For | Plans | |---|---|---| | Fusion Standard | Everyday coding; one model per task in most cases | All plans | | Fusion High | Complex bugs, multi-file changes, where extra model calls pay off | Pro+, Max, Business, Enterprise | | Fusion Max | The hardest tasks and the deepest reasoning | Pro+, Max, Business, Enterprise | | Fusion Fast | Not selectable; used for inline chat in VS Code | All plans | Free, Student and Pro users only get Standard. ## Local models Also on 28 October, GitHub put local model routing in experimental preview. Fusion Standard can then choose between a model on your machine and a cloud model, per request. Two ways to set it up: - **Managed (Windows only)**: download [[MAI-Code-1.1-Flash]] through the Windows ML provider, in the [[GitHub Copilot CLI]] (`/model` with experimental mode on), the [[GitHub Copilot App]] (Settings > Model providers, then "Local model auto routing" under Experiments), or VS Code (`chat.copilot.localModel.enabled`) - **[[Bring Your Own Key (BYOK)|Bring your own model]]**: serve MAI-Code-1.1-Flash or [[Qwen3.8-Flash-Next]] through a local OpenAI-compatible server. This works on Windows, macOS and Linux in the CLI. Adding any other model through BYOK doesn't make it eligible for Fusion Two caveats from GitHub itself. First, local inference does NOT make your session offline: the routing decision still happens in the cloud. Second, local models may not have the same safety protections as the cloud ones. And you need the hardware: MAI-Code-1.1-Flash wants about 53 GB for the weights alone. ## Numbers From the launch post: in the [[Artificial Analysis]] Coding Agent Index, Fusion Max scored 60, within two points of [[Claude Code]] running [[Claude Opus 5.5]] Max. GitHub says it did that for about half the API cost per task, about half the tokens, and about 40% less time per task. From the HydraFusion research post (4 September 2026, offline, all models at medium reasoning), best configuration against [[Claude Opus 5]]: | Benchmark | Quality vs Opus 5 | Cost vs Opus 5 | |---|---|---| | TerminalBench 2.1 | +4.9 points | 67% lower | | DeepSWE | -1.5 points | 36% lower | | CheckpointBench (internal, built from real Copilot sessions) | -0.1 points | 65% lower | Read these with care. The team tuned against the same benchmarks it reports, TerminalBench 2.1 is close to saturated, and two of the three rows are slightly below the baseline. My summary: "about the same quality for a third to two thirds less money", not "better than Opus". ## Billing and admin - You pay each model Fusion calls at that model's normal rate, in AI credits. There's no Fusion fee on top. High and Max use more credits than Standard - Paid plans get 30% off model costs when using Fusion until 30 November 2026 - Fusion only uses models your plan and your organization's policies allow. Enterprise admins can see the pool, and disable a model for Fusion only - Admins can make Fusion (at any effort level) the default model through [[GitHub Copilot Managed Settings]] - If you used auto, HydraFusion or HydraFusion Max during the preview, your choice moves to the matching Fusion level automatically ## Limitations - Fusion doesn't start subagents - Discarded drafts don't undo changes in the workspace. Review the diff before you commit - It has no context window of its own. The picker shows the smallest limit among the models in the pool - The model pool isn't published and changes over time. In October 2026, HydraFusion's pool was Claude Opus 5.5, [[GPT-6 Astra]], [[GPT-6.1 Sol]] and [[GPT-6 Luna]] - HydraFusion was best at first-turn, well-scoped tasks. GitHub called strong multi-turn performance future work ## My take I like it. Picking a model per task is a chore, and it's easy to get wrong in both directions: Opus for a rename, a small model for a hard refactor. I've done both. A router that also knows when to ask for a second opinion is the right default. It's the same idea I use in my own agent system with [[AI Subagents]] on cheaper models, but here you don't have to build anything. What I'd watch: you give up control and visibility. You don't know which model wrote your code unless you dig, the pool changes without notice, and the bill is the sum of every leg. On a hard task in Max, that sum can surprise you. For predictable work I still want to choose the model myself. ## References - Changelog, "Route and orchestrate models with GitHub Copilot Fusion" (2026-10-28): https://github.blog/changelog/2026-10-28-route-and-orchestrate-models-with-github-copilot-fusion/ - Changelog, "GitHub Copilot Fusion now supports selection of local models" (2026-10-28): https://github.blog/changelog/2026-10-28-github-copilot-fusion-now-supports-selection-of-local-models - Changelog, "HydraFusion updates and new Max option" (2026-10-14): https://github.blog/changelog/2026-10-14-hydrafusion-updates-and-new-max-option - GitHub Blog, "Project HydraFusion: Frontier quality via multi-model orchestration" (2026-09-04): https://github.blog/ai-and-ml/github-copilot/project-hydrafusion-frontier-quality-via-multi-model-orchestration/ - Docs, Copilot Fusion: https://docs.github.com/copilot/concepts/models/copilot-fusion - Docs, auto model selection: https://docs.github.com/copilot/concepts/models/auto-model-selection - Community discussion: https://github.com/orgs/community/discussions/211017 ## Related - [[GitHub Copilot]] - [[Model routing]] - [[AI Model Cascades]] - [[AI Agent Orchestration]] - [[AI Subagents]] - [[MAI-Code-1.1-Flash]] - [[Qwen3.8-Flash-Next]] - [[GitHub Copilot Managed Settings]] - [[Artificial Analysis]] - [[OpenRouter]]