Sonnet Code
← Back to all articles
AI DevelopmentJune 17, 2026·9 min read

Google Just Killed an Open-Source CLI on a 30-Day Notice and Replaced It with a Closed-Source Binary — Gemini CLI Stops Serving Free, Pro, and Ultra Requests on June 18, the Migration Target Is the Closed-Source, Go-Based Antigravity CLI With a New Plugin Surface and Asynchronous Multi-Agent Orchestration, and Enterprise License Holders Are Carved Out — The Tooling-Lock-In Risk Just Got a Concrete Case Study, and Every Engineering Team's Coding-Agent Stack Has to Be Re-Audited.

What Google announced on May 19 and the migration the engineering team owns

On May 19, 2026, Google announced that Gemini CLI — the open-source, Node-based command-line agent the company shipped at Google I/O 2025 — would stop serving requests on June 18, 2026 for users on Google AI Pro, Google AI Ultra, and the free tier. After June 18, new installations of Gemini Code Assist for GitHub are blocked at the GitHub organization level, and the GitHub-installed requests stop being served in the following weeks. The migration target is Antigravity CLI — the closed-source, Go-based binary distributed as agy, sharing the agent harness with the Antigravity 2.0 desktop application Google launched at Google I/O 2026.

The operationally important pieces:

  • Closed-source replaces open-source. Gemini CLI was open-source under a public source tree, with a community PR pipeline, public issue tracker, and the standard open-source default-tier hygiene the engineering team had come to expect from the CLI surface. Antigravity CLI is closed-source, distributed as a binary. The team that has been routing Gemini CLI through its CI pipeline, pinning to a specific commit hash, or maintaining a fork against the upstream tree is losing the substrate the team's automation was relying on.
  • The plugin model is new. Prior surfaces — Agent Skills, Hooks, Subagents, Extensions — survive the transition as plugins in the new model. The migration is not a one-to-one drop-in; teams that have invested in custom hooks against the prior surface have to re-author against the plugin API.
  • Asynchronous multi-agent orchestration ships as a first-class feature. Antigravity CLI ships asynchronous workflows that orchestrate multiple agents for complex tasks in the background — the multi-session subagent topology the broader coding-agent category has been moving toward over the last twelve months, now native to the Google substrate.
  • Enterprise license holders are carved out. Organizations with Gemini Code Assist Standard, Gemini Code Assist Enterprise licenses, or GitHub access through Google Cloud keep access to the prior Gemini CLI indefinitely, with paid API keys. The carve-out splits the user base — the enterprise buyer is insulated from the transition; the individual developer, the small team on Pro or Ultra, and the workflow built on the free tier carry the migration cost.
  • Thirty days from announcement to cutoff. The May 19 announcement gave teams thirty days to evaluate the migration target, port hooks to plugins, rewrite automation, retest CI pipelines that route through the CLI, and stand up the new authentication flow against the closed-source binary. The window is short by the standard of enterprise tooling-change-management cycles.

Google's stated rationale frames the move as a feature upgrade — your workflows have simply outgrown those early days of 2025 and users require multiple agents communicating with each other. The asynchronous multi-agent orchestration is a real feature improvement; the multi-agent topology is the right architecture for the workload class the agentic-coding category has been converging on. The harder read is the substrate change underneath the feature: an open-source CLI is being deprecated in favor of a closed-source binary, the license surface has changed, the plugin model is new, and the user base has been split between the enterprise carve-out and everyone else. The engineering team that has been routing the Gemini CLI through its CI and developer workflows is making a different procurement decision than it was making in April.

What the forced migration teaches every team about tooling lock-in

Four concrete lessons that follow from a thirty-day deprecation of an open-source CLI in favor of a closed-source replacement.

The vendor's open-source surface is a feature, not a guarantee. A team adopting an open-source CLI from a major model vendor in 2025 was making an implicit bet that the open-source posture would survive the vendor's release cadence. The Gemini CLI deprecation is the concrete case study against that bet: the open-source surface lasted twelve months, then was replaced by a closed-source binary with a new license and a new plugin model. The lesson is not avoid the vendor's open-source CLI; it's that the open-source posture of the vendor's CLI is a feature subject to the vendor's release decisions, not a structural guarantee the team's automation can plan against.

Closed-source-replaces-open-source is a category shift, not a routine update. A team migrating from open-source to closed-source is changing the substrate the team's audit, debug, and incident-response surfaces are calibrated against. The team that pinned to a specific commit hash, the team that maintained a small patch against the upstream, the team that ran the CLI through a private fork for the team's specific deployment perimeter — none of those workflows survive the transition without re-engineering. The team's incident-response runbook that includes read the source to figure out which guard rail fired is a runbook the team has to rewrite.

Forced migration on a thirty-day notice is a real cost the team did not plan for. The buyer who treats the vendor's CLI as free-tier infrastructure is implicitly carrying the deprecation-risk cost on the team's engineering capacity. When the vendor ships a thirty-day cutoff, the team that has wired the CLI through its CI, its developer workflows, its IDE extensions, and its agent orchestration plane is spending senior-engineering capacity on the migration that the team would otherwise be spending on the product. The cost is real; the cost is also a signal about the team's tooling-substrate decision, which has been less explicit than the team's model-substrate decision.

The enterprise carve-out tells the team where the vendor's commercial incentives sit. The Gemini CLI deprecation preserves access for the paid enterprise license holders; the free-tier and individual-subscriber base carries the migration cost. The vendor's commercial relationship with the enterprise buyer is the relationship the vendor protects in the release cadence; everyone else is in the path of the next release decision. The team that has been planning the coding-agent stack around the vendor's free or low-tier surface is planning against the surface the vendor's commercial discipline does not protect.

The audit the engineering team owes its current coding-agent stack

Four concrete questions that follow from the Gemini CLI case study.

Which of our coding-agent surfaces are wired to a single vendor's CLI? The team audits its coding-agent stack against the question if this vendor deprecates this CLI on thirty days' notice, what breaks? The audit produces a list. The list is the team's current lock-in surface. Items that break catastrophically — the CI pipeline that depends on the CLI being available, the developer workflow that has no fallback, the agent orchestration plane that routes through the CLI's specific orchestration model — are the items the team has to engineer against the next deprecation cycle.

Which of our automation hooks survive a plugin-model transition? The team that has invested in custom hooks against a specific CLI's hook surface is carrying a hidden migration cost the next plugin-model transition will resurface. The audit identifies which hooks could be ported to a different CLI's surface in a week, which would take a month, and which would have to be re-architected from scratch. The cost asymmetry is the team's hidden technical-debt surface against the next deprecation cycle.

Is our model decision wired to a single vendor's tooling surface? A team that has chosen Gemini-the-model is not the same as a team that has wired its workflows to Gemini-CLI-the-tool. The model decision should be a routing decision graded against the workload; the tooling decision should be a substrate decision graded against the team's portability requirements. A team that has collapsed the two decisions into a single vendor relationship is carrying the failure mode the Gemini CLI case study just demonstrated.

Do we have a model-agnostic fallback already standing? The team that adopted a model-agnostic substrate as the default — OpenCode, Aider, Continue, the Agent Client Protocol-compatible editor surfaces, or the team's own CLI built against the Claude Code SDK's primitives — has a fallback against the next deprecation cycle that the team running the single-vendor CLI does not. The fallback is not free; the substrate has its own engineering investment surface. But the fallback's existence is the substrate the team's deprecation-response runbook actually runs against.

The migration discipline the team has thirty days to execute

Four concrete migration steps for the team currently routing Gemini CLI.

Inventory the workflows that depend on the prior surface. Before the migration starts, the team enumerates the CI pipelines, IDE extensions, agent orchestration paths, custom hooks, automation scripts, and developer workflows that route through the prior CLI. The inventory is the migration scope; without the inventory, the migration discovers the breakage in production after the cutoff.

Port the hooks to plugins, validate the parity per workflow. Each hook the team owns gets ported to the new plugin model. Each port gets validated against the workflow the hook lives in, not against a unit test in isolation. The plugin that compiles is not the plugin that behaves the same as the prior hook on the team's specific workload distribution; the validation discipline is the engineering work the migration owes.

Decide whether to migrate or to consolidate against a model-agnostic substrate. The forced migration is the moment the team's tooling-substrate decision becomes visible. The team that re-adopts Antigravity CLI is making a deliberate decision to renew the vendor-specific tooling relationship for the next release cycle. The team that consolidates against a model-agnostic substrate — OpenCode, Aider, Continue, the team's own runner — is making a different decision the next deprecation cycle will not break. Both are defensible; the team that lets the migration happen by default is not making the decision honestly.

Wire the migration into the team's tooling-procurement discipline so the next cycle is not a surprise. The team's coding-agent procurement decision should now include a deprecation-risk question that grades every vendor's CLI against what would the next thirty-day cutoff cost us. The question goes into the team's vendor-evaluation rubric, the procurement contract terms, and the substrate decisions the team makes against each candidate tooling option. The cost the team paid on the Gemini CLI migration is the discipline the team owes the next decision.

What this does not change

Three honest caveats.

Antigravity CLI is a real feature improvement. The asynchronous multi-agent orchestration is the right architecture for the workload class the agentic-coding category is moving toward. The Go-based binary is faster than the prior Node-based CLI. The shared agent harness with Antigravity 2.0 simplifies the team's substrate against the desktop application. The deprecation is a substrate change against an honest feature upgrade; the cost is the migration cost the team is paying, not a regression in the destination tool.

The enterprise carve-out is a real procurement surface. The buyer with the Enterprise license is insulated from the transition. The buyer who has been planning the coding-agent stack around the enterprise commercial relationship — the same buyer who has been signing the vendor-bundled enterprise contracts — gets a different procurement surface than the team building against the vendor's free or low-tier surface. The Gemini CLI deprecation does not change the enterprise procurement surface; it changes the substrate the non-enterprise buyer's tooling decisions sit on.

The deprecation does not eliminate Gemini-the-model from the team's routing matrix. A team that has graded Gemini honestly against its workload distribution and decided Gemini is the right model for a specific workload class still routes that workload to Gemini after the migration. The deprecation is about the tooling surface, not about the model. The team that runs OpenCode or another model-agnostic substrate against Gemini-the-model preserves the routing decision the eval data supports; the team that confused the tool with the model is confusing two distinct procurement objects.

Where Sonnet Code fits

The Gemini CLI deprecation is the case study every engineering team can point to when the tooling lock-in risk conversation comes up in the next procurement cycle. The structural answer is the same answer the model-routing conversation has been converging on: the team's substrate decisions should be portable across vendors by design, the team's eval-and-monitoring discipline should grade each candidate honestly against the workload, and the team's senior-judgment work should decide which substrate lands on which workload from data rather than from the vendor's release cadence.

AI development at Sonnet Code is the engineering work to deliver the portability the substrate decision requires: standing up a model-agnostic coding-agent surface against the team's existing IDE and CI; auditing the team's current tooling stack against the deprecation-risk question and identifying the workflows the next thirty-day cutoff would break; porting the team's custom hooks against a plugin model the team owns; encoding the routing matrix against the team's own eval data per workload class so the model decision and the tooling decision stay separate; and wiring the per-workload-class cost-per-successful-task attribution across the multi-vendor surface so the procurement conversation lands against data the team actually has.

AI training is the human-judgment workload the substrate discipline depends on: senior engineers and domain experts who design the eval gold sets that grade each candidate tool and each candidate model against the team's specific workload distribution; calibrate the senior-review queue against the failure-mode shape each tool exposes; author the deprecation-risk rubric the team's procurement conversation runs against; refresh the gold sets quarterly so the team's routing decisions do not silently drift as the vendor landscape resets; and serve as the senior-judge pool whose calibrated decisions decide which substrate the team adopts when the next vendor's release cycle forces the question.

The forced migration the engineering team is executing this month is the procurement lesson the next cycle's decisions land against. The team that re-audits the coding-agent stack against the deprecation-risk question, consolidates against a model-agnostic substrate where the workload supports it, and wires the tooling decision into the team's procurement-and-eval discipline as a first-class object is the team that walks into the next release cycle with a substrate the next vendor's deprecation announcement does not break. The team that pays the migration cost this month and renews the prior vendor-specific posture against the next CLI is the team paying the same migration cost again at the next release cycle — which is the cost the structural discipline is meant to eliminate, and the cost the senior-engineering surface is calibrated to carry on the team's behalf when the substrate decision is made honestly.