docs(resources): add guide for migrating to Antigravity CLI

This commit is contained in:
Jack Wotherspoon
2026-05-19 14:54:49 -04:00
parent 7478859502
commit a69d422a83
5 changed files with 371 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

@@ -0,0 +1,367 @@
# Migrating to Antigravity CLI
If youre an existing Gemini CLI user looking to migrate your workflow to
Antigravity CLI, youve come to the right place. This guide will help you get
familiar and up and running quickly in Antigravity CLI.
## TL;DR
Antigravity CLI supports the majority of Gemini CLIs features. While there
isnt 100% feature parity, workflow-defining features like _Gemini CLI
extensions_ (Antigravity plugins), _Agent Skills_, _MCP servers_, _hooks_, and
_subagents_ are supported in Antigravity CLI.
On the first launch of Antigravity CLI you should see **Migration Options**
where you can choose to migrate your existing Gemini CLI extensions to the
equivalent _Antigravity Plugins_.
![](/docs/assets/migration-options.png)
_Note: Some Gemini CLI extensions can not be migrated 1:1 to Antigravity plugins
as some components (e.g. custom themes, etc) may not be supported._
For the majority of users, you can now get started using Antigravity CLI with
the workflows youve come to love in Gemini CLI. Antigravity CLI loads in the
same context files, global Agent Skills, etc, as Gemini CLI does.
If you notice something not working the way it should or how you expect, come
back to this guide for **specific details below**.
## Extensions → Antigravity Plugins
Since Gemini CLI launched extensions (a way to extend Gemini CLI by bundling and
sharing capabilities), the industry has standardized on the term **plugins**.
[Antigravity Plugins](https://antigravity.google/docs/plugins) are supported in
Antigravity CLI.
Users should be prompted on first launch of Antigravity CLI to have their
extensions automatically migrated to plugins.
There is also an explicit command that can be run from the terminal to migrate
them:
```shell
agy plugin import gemini
```
Running the above `agy plugin import` command will find each locally installed
extension and convert them to an Antigravity plugin:
```shell
[ok] conductor
- skills : skipped (not found)
- agents : skipped (not found)
✔ commands : 6 processed (converted to skills)
- mcpServers : skipped (not found)
- hooks : skipped (not found)
[ok] google-workspace
✔ skills : 6 processed
- agents : skipped (not found)
✔ commands : 4 processed (converted to skills)
✔ mcpServers : 1 processed
- hooks : skipped (not found)
```
## Context Files (Rules)
Antigravity CLI supports the same context files as Gemini CLI. It supports
reading both `GEMINI.md` and `AGENTS.md` from your workspace and allows you to
have a global context file located at `~/.gemini/GEMINI.md`.
## Agent Skills
Agent Skills work in Antigravity CLI just as they do in Gemini CLI. They can be
managed with the same `/skills` command and are also converted into slash
commands allowing them to be manually invoked.
Global skills for Gemini CLI were located in `~/.gemini/skills/` and are shared
with Antigravity CLI across all workspaces. No action is needed for global
skills, they are picked up automatically.
Workspace specific skills for Antigravity CLI are stored in `.agents/skills`
which means if you have project/workspace skills in a given project within
the`.gemini/skills` folder they will need to be moved from to `.agents/skills`
| | Gemini CLI | Antigravity CLI |
| :------------- | :----------------------------------------------------------------------- | :----------------------------------------------------------------------------------------- |
| **Location** | Global: \~/.gemini/skills/ Workspace: .gemini/skills/ or .agents/skills/ | Global: \~/.gemini/antigravity-cli/skills/ or \~/.gemini/skills Workspace: .agents/skills/ |
| **Management** | /skills | /skills |
| **Behavior** | Skills become slash commands | Skills become slash commands |
_Note: Antigravity CLI does not currently have an equivalent to the
`gemini skills` commands for managing Agent Skills. You can create your own
skills files or use `npx skills install`._
## MCP Servers
Antigravity CLI supports both local and remote MCP servers and provides the same
`/mcp` command to manage MCP servers. The main difference from Gemini CLI is the
file location where `mcpServers` are defined.
![](/docs/assets/mcp-config.png)
Antigravity and Antigravity CLI store MCP server configurations in a distinct
`mcp_config.json` file whereas Gemini CLI stores them inline in your
`settings.json`.
_Note:_ Antigravity CLI uses `serverUrl` field instead of `url` (or deprecated
`httpUrl`) for remote MCP servers.
| | Gemini CLI | Antigravity CLI |
| :------------- | :---------------------------------------------------------------- | :------------------------------------------------------------------------------------ |
| **Location** | Global: \~/.gemini/settings.json Workspace: .gemini/settings.json | Global: \~/.gemini/antigravity-cli/mcp_config.json Workspace: .agents/mcp_config.json |
| **Management** | /mcp | /mcp |
### Local MCP server example
For local MCP servers, your `mcpServers` fields should be the same from Gemini
CLIs `settings.json` as they are in Antigravitys `mcp_config.json`.
For example, to configure the
[Firebase MCP server](https://firebase.google.com/docs/ai-assistance/mcp-server),
put the following in \~/.gemini/antigravity-cli/mcp_config.json to use across
all workspaces (global) or in .agents/mcp_config.json for a single workspace.
```json
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
```
### Remote MCP server example
For remote MCP servers you can copy your `mcpServers` field but need to switch
`url` (or deprecated `httpUrl`) to be `serverUrl` which is the field Antigravity
CLI uses.
For example, here is the
[Google Developer Knowledge MCP server](https://developers.google.com/knowledge/mcp)
configuration for your `mcp_config.json` using the `serverUrl` field for
Antigravity CLI:
```json
{
"mcpServers": {
"google-developer-knowledge": {
"serverUrl": "https://developerknowledge.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": ["https://www.googleapis.com/auth/cloud-platform"]
},
"headers": {
"X-goog-user-project": "$GOOGLE_CLOUD_PROJECT"
}
}
}
}
```
## Subagents
[Subagents in Antigravity CLI](https://antigravity.google/docs/subagents) serve
the same fundamental purpose as in Gemini CLI, acting as **specialized expert
personas** with their _own contexts_ and _tailored toolsets_.
The most critical difference between Gemini CLI and Antigravity CLI is execution
flow:
- **Gemini CLI:** Subagent delegation is **synchronous**. When the main agent
delegates a task to a subagent, your active conversation is blocked until the
subagent completes its work and reports back.
- **Antigravity CLI:** Subagents are **asynchronous by default**. The main agent
can delegate parallel workloads or run background research without blocking
your prompt interface. You can continue conversing with the main agent while
subagents work in the background.
Antigravity CLI also has a `define_subagent` tool. This allows you to spin up
specialized assistants dynamically during an active session.
- _Example Prompt:_
`"Create a frontend specialist subagent that excels at modern website design and accessibility audits."`
### Configuring Custom Subagents
Gemini CLI defines subagents using a single Markdown file containing YAML
frontmatter. Antigravity CLI uses a directory structure separating metadata
manifest (`agent.json`) from declarative configuration (`config.yaml`).
```
agents/
└── frontend-specialist/
├── agent.json # Required marker file (metadata & routing manifest)
└── config.yaml # Declarative configuration (prompts, tools, MCP servers)
```
| Feature | Gemini CLI | Antigravity CLI |
| :--------------------- | :------------------------------ | :---------------------------------------------- |
| **Global Location** | `~/.gemini/agents/*.md` | `~/.gemini/antigravity-cli/agents/*/agent.json` |
| **Workspace Location** | `.gemini/agents/*.md` | `.agents/agents/*/agent.json` |
| **Config Format** | Single `.md` (YAML Frontmatter) | Split: `agent.json` \+ `config.yaml` |
| **Execution Mode** | Synchronous (Blocking) | Asynchronous (Non-blocking) |
| **CLI Management** | `/agents` | `/agents` |
### Example Migration: `frontend-specialist`
Below is a complete walkthrough demonstrating how to migrate a custom Gemini CLI
subagent to Antigravity CLI.
#### Gemini CLI
The subagent for Gemini CLI is configured in
`.gemini/agents/frontend-specialist.md`.
```
---
name: frontend-specialist
description: Frontend specialist in building high-performance, accessible, and
scalable web applications using modern frameworks and standards.
tools:
- read_file
- grep_search
- glob
- list_directory
- web_fetch
- google_web_search
model: inherit
---
You are a Senior Frontend Specialist Your goal is to...
<instructions>
```
#### Antigravity CLI
To migrate this agent, create a new directory named `frontend-specialist` inside
your workspace directory (`.agents/agents/frontend-specialist/`) or your global
directory.
##### 1\. Manifest File (`agent.json`)
This file acts as the discovery marker and registers the agent's metadata.
```json
{
"name": "frontend-specialist",
"description": "Frontend specialist in building high-performance, accessible, and scalable web applications.",
"configPath": {
"relativePathToConfig": "config.yaml"
}
}
```
##### 2\. Declarative Config (`config.yaml`)
This file contains the core instructions and tools available. Notice that
Antigravity CLI uses updated tool names (e.g., `read_file` becomes `view_file`).
```
custom_agent:
system_prompt_sections:
- title: "Role and Core Principles"
content: |
You are a Senior Frontend Specialist Your goal is to...<instructions>
tool_names:
- view_file # Migrated from read_file
- grep_search # Identical
- find_by_name # Migrated from glob
- list_dir # Migrated from list_directory
- read_url_content # Migrated from web_fetch
- search_web # Migrated from google_web_search
# Append standard CLI context sections for smooth execution
system_prompt_config:
include_sections:
- user_information
- messaging
- artifacts
```
#### Notable Tool Mappings During Migration
When migrating your tool lists from Gemini CLI to Antigravity CLI, ensure you
update them to match the new tool names:
| Gemini CLI Tool | Antigravity CLI Equivalent | Description |
| :------------------ | :------------------------- | :--------------------------------------- |
| `read_file` | `view_file` | Reads local file contents. |
| `grep_search` | `grep_search` | Pattern searching within files. |
| `glob` | `find_by_name` | Directory and file discovery by pattern. |
| `list_directory` | `list_dir` | Lists directory structures. |
| `web_fetch` | `read_url_content` | Fetches raw web page content. |
| `google_web_search` | `search_web` | Performs web searches. |
## Hooks
Hooks in Antigravity CLI serve the same core purpose as in Gemini CLI, allowing
you to intercept the agentic loop to customize it to your liking and inject
context, block tools, have the agent continue, etc.
Migrating from Gemini CLI involves moving to a standalone configuration file,
adopting a simplified event model, and utilizing the interactive `/hooks`
command.
| Feature | Gemini CLI | Antigravity CLI |
| :--------------------- | :--------------------------- | :------------------------------------- |
| **Global Location** | `~/.gemini/settings.json` | `~/.gemini/antigravity-cli/hooks.json` |
| **Workspace Location** | `.gemini/settings.json` | `.agents/hooks.json` |
| **Config Format** | Embedded in `settings.json` | Standalone `hooks.json` |
| **Top-Level Grouping** | By Event Type (`BeforeTool`) | By Hook Name (`my-hook-suite`) |
| **Timeout Units** | Milliseconds (e.g., `5000`) | Seconds (e.g., `5`) |
| **CLI Management** | `/hooks` | `/hooks` |
### Supported Hook Events
Here are the supported hook event types in Antigravity and their Gemini CLI
equivalent:
| Antigravity CLI Event | Gemini CLI Equivalent | Lifecycle Timing & Behavior |
| :-------------------- | :-------------------- | :------------------------------------ |
| `PreToolUse` | `BeforeTool` | Executes before a tool call. |
| `PostToolUse` | `AfterTool` | Executes after a tool call completes. |
| `PreInvocation` | `BeforeModel` | Executes before every model call. |
| `PostInvocation` | `AfterModel` | Executes after every model call . |
| `Stop` | `AfterAgent` | Executes when the agent finishes. |
_Note: Antigravity CLI currently supports fewer hook types than Gemini CLI._
If you are migrating custom hook scripts, update them to match Antigravity's
updated JSON contract:
1. **Input Naming:** Payloads use `camelCase` (e.g., `toolCall.name`,
`toolCall.args`) instead of `snake_case`.
2. **Output Flags (`PreToolUse`):** To block a tool, output
`{"allowTool": false, "denyReason": "..."}` instead of
`{"decision": "deny", "reason": "..."}`.
### Interactive Management (`/hooks`)
Rather than manually authoring JSON files and managing syntax formatting,
Antigravity CLI provides a built-in interactive terminal interface to view,
create, and manage hooks through the `/hooks` command.
![](/docs/assets/hooks-ui.png)
1. **Open the Panel:** Type **`/hooks`** into your prompt and press Enter.
2. **Browse Events:** Use the arrow keys to navigate through the available hook
events (`PreToolUse`, `PreInvocation`, etc.).
3. **Create & Edit:** Select an event to add a new regex matcher, assign shell
commands, and set timeout limits directly within the UI dialog.
4. **Toggle State:** Press **`e`** on any configured hook to instantly toggle it
enabled or disabled without losing your configuration data.
5. **Save & Apply:** Changes made in the dialog are automatically validated and
saved back to your `hooks.json` file.
## Migration FAQs
**Q: Will AGY CLI work in headless mode?**
_A:_ Yes, just run `agy -p “Your awesome prompt”`
**Q: Will my chat history be migrated? How will my user context be preserved?**
_A:_ No, Gemini CLI chat sessions and history will not be migrated.
**Q: Will the policies I installed in Gemini CLI be migrated to AGY CLI?**
_A:_ No, Antigravity does not use the same policy engine as Gemini CLI. It uses
its own permissions system which lets you set tools and commands as
`allow|deny|ask` in your Antigravity CLI `settings.json` file.
+4
View File
@@ -261,6 +261,10 @@
"label": "Resources",
"items": [
{ "label": "FAQ", "slug": "docs/resources/faq" },
{
"label": "Migrating to Antigravity CLI",
"slug": "docs/resources/migrating-to-antigravity-cli"
},
{
"label": "Quota and pricing",
"slug": "docs/resources/quota-and-pricing"