First, a note on Antigravity CLI
Before comparing, check which tool you can actually use. The Gemini CLI docs carry a banner: on June 18, 2026, Antigravity CLI replaced Gemini CLI for unpaid-tier and Google One users. Everything below describes Gemini CLI per geminicli.com/docs; we have not covered Antigravity CLI here.
Claude Code by Anthropic runs in the terminal, in VS Code and JetBrains extensions, in a desktop app and on the web. Gemini CLI by Google runs in the terminal.
Comparison table
FeatureClaude CodeGemini CLIProject rulesCLAUDE.md, .claude/rules/*.md; AGENTS.md since v2.1.277 when no CLAUDE.md existsGEMINI.md in the folder and parents, ~/.gemini/GEMINI.md; other names via context.fileNameFile imports@path, up to 4 hops@file.md, 5 levels by defaultSkills.claude/skills/, ~/.claude/skills/.gemini/skills/ or .agents/skills/, ~/.gemini/skills/Installing a skill/plugin install, npx skills add <repo> -a claude-codegemini skills install <git-url|dir>, npx skills add <repo> -a gemini-cliSkill activation/name or automatic by descriptionmodel calls activate_skill, user confirmsSubagents.claude/agents/*.md, name and description required.gemini/agents/*.md, name and description required, call with @nameHookssettings.json, 33 events, five handler typessettings.json, 11 events, run synchronouslyMCP.mcp.json, type + url, claude mcp add.gemini/settings.json, url for SSE, httpUrl for HTTP, gemini mcp addPackagingplugin: .claude-plugin/plugin.json, marketplacesextension: gemini-extension.json, gemini extensions installSlash commandsMarkdown, merged into skillsTOML in .gemini/commands/, prompt field, {{args}}Sources: Gemini CLI skills, Gemini CLI subagents, Gemini CLI hooks, Gemini CLI MCP, Claude Code subagents.
What ports between them
Subagents port better than you might expect. Both are Markdown with YAML frontmatter, name and description are required, and the body becomes the system prompt. Optional fields differ (Gemini CLI has max_turns, default 30, and timeout_mins, default 10; Claude Code has permissionMode, isolation and more), so the file loads, but the other side ignores what it does not know.
Skills share the format. Gemini CLI reads .agents/skills, which the Claude Code docs do not mention, so keep a copy in .claude/skills or install with npx skills add for both agents.
Rules: Gemini CLI reads only GEMINI.md by default. Set context.fileName in settings.json, for example ["AGENTS.md", "GEMINI.md"], and one AGENTS.md serves both, with Claude Code pulling it in through an @AGENTS.md line.
Slash commands do not port: Markdown in Claude Code, TOML in Gemini CLI. Plugins and extensions are different formats too.
Where the gap is real
Hooks. Claude Code has 33 events and handlers of type command, http, mcp_tool, prompt and agent. Gemini CLI has 11 events, including BeforeModel, AfterModel and BeforeToolSelection, hook points around the model call itself. Either covers "never run this command". For event-heavy automation, Claude Code gives you more hook points.
MCP. Gemini CLI can filter tools per server with includeTools and excludeTools, and trust: true skips confirmations. We would only use that flag on servers we wrote ourselves. The default timeout is 10 minutes.
Which one fits you
On the Google free tier or Google One, look at Antigravity CLI first, since Gemini CLI has been replaced for you. If marketplace plugins, rich hooks and IDE integration matter, Claude Code covers more. If your team already runs on GEMINI.md and TOML commands, switching for a single feature will not pay off.
Our take: on a new project, keep rules in AGENTS.md and skills within the six standard fields. Then switching agents takes an evening, not a week.
Next: everything for Gemini CLI, everything for Claude Code, Claude Code subagents.