diff --git a/README.md b/README.md index e0e397a..bed3a6c 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ The wizard: - checks the prerequisites (Node.js, LocalStack CLI, Docker) and tells you how to fix anything missing, - picks up your `LOCALSTACK_AUTH_TOKEN` from the environment, or asks for it, - lets you pass extra LocalStack config (e.g. `DEBUG=1,PERSISTENCE=1`), -- detects your installed MCP clients (Cursor, Claude Code, Claude Desktop, VS Code, Codex, OpenCode, Amazon Q CLI) and writes the right configuration for each one you select. +- detects your installed MCP clients (Cursor, Antigravity, Claude Code, Claude Desktop, VS Code, Codex, OpenCode, Amazon Q CLI) and writes the right configuration for each one you select. It can also run fully non-interactively, e.g. in dotfiles or scripts: diff --git a/src/lib/wizard/clients/registry.ts b/src/lib/wizard/clients/registry.ts index 3368144..91d10ae 100644 --- a/src/lib/wizard/clients/registry.ts +++ b/src/lib/wizard/clients/registry.ts @@ -3,6 +3,7 @@ import * as path from "path"; import { opencodeEntry, standardEntry, vscodeEntry } from "../entry-builders.logic"; import { amazonQConfigPath, + antigravityConfigPath, claudeDesktopConfigPath, cursorConfigPath, opencodeConfigDir, @@ -29,6 +30,18 @@ const cursorAdapter = createFileClientAdapter({ buildEntry: standardEntry, }); +const antigravityAdapter = createFileClientAdapter({ + id: "antigravity", + label: "Antigravity", + restartNote: + "Restart Antigravity — the server appears under the Agent panel ▸ MCP Servers ▸ Manage MCP Servers.", + configPath: (ctx) => antigravityConfigPath(ctx), + // ~/.gemini is Antigravity's home (the standalone Gemini CLI that also used it is retired). + detectInstalled: async (ctx) => exists(path.join(ctx.homeDir, ".gemini")), + rootPath: ["mcpServers"], + buildEntry: standardEntry, +}); + const claudeDesktopAdapter = createFileClientAdapter({ id: "claude-desktop", label: "Claude Desktop", @@ -99,6 +112,7 @@ const amazonQAdapter = createFileClientAdapter({ */ export const CLIENT_ADAPTERS: ClientAdapter[] = [ cursorAdapter, + antigravityAdapter, claudeCodeAdapter, claudeDesktopAdapter, vscodeAdapter, diff --git a/src/lib/wizard/paths.logic.test.ts b/src/lib/wizard/paths.logic.test.ts index 2a00197..f9dc257 100644 --- a/src/lib/wizard/paths.logic.test.ts +++ b/src/lib/wizard/paths.logic.test.ts @@ -1,5 +1,6 @@ import { amazonQConfigPath, + antigravityConfigPath, claudeCodeUserConfigPath, claudeDesktopConfigPath, codexConfigPath, @@ -23,6 +24,12 @@ describe("client config paths", () => { expect(cursorConfigPath(linux)).toBe("/home/dev/.cursor/mcp.json"); }); + it("resolves Antigravity's shared MCP config in the home directory", () => { + expect(antigravityConfigPath(mac)).toBe("/Users/dev/.gemini/config/mcp_config.json"); + expect(antigravityConfigPath(linux)).toBe("/home/dev/.gemini/config/mcp_config.json"); + expect(antigravityConfigPath(win)).toContain(".gemini/config/mcp_config.json"); + }); + it("resolves Claude Desktop on macOS and Windows, null on Linux", () => { expect(claudeDesktopConfigPath(mac)).toBe( "/Users/dev/Library/Application Support/Claude/claude_desktop_config.json" diff --git a/src/lib/wizard/paths.logic.ts b/src/lib/wizard/paths.logic.ts index bbe4afd..73dea68 100644 --- a/src/lib/wizard/paths.logic.ts +++ b/src/lib/wizard/paths.logic.ts @@ -7,6 +7,14 @@ export function cursorConfigPath(ctx: ClientContext): string { return path.join(ctx.homeDir, ".cursor", "mcp.json"); } +/** + * Antigravity 2.0 keeps a single MCP config shared by the Antigravity IDE and + * the Antigravity CLI at ~/.gemini/config/mcp_config.json (macOS/Linux/Windows). + */ +export function antigravityConfigPath(ctx: ClientContext): string { + return path.join(ctx.homeDir, ".gemini", "config", "mcp_config.json"); +} + /** Claude Desktop ships for macOS and Windows only — null elsewhere. */ export function claudeDesktopConfigPath(ctx: ClientContext): string | null { if (ctx.platform === "darwin") { diff --git a/src/lib/wizard/types.ts b/src/lib/wizard/types.ts index f13e673..1497f92 100644 --- a/src/lib/wizard/types.ts +++ b/src/lib/wizard/types.ts @@ -2,6 +2,7 @@ export type InstallMethod = "npx" | "docker"; export type ClientId = | "cursor" + | "antigravity" | "claude-code" | "claude-desktop" | "vscode"