{ "id": "antigravity", "role": "runtime", "version": "1.11.0", "title": "Antigravity", "description": "Google Antigravity IDE — nested under ~/.gemini/antigravity; probed across 1.x and 2.x layouts; Gemini hook event dialect; flat skill layout; tier-1 support.", "tier": "core", "requires": [], "engines": { "gsd": ">=1.6.0" }, "runtime": { "configHome": { "kind": "dot-home-nested", "name": "antigravity", "parent": ".gemini", "env": [ "ANTIGRAVITY_CONFIG_DIR" ], "probe": [ "antigravity", "antigravity-ide", "antigravity-cli" ], "probeExists": "gsd-core/VERSION" }, "localConfigDir": ".agents", "configFormat": "settings-json", "artifactLayout": { "global": [ { "kind": "skills", "destSubpath": "skills", "prefix": "gsd-", "nesting": "flat", "recursive": false, "converter": "convertClaudeCommandToAntigravitySkill" }, { "kind": "agents", "destSubpath": "agents", "prefix": "gsd-", "nesting": "flat", "recursive": false, "converter": "convertClaudeAgentToAntigravityAgent" } ], "local": [ { "kind": "skills", "destSubpath": "skills", "prefix": "gsd-", "nesting": "flat", "recursive": false, "converter": "convertClaudeCommandToAntigravitySkill" }, { "kind": "agents", "destSubpath": "agents", "prefix": "gsd-", "nesting": "flat", "recursive": false, "converter": "convertClaudeAgentToAntigravityAgent" } ] }, "triggerPrecedence": [ "skills", "commands" ], "commandStyle": "slash-hyphen", "hooksSurface": "settings-json", "hookEvents": "gemini", "sandboxTier": "none", "supportTier": 1, "installSurface": "settings-json", "writesSharedSettings": true, "permissionWriter": "antigravity", "extendedHookEvents": [], "hostIntegration": { "embeddingMode": "declarative", "commandSurface": "slash-file", "dispatch": { "namedDispatch": "undocumented", "nested": "undocumented", "maxDepth": "undocumented", "background": true, "subagentToolkit": "full", "backgroundDispatch": "undocumented", "isolation": "undocumented" }, "modelMode": "passive", "hookBus": "host", "stateIO": "filesystem", "transport": "mcp", "runtime": "go", "effortSurface": "undocumented" }, "hostBehaviors": { "projectInstructionFile": "GEMINI.md", "noPathRewrite": true, "hookPathStyle": "raw", "globalDirResolver": "antigravity" } }, "reviewer": { "slug": "antigravity", "flags": [ "--antigravity", "--agy" ], "transport": "spawn", "probe": { "kind": "command-exists", "binary": "agy" }, "invoke": { "binary": "agy", "args": [ "--print-timeout", "540s", "{{model}}", "-p", "{{prompt}}" ], "promptChannel": "argv-file-ref", "outputChannel": "stdout", "modelArg": "--model", "effortChannel": "none" }, "timeoutFloorMs": 600000, "emptyOutput": "handler-owned", "reviewsSection": "Antigravity", "evidenceClass": "source-grounded", "requiresBinaries": [], "promptBudgetKey": "review.max_prompt_tokens_per_reviewer.antigravity", "modelConfigKey": "review.models.agy", "handler": "antigravity" }, "config": { "review.models.agy": { "type": "string", "default": "", "description": "Model passed to the Antigravity reviewer lane. The key suffix is the lane binary/flag alias `agy`, not the slug `antigravity` — preserved verbatim so existing .planning/config.json files keep working." }, "review.max_prompt_tokens_per_reviewer.antigravity": { "type": "number", "default": -1, "description": "Prompt-token budget for the Antigravity reviewer lane. Unset is -1, a sentinel: 0 is a legitimate value meaning \"do not trim this lane\", so it cannot double as \"not configured\". Keyed on the reviewer slug `antigravity`, not the `agy` binary alias used by review.models.agy." } } }