Install and verify the Google Antigravity CLI (command agy)。gemini is the migration source, not the command this skill uses to determine whether it is installed; the Agent operates the terminal, and the customer completes sign-in only in Google's official interface.
Customer-readable description
What this skill can do
| Customer wants | Skill will do | Customer can see |
|---|---|---|
| Install agy | Check the system architecture and existing commands, and use Google's official installation entry point | Version, installation directory, and runnable verification |
| Migrate from Gemini CLI | Check separately gemini and agy, and generate a plan according to the official migration instructions |
Which is the old command, which configurations can be migrated, and which need confirmation |
| Check or update | Read Google's official platform manifest; after explicit authorization, invoke agy update |
Current version, latest version, and processing result |
| Sign in or troubleshoot | Start the official sign-in and check PATH, credential store, and configuration directory | Browser steps or blocking reason |
How the customer uses it
Other recognizable phrasings include "install Antigravity CLI" and "update agy to the latest".
- The customer says "install agy" or "migrate Gemini CLI to Antigravity"; the customer is not required to operate the terminal.
- The Agent first performs read-only detection of the OS, architecture,
agy、geminiand existing configuration, then presents a plan. Checking alone will not migrate or update. - An installation request only authorizes installing the missing
agy; migration, overwriting configuration, modifying PATH, and administrator privileges are confirmed separately. - An ambiguous "update agy" only displays the version; only "update to the latest" executes
agy update。 - During sign-in, the customer confirms the account and permissions only on Google's official page, and does not send verification codes, tokens, or cookies to the Agent.
First sign-in and real configuration verification
~/.gemini/antigravity-cliis a candidate status/configuration directory; the skill must first check whether it actually exists, and must not determine that agy is signed in just because a default path was output.- If the directory has not yet been created, the Agent starts the official
agyflow; the customer completes sign-in, account selection, and permission consent on Google's official browser page. - After sign-in, recheck agy's configuration/status directory,
--version、--helpand side-effect-free startup; when onlygeminiexists or only the version command can run, the processing result still states "waiting for first sign-in/configuration". - A migration request must verify the configurations of
geminiandagyseparately; the existence of Gemini's directory must not be treated as agy being configured.
Dependencies and installation
| Dependency | Type | How to handle when missing |
|---|---|---|
| Google officially supported OS/architecture | Hard dependency | Stop when unsupported; do not switch to an unofficial binary |
| Network diagnostics | Optional prerequisite | Invoke when Google installation and sign-in domains are unreachable soia-env-network-diagnose |
| Google account | Sign-in dependency | The customer completes it in the official browser; credentials are managed by the system credential store |
| Gemini CLI | Migration source, non-dependency | Checked only at migration request time, not counted as agy installed |
For official sources and platform paths, see official-sources.md。
Standard procedure
- Run
python3 scripts/inspect_cli.py --json, read-only detection ofagy, version, command path, installation directory, and the actual existence status of the configuration directory. - Run
python3 scripts/check_latest.py --json, read the latest version for the current OS/architecture from the Google official platform manifest; unsupported platforms return blocked. - Installed and normal: write "installed", do not perform an update by default. When only
geminiis found,agystill writes "not installed". - Not installed: download
https://antigravity.google/cli/install.sh(on Windows use the corresponding official entry point) to a system temporary directory independent for each run, verify the HTTPS host, platform selection, write directory, and script content, then execute the local copy; do not directly execute the network response. - When explicitly updating to the latest, call the current
agyabsolute path'supdate. Do not manually assemble unknown download addresses, and do not migrate or delete the old Gemini CLI. - Verify the same
agy's--version、--helpand side-effect-free startup; when login is required, start the official flow and hand the browser over to the customer. - Recheck the version, PATH, and configuration, use
scripts/render_status.pyto output a one-line status.
Gemini CLI migration boundaries
- Before migration, separately back up and list non-secret settings; credential values must not be read or copied.
~/.gemini/antigravity-cliis the Antigravity CLI status/configuration location,~/.gemini/config/mcp_config.jsonis the global MCP configuration; before overwriting any existing file, the differences must be shown and confirmed.- Even if migration succeeds, do not automatically uninstall
gemini; after the customer explicitly requests uninstallation, separately show the deletion scope and risks.
Product automatic update boundaries
- Antigravity CLI has background self-update capability; the skill does not proactively update by default, but this product behavior must be reported.
- Read-only checks do not modify
AGY_CLI_DISABLE_AUTO_UPDATE. When the customer requests changing the automatic update policy, confirm separately and recheck.
Customer status list (mandatory)
The reply must begin with the following ten-column table, outputting only one row Antigravity CLI (agy):
| Skill | Current status | Current version | Latest version | Running status | Installation method | Installation directory | Configuration file directory | Update time | Handling result |
|---|---|---|---|---|---|---|---|---|---|
| Antigravity CLI (agy) | <installed/not installed/blocked> | <version or not obtained> | <version or not obtained> | <normal/abnormal/unverified> | <official standalone installation/not obtained> | <directory or not obtained> | <directory or not obtained> | <installed/up to date/updatable, not executed/waiting to confirm whether to update to the latest/updated/waiting for migration confirmation/blocked: reason> |
- When the user only asks about agy, do not add Gemini CLI, Node.js, npm, or other skill rows; the old Gemini appears only in the migration description.
更新时间is generated after final verification; for directories use~or platform-generalized paths, avoiding usernames.- After update
当前状态still write "installed",处理结果only then write "updated". - When the latest version manifest is unreachable, write "not obtained"; do not guess from an old cache.
config_status=未创建when, write the processing result as "waiting for first login/configuration", and make it clear that the Agent startsagy, and the customer completes authorization on Google's official page; do not display only a nonexistent directory.
Intermediate states of installation and update
When actually installing, updating, or repairing, generate a random run_id, call it immediately at each actual stage scripts/record_install_progress.py and display it in sync:
checking → planning → [waiting_confirmation] → installing/updating → verifying → completed/failed/blocked
| Stage | Current status | Update time | Processing result |
|---|---|---|---|
| <check/plan/waiting for confirmation/install or update/verify/complete or failed> | <in progress/waiting/completed/failed/blocked> | <redacted result> |
Read-only checks leave no record. The update execution stage must have the customer's explicit authorization for the latest version; stage events contain only fixed codes and timestamps, and do not store download responses, accounts, paths, or credentials.
Permissions and rollback
- By default, install to the user directory; do not use
sudo. PATH/profile modifications, overwriting configuration, migration, and system-wide installation require separate confirmation first. - Before updating, record the old version and binary location; on failure, keep the old
agyand oldgemini; do not automatically uninstall or downgrade. - Clean up temporary installation content after success, failure, or cancellation.
Private information and intermediate data
- Google login credentials remain in the official login state and system credential store; do not read, copy, or display their contents.
- Non-secret configuration remains in the official directory; machine change stage records are written only to the user's private state, and version checks are not persisted by default.
- Do not record tokens, cookies, authorization codes, accounts, response bodies, full commands, or customer private absolute paths.
Logs and completion receipt
The final receipt includes a fixed ten-column table, whether an old Gemini CLI was found, whether migration was performed, verification items, and browser actions the customer needs to complete. Normal prerequisites do not add table rows.
Forward testing
Use a temporary fake agy to cover missing, normal, and abnormal cases; mock Google manifests for different platforms; verify that gemini does not falsely report agy as installed, the fixed ten columns, path redaction, and the update authorization gate.
Install the entire domain (Claude Code and Codex share the same domain plugin):
claude plugin marketplace add soia-team/soia-open-skills
claude plugin install soia-env@soia
Install only this one skill:
npx skills add soia-team/soia-open-env-skills -g -a '*' -s soia-env-antigravity-cli-install -y
WorkBuddy 's loading unit is role-based experts rather than plugins,npx skills add -a '*' cannot cover it and it needs to be installed separately, see docs/install/workbuddy.md。