Repository navigation
Conversation
Google retired the Gemini CLI for individual accounts on 2026-06-18 in favour of the Antigravity CLI (`agy`). The `gemini` provider now drives `agy acp` (Agent Client Protocol) instead of `gemini --output-format stream-json`. The provider id stays `gemini`, so sessions, settings, the chat UI and the Gemini API paths are unchanged. - Each turn starts `agy acp`, runs initialize, then session/new (or session/load to continue a conversation, skipping the replayed history), session/set_model, session/set_mode and session/prompt. - Permission requests arrive before a tool runs and are answered from the allow/deny lists (Claude-style names, plus the old Gemini CLI names users may have saved) or by asking the user, as for Claude. acceptEdits and plan map to agy's accept-edits and plan modes; bypass passes --dangerously-skip-permissions. Headless print mode can't ask before a tool runs, which is why ACP is used. - Session updates become the existing gemini-* chat messages: text deltas, thinking, tool cards (run_command -> Bash, write_file -> Write, edit_file -> Edit, read_file -> Read, ...), plan -> TodoWrite, usage -> token budget. Dr. Claw keeps writing ~/.gemini/sessions/<id>.jsonl for history and search. - agy is found via ANTIGRAVITY_CLI_PATH, ~/.local/bin/agy (the installer default, often missing from the desktop app's PATH), then PATH. - Login status and the model list come from `agy models`, which needs a signed-in account (agy has no status command); the Gemini API catalogue is the fallback. Install hints, the login terminal command, shell resume (`agy --conversation <id>`), labels and docs now point at Antigravity. - The unused Gemini CLI stream parsing and helpers are removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 tasks done
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Google retired the Gemini CLI for individual accounts on 2026-06-18; its replacement is the Antigravity CLI (
agy). This PR switches Dr. Claw'sgeminiprovider fromgemini --output-format stream-jsontoagy acp(Agent Client Protocol). The provider id staysgemini, so existing sessions, settings, chat UI and the Gemini API code paths are unchanged.Why ACP rather than
agy -p --output-format stream-jsonTested against agy 1.5.1:
--dangerously-skip-permissionsworked.session/request_permissionbefore a tool runs, so Dr. Claw can answer from its allow/deny lists or ask the user, exactly as it does for Claude. ACP also carries full tool arguments (e.g. file contents for writes), modes, models, usage, andsession/loadto continue a conversation.How a turn works (
server/gemini-cli.js)Start
agy acp, sendinitialize.Open the conversation:
session/new;session/load, ignoring the history agy replays during the load;Configure the session:
session/set_model: Gemini API ids such asgemini-3.8-flashmap to agy'sgemini-3.8-flash-high; if no agy model matches, agy's default stays;session/set_mode:default,accept-editsorplan. Bypass mode instead passes--dangerously-skip-permissions.Send
session/prompt, stream updates to the chat, then stop the process.Answer permission requests:
Bash(git log:*),Write, …) and also the old Gemini CLI names users may have saved (run_shell_command,write_file, …);Map session updates to the existing
gemini-*chat messages:run_command→ Bash,write_file→ Write,edit_file→ Edit,read_file→ Read/LS, …;plan→ TodoWrite;Dr. Claw keeps writing
~/.gemini/sessions/<id>.jsonl, so history and session search keep working; agy does not document its own storage.Stop:
session/cancelbefore the process is signalled.Also changed
ANTIGRAVITY_CLI_PATH, then~/.local/bin/agy(the installer default, which the desktop app's PATH often lacks), thenagyon PATH.agy models, which needs a signed-in account (agy has no status command). The result is cached for a minute. Model discovery falls back to the Gemini API catalogue, then the built-in list.curl -fsSL https://antigravity.google/cli/install.sh | bash, PowerShell on Windows);agy;agy --conversation <id>;GEMINI_CLI_PATHreplaced byANTIGRAVITY_CLI_PATH.gemini-cli.js1365 → ~770 lines)..agents/skillslinks. Skill folders are deliberately not passed with--add-dir: in testing, agy then ran commands and wrote files in the skills folder instead of the project.Not in this PR
session/newyet (mcpServers: []).-high/-medium/-low).Test plan
npx vitest run: 574 tests pass, including the newserver/__tests__/antigravity-acp.test.mjs:agy acpcovering a full turn: allow-list auto-approval, deny list,session/loadwithout history replay, bypass flag, accept-edits mode, and a clear error when agy is missing;agy models.npm run typecheckspawnGeminiin a scratch project:lsand file write auto-approved from the allow list;.agents/skills;session/load;🤖 Generated with Claude Code