Skip to content

Remove discontinued Gemini CLI channel - #5219

Closed
rdself wants to merge 8 commits into
diegosouzapw:release/v3.8.40from
rdself:coder/remove-gemini-cli-channel
Closed

rdself wants to merge 8 commits into
diegosouzapw:release/v3.8.40from
rdself:coder/remove-gemini-cli-channel

Conversation

@rdself

@rdself rdself commented Jun 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Google permanently shut down the Gemini CLI channel on June 18, 2026. AntiGravity CLI is now the replacement channel for the Google CLI-style flow, so this removes the discontinued Gemini CLI surface instead of leaving dead provider, auth, and UI paths behind.

This PR removes:

  • the gemini-cli provider registry entry, executor, headers helper, translator format registrations, free-tier rows, pricing/subscription references, model aliases, and usage/token-refresh paths
  • Gemini CLI OAuth import/export/apply API routes, local auth import helpers, dashboard import/apply UI, provider icon, setup command, CLI catalog entry, and related tests
  • Gemini CLI environment variables and documentation/i18n references

It keeps the supported gemini, gemini-web, Vertex Gemini, and Antigravity/Agy paths intact. The Antigravity ZIP auth route now uses a generic JSON ZIP extractor after the Gemini CLI-specific helper was removed.

The branch is rebased on release/v3.8.39 at 5f061ac360c7602e4ee77e24203717ae88d2ebff. During the rebase, the README conflict was resolved by keeping the new Antigravity remote-login note while removing the discontinued Gemini CLI setup item. The deprecated i18n auto-translation default model was also changed from gc/gemini-3-flash to gemini/gemini-3-flash.

Compatibility with #5216

This follow-up also preserves the Antigravity response registration split from #5216 in open-sse/translator/response/gemini-to-openai.ts. That keeps the final file shape compatible with #5216 while removing the now-invalid FORMATS.GEMINI_CLI registration.

Both merge directions were checked locally:

CI Follow-up

CI exposed an unrelated cloudflared quick-tunnel state-file race while this PR was running. The exit handler could resolve the state-file path again after an async boundary, so a test teardown or environment restore could make the mkdir and write target different directories. This PR includes the minimal fix: capture the state-file path once inside writeStateFileNow() and mkdir the captured parent before writing.

Testing

  • node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/translator-resp-gemini-to-openai.test.ts tests/unit/translator-openai-to-gemini.test.ts tests/unit/translator-openai-to-gemini-sse.test.ts tests/integration/chat-pipeline.test.ts
  • node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/gemini-midstream-error-4177.test.ts tests/unit/usage-utils.test.ts
  • node --import tsx/esm --import ./tests/_setup/isolateDataDir.ts --test tests/unit/vscode-token-routes.test.ts
  • node --import tsx/esm --import ./tests/_setup/isolateDataDir.ts --test tests/unit/cloudflaredTunnel-extended.test.ts
  • node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/oauth-providers-config.test.ts tests/unit/oauth-redirect-uri-mismatch.test.ts tests/unit/cli-tools.test.ts tests/unit/cli-tools-schema.test.ts tests/unit/cli-catalog-counts.test.ts tests/unit/cli-catalog-acpspawnable.test.ts tests/unit/cli-catalog-newentries.test.ts tests/unit/model-alias-seed.test.ts tests/unit/modelsDevSync.test.ts tests/unit/pricing-sync.test.ts tests/unit/provider-models-route.test.ts tests/unit/provider-validation-branches.test.ts tests/unit/usage-providers.test.ts tests/unit/usage-service-hardening.test.ts tests/unit/service-token-refresh.test.ts tests/unit/token-health-check.test.ts tests/unit/free-tier-catalog.test.ts open-sse/services/__tests__/tierResolver.test.ts tests/unit/vscode-token-routes.test.ts tests/unit/guide-settings-route.test.ts tests/unit/cliproxy-auth-import-1934.test.ts @omniroute/opencode-plugin/tests/gemini-sanitize.test.ts @omniroute/opencode-plugin/tests/config-shim.test.ts
  • npm run typecheck:core
  • npm run check:docs-all (passes; existing soft doc drift/stale-version warnings remain)
  • npm run check:file-size
  • npm run lint (passes with existing warnings only)
  • git diff --check
  • direct scan for Gemini CLI symbols/env/routes: no matches outside changelog history

@rdself
rdself requested a review from diegosouzapw as a code owner June 28, 2026 08:45
Copilot AI review requested due to automatic review settings June 28, 2026 08:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request removes the deprecated Gemini CLI provider, setup commands, configuration shims, and associated documentation across multiple languages. The review feedback points out several issues introduced by these changes, such as broken HTML table cells, broken ASCII art diagrams, and incorrect list numbering. Additionally, the feedback highlights instances of over-deletion where documentation for other active providers (like Claude Code, Codex, and Copilot) was mistakenly removed and needs to be restored.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread docs/i18n/ar/README.md Outdated
Comment on lines 145 to 148
<td align="center" width="110">
<a href="https://github.com/google-gemini/gemini-cli">
<img src="./public/providers/gemini-cli.svg" alt="Gemini CLI" width="48"/><br/>
<b>Gemini CLI</b>
</a><br/>
<sub>⭐ 94.7K</sub>
</td>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The Gemini CLI provider has been removed, but this empty <td> block with a stray closing </a> tag and the star rating remains. It should be removed entirely to keep the table clean and valid.

Comment thread docs/i18n/ar/README.md
Comment on lines 205 to 206
┌─────────────┐
│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
│ Tool │

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Removing the first line of the ASCII art box breaks the diagram's structure. Instead of deleting the line, we should keep the box intact and simply remove Gemini CLI from the list of tools in the comment.

Suggested change
┌─────────────┐
│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
│ Tool │
┌─────────────┐
│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...)
│ Tool │

Comment thread docs/i18n/ar/README.md
Comment on lines 216 to 217
│
├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
│ ↓ quota exhausted

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Deleting the entire Tier 1 line removes supported subscription providers like Claude Code and Codex from the diagram. We should keep the Tier 1 line and only remove Gemini CLI from it.

Suggested change
│
├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
│ ↓ quota exhausted
│
├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex
│ ↓ quota exhausted

Comment thread docs/i18n/ar/README.md
Comment on lines 348 to 349

Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Deleting the entire paragraph removes important context about OAuth token management for other supported providers (Claude Code, Codex, Copilot). We should restore the paragraph and only remove Gemini CLI from the list.

Suggested change
Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic.
Claude Code, Codex, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic.

Comment thread docs/i18n/ar/README.md
Comment on lines 352 to 353
- **Auto Token Refresh** — OAuth tokens refresh in background before expiration
- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder
- **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Deleting the entire PKCE feature line removes important documentation for other supported providers. We should restore the line and only remove Gemini CLI from the list.

Suggested change
- **Auto Token Refresh** — OAuth tokens refresh in background before expiration
- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder
- **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction
- **Auto Token Refresh** — OAuth tokens refresh in background before expiration
- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Copilot, Kiro, Qwen, Qoder
- **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction

Comment thread docs/guides/FEATURES.md
Comment on lines 129 to 130

One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Deleting the entire description of the CLI Tools section leaves the header without any introductory text. We should restore the description and only remove Gemini CLI from it.

Suggested change
One-click configuration for AI coding tools: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping.
One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping.

Comment thread docs/guides/FEATURES.md
Comment on lines 136 to 137

Dashboard for discovering and managing CLI agents. Shows a grid of 18 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Deleting the entire description of the CLI Agents section leaves the header without any introductory text. We should restore the description, remove Gemini CLI, and update the count of built-in agents to 17.

Suggested change
Dashboard for discovering and managing CLI agents. Shows a grid of 18 built-in agents (Codex, Claude, Goose, Gemini CLI, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with:
Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) with:

Comment thread docs/guides/USER_GUIDE.md Outdated
Comment on lines 85 to 87
Combo: "free-forever"
1. gemini-cli/gemini-3-flash-preview (180K free/month)
2. if/kimi-k2 (unlimited free)
3. qw/qwen3-coder-plus (unlimited free)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

After removing item 1, the remaining items should be renumbered to start from 1.

Suggested change
Combo: "free-forever"
1. gemini-cli/gemini-3-flash-preview (180K free/month)
2. if/kimi-k2 (unlimited free)
3. qw/qwen3-coder-plus (unlimited free)
Combo: "free-forever"
1. if/kimi-k2 (unlimited free)
2. qw/qwen3-coder-plus (unlimited free)

Comment thread docs/guides/USER_GUIDE.md Outdated
Comment on lines 163 to 170
```bash
Dashboard → Providers → Connect Gemini CLI
→ Google OAuth
→ 180K completions/month + 1K/day

Models:
gemini-cli/gemini-3.1-pro-preview
gemini-cli/gemini-3-flash-preview
gemini-cli/gemini-3.1-flash-lite-preview
```

**Best Value:** Huge free tier! Use this before paid tiers.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Since Gemini CLI has been removed, this entire remaining block and its description are now obsolete and should be removed entirely.

Comment thread docs/guides/USER_GUIDE.md Outdated
Comment on lines 264 to 266
Models:
1. gemini-cli/gemini-3-flash-preview (180K free/month)
2. if/kimi-k2 (unlimited)
3. qw/coder-model (unlimited)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

After removing item 1, the remaining items should be renumbered to start from 1.

Suggested change
Models:
1. gemini-cli/gemini-3-flash-preview (180K free/month)
2. if/kimi-k2 (unlimited)
3. qw/coder-model (unlimited)
Models:
1. if/kimi-k2 (unlimited)
2. qw/coder-model (unlimited)

@rdself
rdself marked this pull request as draft June 28, 2026 09:03
@rdself
rdself marked this pull request as ready for review June 28, 2026 09:04
@rdself

rdself commented Jun 28, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the documentation cleanup feedback in 06f7e03:\n\n- restored provider documentation that was over-deleted for Claude Code, Codex, and Copilot\n- fixed the broken README/i18n table cells, ASCII routing diagrams, and list numbering\n- removed the remaining Gemini CLI / gc/ free-tier documentation examples and updated free-combo examples to supported providers\n- rechecked Markdown fence balance, stale Gemini CLI/gc symbol scan, git diff --check, and npm run check:docs-all

@rdself
rdself marked this pull request as draft June 28, 2026 09:05
@rdself
rdself force-pushed the coder/remove-gemini-cli-channel branch from 06f7e03 to 8b53630 Compare June 28, 2026 09:12
@rdself
rdself marked this pull request as ready for review June 28, 2026 09:12
@rdself

rdself commented Jun 28, 2026

Copy link
Copy Markdown
Contributor Author

Rebased this PR on release/v3.8.39 at 5f061ac360c7602e4ee77e24203717ae88d2ebff and resolved the README conflict by keeping the new Antigravity remote-login note while removing the discontinued Gemini CLI setup item. I also replaced the deprecated i18n auto-translator default model from gc/gemini-3-flash with gemini/gemini-3-flash.\n\nRechecked locally after the rebase: targeted Gemini/OpenAI/Antigravity/chat pipeline tests, npm run typecheck:core, npm run check:docs-all, git diff --check, direct stale Gemini CLI symbol scan, and both merge directions with #5216.

@rdself
rdself marked this pull request as draft June 28, 2026 09:14
@rdself
rdself marked this pull request as ready for review June 28, 2026 09:20
@rdself

rdself commented Jun 28, 2026

Copy link
Copy Markdown
Contributor Author

Fixed the Fast Quality Gates failure in b93306c7a. The failure was npm run check:file-size, caused by harmless line-growth from wrapped formatting in three frozen files. I kept the behavior unchanged and reduced those files back under the frozen thresholds instead of increasing the baseline.\n\nRechecked locally: npm run check:file-size, npm run typecheck:core, npm run lint, tests/unit/vscode-token-routes.test.ts, and the targeted Gemini/OpenAI/Antigravity/chat pipeline tests.

@rdself
rdself marked this pull request as draft June 28, 2026 09:31
@rdself
rdself marked this pull request as ready for review June 28, 2026 09:34
@rdself

rdself commented Jun 28, 2026

Copy link
Copy Markdown
Contributor Author

Fixed the unit shard failures in a55a121. The #4177 response-envelope regression now exercises the Antigravity/Cloud Code response path that unwraps envelopes after the #5216 split, and the stale Gemini CLI plan-label unit block was removed along with the discontinued usage path. Rechecked locally: the focused failed shard tests pass, the Gemini/OpenAI translator/chat pipeline suite passes, the VS Code token route suite passes, typecheck passes, check:file-size passes, and git diff --check is clean.

@rdself
rdself marked this pull request as draft June 28, 2026 09:48
@rdself
rdself marked this pull request as ready for review June 28, 2026 09:52
@rdself

rdself commented Jun 28, 2026 •

Copy link
Copy Markdown
Contributor Author

Fixed the CI-only Unit Tests fast-path 2/2 failure in a2ba1ff. The failure was outside the Gemini CLI removal path: tests/unit/cloudflaredTunnel-extended.test.ts hit an ENOENT while an async quick-tunnel exit handler wrote the state file after an environment/teardown boundary. The fix keeps the state write on one captured path by resolving quick-tunnel-state.json once, mkdir-ing that captured parent directory, then writing to the same path.

Rechecked locally: tests/unit/cloudflaredTunnel-extended.test.ts, npm run check:file-size, npm run typecheck:core, and git diff --check.

@rdself

rdself commented Jun 28, 2026 •

Copy link
Copy Markdown
Contributor Author

Fixed the CI unit regression in 2de6426. The #4177 regression test now calls the shared Gemini response translator again, matching this PR narrowed scope after the response-translator split was moved out. The Antigravity/Cloud Code response envelope coverage remains intact; it verifies the shared translator path used by this branch.

Rechecked locally: tests/unit/gemini-midstream-error-4177.test.ts, npm run check:file-size, npm run typecheck:core, and git diff --check.

@rdself
rdself marked this pull request as ready for review June 28, 2026 11:07
@diegosouzapw
diegosouzapw changed the base branch from release/v3.8.39 to release/v3.8.40 June 28, 2026 11:12
@rdself
rdself marked this pull request as draft June 28, 2026 11:13
@rdself
rdself force-pushed the coder/remove-gemini-cli-channel branch from 2de6426 to 5b80a59 Compare June 28, 2026 11:16
@rdself

rdself commented Jun 28, 2026

Copy link
Copy Markdown
Contributor Author

Rebuilt this branch on top of release/v3.8.40 after the PR base changed. The branch now contains only the Gemini CLI removal commits replayed on the new base, so the previous release-file conflict noise is gone.

Rechecked locally on v3.8.40: tests/unit/gemini-midstream-error-4177.test.ts, npm run check:file-size, npm run typecheck:core, npm run check:docs-all, and git diff --check. I also verified merge-tree compatibility with #5224 in both merge orders.

@rdself
rdself marked this pull request as ready for review June 28, 2026 11:16
@diegosouzapw

Copy link
Copy Markdown
Owner

Thanks for this, @rdself — and for the careful split that keeps the Gemini response translator untouched.

We're going to defer and close this one for now, for two reasons:

  1. Scope is a product-level decision, not a review-round merge. This removes ~566 files and a whole credential channel. Discontinuing the Gemini CLI channel is a call we want to make deliberately (and announce), not fold into a routine PR-review pass.

  2. It currently conflicts with in-flight work — including your own. The Antigravity remote-login work we just shipped (feat(oauth): remote Antigravity login via local helper + paste-credentials #5203 paste-credentials) has gemini-cli in its provider allowlist, and your Scope textual thinking tag extraction #5224 deliberately preserves the GEMINI_CLI → OpenAI translator registration. So Remove discontinued Gemini CLI channel #5219 and Scope textual thinking tag extraction #5224 pull in opposite directions on gemini-cli. We need to reconcile the Antigravity/gemini-cli dependencies and settle the product direction first, then sequence the removal cleanly.

Please feel free to reopen / resubmit once we've decided to discontinue the channel and the ordering vs the Antigravity work is sorted — the removal itself is clean, it's just a timing/sequencing and product-decision matter. Really appreciate the contribution.

@rdself
rdself deleted the coder/remove-gemini-cli-channel branch June 29, 2026 02:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants