Skip to content

Replace Gemini CLI with Antigravity CLI as a supported PTY agent #2473

Description

@malibio

Overview

Google discontinued Gemini CLI for individual/consumer Google accounts. Attempting to authenticate now hard-fails with:

This client is no longer supported for Gemini Code Assist for individuals. To continue using Gemini, please migrate to the Antigravity suite of products.

Gemini CLI is registered throughout NodeSpace as a PTY-spawnable agent (AgentType::GeminiCli) and as a skill-install target (gemini in the skill package's AgentName union). Since it is no longer usable by individual users, it should be replaced outright with Google's designated replacement, Antigravity CLI (binary agy).

Problem Statement

AgentType::GeminiCli / gemini appears as a first-class, hardcoded agent identity across the PTY session catalog, the daemon's session service, the CLI, the skill installer, and multiple desktop-app UI surfaces. All of these currently assume the gemini binary is a viable, authenticatable PTY agent. It is not, for any individual/consumer account, and there is no migration path back — Google's replacement is a different binary with a different name.

Proposed Solution

Remove AgentType::GeminiCli / the gemini skill target entirely and replace it with a new AgentType::AntigravityCli / antigravity target, spawning the agy binary instead of gemini.

Confirmed properties of agy needed for the PTY catalog entry:

  • Context file: agy reads AGENTS.md in the working directory — same convention already used for every non-Claude-Code PTY agent (ContextFile::AgentsMd). No new context-file variant is needed.
  • Resume: agy -c / agy --continue resumes the most recent conversation scoped to the current working directory; agy --conversation <id> resumes a specific one. This is a real resume flag, unlike Gemini CLI's resume_flag: None (checkpoint-based, no single flag) — use agy -c (or --continue) as the resume_flag.
  • Install: agy installs via curl -fsSL https://antigravity.google/cli/install.sh | bash (macOS/Linux) — not a brew install today, unlike the current Gemini CLI hint text in pty/detection.rs.
  • Auth env vars: not yet confirmed — needs verification during implementation (Gemini CLI used GEMINI_API_KEY/GOOGLE_API_KEY; Antigravity's equivalent, if any, needs to be checked against its actual auth docs rather than assumed).

Per repo convention (CLAUDE.md: no backward compatibility, no dual-support, no deprecation period for pre-release code): this is a straight replacement. Delete AgentType::GeminiCli and the gemini skill target completely rather than keeping both.

Acceptance Criteria

PTY agent catalog / session plumbing

  • packages/agent/src/agent_types.rs: AgentType::GeminiCli variant removed, AgentType::AntigravityCli added
  • packages/agent/src/acp/registry.rs: AGENT_CATALOG entry for Gemini CLI removed; new entry added for Antigravity CLI (binary agy, ContextFile::AgentsMd, resume flag -c or --continue, correct auth env vars)
  • packages/agent/src/acp/context_assembly.rs: AgentType::GeminiCli references replaced with AgentType::AntigravityCli
  • packages/agent/src/pty/detection.rs: AgentType::GeminiCli match arm and its install hint ("brew install gemini-cli — https://github.com/google-gemini/gemini-cli") replaced with an Antigravity entry pointing at curl -fsSL https://antigravity.google/cli/install.sh | bash
  • packages/daemon/src/services/agent_session_service.rs: parse_agent_type accepts "antigravity-cli" (or the chosen canonical string) instead of "gemini-cli"; doc comment and error message listing valid agent types updated; existing unit tests updated to match
  • packages/cli/src/commands/session.rs: agent-selection doc comment ("claude-code, codex, gemini, pi, opencode") updated
  • packages/cli/tests/skill_md_generation.rs: any Gemini-specific test cases updated to Antigravity
  • packages/core/src/models/core_schemas.rs: schema enum value "gemini" / label "Gemini" replaced with the Antigravity equivalent

Skill installer / distribution

  • packages/skill/src/types.ts: AgentName union's 'gemini' replaced with 'antigravity'
  • packages/skill/src/agents.ts: AGENTS array's gemini entry removed; antigravity entry added with correct detectionDir/installDir (Antigravity's actual config directory convention must be confirmed first — see Non-Goals)
  • packages/skill/shims/gemini/ directory (nodespace-handler.ts, nodespace-tools.json) removed; replaced with packages/skill/shims/antigravity/ implementing whatever plugin/tool format Antigravity actually supports
  • packages/skill/package.json description string updated (drop "Gemini CLI", add "Antigravity CLI")
  • packages/desktop-app/src-tauri/resources/skill/ — the bundled copy of the skill package shipped inside the Tauri app — updated to match (package.json description, shims/gemini/ → shims/antigravity/)
  • packages/desktop-app/src-tauri/src/skill_setup.rs: any Gemini-specific detection/install logic replaced
  • packages/skill/src/tests/installer.test.ts and packages/skill/src/tests/shim-parity.test.ts updated to cover the new target instead of Gemini

Desktop app UI

  • packages/desktop-app/src/lib/components/onboarding/onboarding-wizard.svelte updated
  • packages/desktop-app/src/lib/components/agents/ai-onboarding-dialog.svelte: copy referencing "Gemini CLI" updated to "Antigravity CLI" (lines currently read "Connect to Claude Code, Gemini CLI, or other ACP-compatible agents" and "Install Claude Code, Gemini CLI, or another ACP-compatible agent to get started" — see Non-Goals re: the "ACP-compatible" phrasing itself)
  • packages/desktop-app/src/lib/stores/agent-store.svelte.ts updated
  • packages/desktop-app/src/lib/components/viewers/ai-chat-model-selector.svelte and ai-chat-pty-session.svelte updated
  • packages/desktop-app/src/tests/stores/agent-store.test.ts, packages/desktop-app/src/tests/components/ai-chat-model-selector.test.ts, packages/desktop-app/src/tests/components/onboarding-wizard-skill-reporting.test.ts, packages/desktop-app/src/tests/components/status-bar.test.ts updated to reflect the new agent identity

Distribution script

  • scripts/publish-skill-repo.ts: file header comments ("Claude Code, Codex, Gemini CLI, OpenCode") and the Gemini-specific gemini-extension.json marketplace-format note updated to describe Antigravity's actual extension/plugin manifest format (or noted as still using clone-and-copy, if Antigravity has no native marketplace mechanism)
  • scripts/publish-skill-repo.test.ts updated

General

  • No remaining case-insensitive references to "gemini" as an agent identity anywhere in packages/ or scripts/ (a research-context or competitive-analysis mention in nodespace-docs is out of scope and unaffected)
  • Tests pass (bun run test:all)
  • Code passes bun run quality:fix

Technical Specifications

Reference Files

  • agent_types.rs: packages/agent/src/agent_types.rs:194 — AgentType::GeminiCli variant
  • registry.rs: packages/agent/src/acp/registry.rs:47-55 — full AgentDefinition entry to replace
  • detection.rs: packages/agent/src/pty/detection.rs:84-85,210 — install hint + detection match arm
  • agent_session_service.rs: packages/daemon/src/services/agent_session_service.rs:436-531 — parse_agent_type and its tests
  • agents.ts: packages/skill/src/agents.ts:75-86 — the gemini AGENTS entry to replace
  • types.ts: packages/skill/src/types.ts:1 — AgentName union

Antigravity CLI facts confirmed during investigation

  • Standalone terminal binary agy, does not require the Antigravity desktop/IDE app
  • Install: curl -fsSL https://antigravity.google/cli/install.sh | bash (macOS/Linux), irm https://antigravity.google/cli/install.ps1 | iex (Windows PowerShell)
  • Reads AGENTS.md as its context file (confirmed compatible with NodeSpace's existing ContextFile::AgentsMd convention)
  • Resume via agy -c / agy --continue (most recent) or agy --conversation <id> (specific), scoped to the current working directory
  • Does not natively support ACP (Agent Client Protocol) — only unofficial third-party adapters exist (tracked upstream as an open feature request, google-antigravity/antigravity-cli issue Enhanced Visual Parent/Child Relationships with Connecting Lines #31). This is not a blocker for this issue: NodeSpace's PTY agent catalog (ADR-032) spawns agents as plain PTY subprocesses, not over ACP JSON-RPC — the acp/ module path is legacy naming from before ADR-032 replaced ACP-based transport with PTY spawning. agy only needs to be PTY-spawnable and read AGENTS.md, both of which are confirmed.

Non-Goals

  • Does not resolve Antigravity's exact skill/plugin discovery convention (config directory location, manifest format, whether it follows the Agent Skills spec or something bespoke). This needs its own investigation before packages/skill/src/agents.ts's detectionDir/installDir and the shims/antigravity/ files can be written correctly — implementer should research this as part of the work, since no NodeSpace source currently documents it.
  • Does not address the stale "ACP-compatible agents" phrasing in ai-onboarding-dialog.svelte's UI copy as a general correctness issue — only the "Gemini CLI" → "Antigravity CLI" substitution within it. (The phrasing is inaccurate per ADR-032, which replaced ACP transport with PTY spawning, but fixing that terminology globally is a separate, smaller cleanup outside this issue's scope.)
  • Does not confirm Antigravity's actual auth environment variables — implementer must verify against Antigravity's real auth documentation before hardcoding auth_env_vars in the registry entry.

Related Issues

  • None found — no existing issue tracks this.

Activity

  1. malibio commented on Sep 8, 2026

    @malibio
    CollaboratorAuthor

    Frontend: 4925 passed (238 test files)

  2. self-assigned this
    on Sep 8, 2026
  3. added 3 commits that reference this issue on Sep 8, 2026
    a954ae6
    bee802d
    975963a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions