Key Takeaways
- GitHub Copilot retired six AI models on September 1, 2026, including Gemini 3.1 Pro and Raptor Mini, breaking copilot.el configurations for Emacs users with no automatic fallback.
- GitHub recommends migrating to Claude Opus 5, Claude Sonnet 5, Gemini 3.6 Flash or Gemini 3.7 Flash; annual individual subscribers retain access to Claude Sonnet 4.6 past the cutoff, but enterprise customers do not. GitHub gave 30 days’ notice in July 2026, but September 1 arrived and six Copilot models went dark anyway. Emacs users running copilot.el got broken completions and no automatic fallback. The affected list covers Gemini 3.1 Pro, both Opus and Sonnet variants of Claude 4.5 and 4.6, and Raptor Mini. Reconfiguring is straightforward; knowing you need to is the problem.
How copilot.el Works
copilot.el is an Emacs client for the GitHub Copilot language server. It translates Emacs editing events into requests the server understands and renders suggestions back into the buffer. Early versions reverse-engineered the protocol from the copilot.vim plugin, which made the package fragile and kept maintainers chasing undocumented changes.
That changed in February 2026 with version 0.4, when the package migrated to the official textDocument/inlineCompletion LSP method provided by @github/copilot-language-server. The move gave copilot.el a stable foundation: legitimate LSP client behaviour, proper workspace folder management, server-to-client request handling, and clean shutdown sequences. As our coverage of Emacs Copilot v0.4 noted at the time, the architectural shift also brought Next Edit Suggestions, which go beyond fill-in-the-middle completion to offer broader code transformations based on surrounding context. MCP server support, introduced in 2025, enables copilot-chat to call external tools and interact with multiple LLMs.
What the Deprecations Break
The six retired models, Gemini 3.1 Pro, Claude Opus 4.5, Claude Opus 4.6, Claude Sonnet 4.5, Claude Sonnet 4.6 and Raptor Mini, are gone from all GitHub Copilot experiences, including IDE integrations. Any copilot.el configuration with a hardcoded reference to one of these models now fails silently or errors out, depending on how the request is formed.
GitHub recommends moving to Claude Opus 5, Claude Sonnet 5, Gemini 3.6 Flash or Gemini 3.7 Flash. The fix in Emacs is either updating the copilot-chat-model variable directly or running M-x copilot-select-completion-modelwhich queries the Copilot server for models available on the user’s subscription and persists the selection. One carve-out: individual GitHub Copilot subscribers on annual plans retain access to Claude Sonnet 4.6 past the September 1 cutoff, according to GitHub’s deprecation notice. Enterprise customers have no such grace period.
For teams already wrestling with Copilot configuration inside Emacs this deprecation adds another layer of maintenance overhead. Cloud-hosted model availability is controlled entirely by the provider, and local tooling has no fallback unless it is explicitly built to handle model-not-found responses.
The Agentic Layer
Beyond completions, copilot.el now supports a copilot-menu transient interface that centralises commands for completions, chat, agent mode and server management, with a live readout of the current chat model and agent mode status. In agent mode, the AI can read and edit buffers, list directories, search with ripgreprun shell commands and interact with Git.
The lqdev/copilot-emacs project, built on copilot-sdk-elisptakes this further. It frames Emacs as an AI-native operating system where every subsystem is a callable tool: org-mode for task management, describe-function and list-keybindings for introspection, arbitrary Elisp evaluation for runtime self-modification. Whether that vision holds under real workloads depends on how well the agent handles Emacs’s single-threaded execution model under heavy tool use, which the project does not yet fully address.
Local LLMs as a Fallback
The deprecation cycle is one reason some Emacs developers have moved toward local inference. The jart/emacs-copilot package, distinct from copilot-emacsuses llamafile to stream tokens from a locally running model directly into Emacs buffers. It supports models including WizardCoder 34b and Phi-2, keeps editing history on a per-file basis, and sends no code to external servers.
Performance depends on hardware. WizardCoder 34b needs something in the range of a Mac Studio M2 Ultra; smaller models run acceptably on CPU-only systems with AVX2 support. The llm.el package takes a different approach, providing an abstraction layer across multiple providers, including free and local models, so users can switch backends without rewriting integration code. Neither option closes the quality gap between local and frontier cloud models, but both remove the dependency on any single provider’s deprecation schedule.
Maintenance as a Constant
Bozhidar Batsov’s stewardship of copilot.el drove the LSP migration that stabilised the package in early 2026. That kind of maintainer continuity matters because the pace of upstream change is relentless: model deprecations, API revisions, new agent capabilities, shifting best practices. The September 1 cutoff is not exceptional; it is the normal operating rhythm of cloud-hosted AI services.
The lqdev/copilot-emacs project documentation notes that agentic actions involve round trips to external servers or local inference processes, and that those delays are perceptible in an editor built around sub-millisecond keystroke response. Token context limits create a second ceiling the project also acknowledges: LLMs can only hold so much project context at once, which means agents doing multi-file work have to make choices about what to read and when. The document handling limitations that affect frontier models in benchmark settings show up in practice here too, particularly when agents are asked to reason across large codebases.
Originally published at https://autonainews.com/github-copilot-drops-six-ai-models-breaking-copilotel-completions/
Top comments (0)