You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Replace Gemini CLI with Antigravity CLI as a supported PTY agent #2473
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.
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/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/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
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/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)
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.
Overview
Google discontinued Gemini CLI for individual/consumer Google accounts. Attempting to authenticate now hard-fails with:
Gemini CLI is registered throughout NodeSpace as a PTY-spawnable agent (
AgentType::GeminiCli) and as a skill-install target (geminiin the skill package'sAgentNameunion). Since it is no longer usable by individual users, it should be replaced outright with Google's designated replacement, Antigravity CLI (binaryagy).Problem Statement
AgentType::GeminiCli/geminiappears 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 thegeminibinary 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/ thegeminiskill target entirely and replace it with a newAgentType::AntigravityCli/antigravitytarget, spawning theagybinary instead ofgemini.Confirmed properties of
agyneeded for the PTY catalog entry:agyreadsAGENTS.mdin the working directory — same convention already used for every non-Claude-Code PTY agent (ContextFile::AgentsMd). No new context-file variant is needed.agy -c/agy --continueresumes 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'sresume_flag: None(checkpoint-based, no single flag) — useagy -c(or--continue) as theresume_flag.agyinstalls viacurl -fsSL https://antigravity.google/cli/install.sh | bash(macOS/Linux) — not abrew installtoday, unlike the current Gemini CLI hint text inpty/detection.rs.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::GeminiCliand thegeminiskill target completely rather than keeping both.Acceptance Criteria
PTY agent catalog / session plumbing
packages/agent/src/agent_types.rs:AgentType::GeminiClivariant removed,AgentType::AntigravityCliaddedpackages/agent/src/acp/registry.rs:AGENT_CATALOGentry for Gemini CLI removed; new entry added for Antigravity CLI (binaryagy,ContextFile::AgentsMd, resume flag-cor--continue, correct auth env vars)packages/agent/src/acp/context_assembly.rs:AgentType::GeminiClireferences replaced withAgentType::AntigravityClipackages/agent/src/pty/detection.rs:AgentType::GeminiClimatch arm and its install hint ("brew install gemini-cli — https://github.com/google-gemini/gemini-cli") replaced with an Antigravity entry pointing atcurl -fsSL https://antigravity.google/cli/install.sh | bashpackages/daemon/src/services/agent_session_service.rs:parse_agent_typeaccepts"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 matchpackages/cli/src/commands/session.rs: agent-selection doc comment ("claude-code, codex, gemini, pi, opencode") updatedpackages/cli/tests/skill_md_generation.rs: any Gemini-specific test cases updated to Antigravitypackages/core/src/models/core_schemas.rs: schema enum value"gemini"/ label"Gemini"replaced with the Antigravity equivalentSkill installer / distribution
packages/skill/src/types.ts:AgentNameunion's'gemini'replaced with'antigravity'packages/skill/src/agents.ts:AGENTSarray'sgeminientry removed;antigravityentry added with correctdetectionDir/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 withpackages/skill/shims/antigravity/implementing whatever plugin/tool format Antigravity actually supportspackages/skill/package.jsondescription 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.jsondescription,shims/gemini/→shims/antigravity/)packages/desktop-app/src-tauri/src/skill_setup.rs: any Gemini-specific detection/install logic replacedpackages/skill/src/tests/installer.test.tsandpackages/skill/src/tests/shim-parity.test.tsupdated to cover the new target instead of GeminiDesktop app UI
packages/desktop-app/src/lib/components/onboarding/onboarding-wizard.svelteupdatedpackages/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.tsupdatedpackages/desktop-app/src/lib/components/viewers/ai-chat-model-selector.svelteandai-chat-pty-session.svelteupdatedpackages/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.tsupdated to reflect the new agent identityDistribution script
scripts/publish-skill-repo.ts: file header comments ("Claude Code, Codex, Gemini CLI, OpenCode") and the Gemini-specificgemini-extension.jsonmarketplace-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.tsupdatedGeneral
packages/orscripts/(a research-context or competitive-analysis mention innodespace-docsis out of scope and unaffected)bun run test:all)bun run quality:fixTechnical Specifications
Reference Files
packages/agent/src/agent_types.rs:194—AgentType::GeminiClivariantpackages/agent/src/acp/registry.rs:47-55— fullAgentDefinitionentry to replacepackages/agent/src/pty/detection.rs:84-85,210— install hint + detection match armpackages/daemon/src/services/agent_session_service.rs:436-531—parse_agent_typeand its testspackages/skill/src/agents.ts:75-86— thegeminiAGENTSentry to replacepackages/skill/src/types.ts:1—AgentNameunionAntigravity CLI facts confirmed during investigation
agy, does not require the Antigravity desktop/IDE appcurl -fsSL https://antigravity.google/cli/install.sh | bash(macOS/Linux),irm https://antigravity.google/cli/install.ps1 | iex(Windows PowerShell)AGENTS.mdas its context file (confirmed compatible with NodeSpace's existingContextFile::AgentsMdconvention)agy -c/agy --continue(most recent) oragy --conversation <id>(specific), scoped to the current working directorygoogle-antigravity/antigravity-cliissue 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 — theacp/module path is legacy naming from before ADR-032 replaced ACP-based transport with PTY spawning.agyonly needs to be PTY-spawnable and readAGENTS.md, both of which are confirmed.Non-Goals
packages/skill/src/agents.ts'sdetectionDir/installDirand theshims/antigravity/files can be written correctly — implementer should research this as part of the work, since no NodeSpace source currently documents it.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.)auth_env_varsin the registry entry.Related Issues