{
  "manifest_version": "1",
  "slug": "antigravity-cli",
  "title": "Antigravity CLI",
  "headline": "Run Antigravity CLI on an always-on server",
  "description": "Jules is closing. Run Google's Antigravity CLI on your own exe.dev VM: a Remote Control daemon you drive from your phone, GitHub PRs, scheduled runs.",
  "category": "ai-agents",
  "tags": [
    "antigravity cli",
    "agy",
    "google antigravity",
    "jules alternative",
    "remote control",
    "background coding agent",
    "headless",
    "gemini"
  ],
  "url": "https://exe.dev/deploy/antigravity-cli",
  "markdown_url": "https://exe-staging.dev/deploy/antigravity-cli.md",
  "upstream": {
    "website": "https://antigravity.google/product/antigravity-cli",
    "source": "https://github.com/google-antigravity/antigravity-cli",
    "docs": "https://antigravity.google/docs/cli/using",
    "license": "Proprietary (Google Terms of Service)"
  },
  "example_vm_name": "my-antigravity",
  "time": "10 minutes",
  "stack": [
    {
      "name": "Antigravity CLI",
      "detail": "`agy`, Google's native Linux build, in ~/.local/bin; it updates itself",
      "data": "~/.gemini"
    },
    {
      "name": "Remote Control daemon",
      "detail": "`agy remote-control start`, a systemd user service that starts at boot"
    },
    {
      "name": "Google's relay",
      "detail": "the VM connects out to it; no port is opened on the VM"
    },
    {
      "name": "Your project",
      "detail": "a Git repository",
      "data": "~/project"
    }
  ],
  "access": [
    {
      "url": "https://antigravity.google.com/",
      "who": "private",
      "what": "Remote Control, in any browser signed in to the same Google account"
    },
    {
      "url": "ssh my-antigravity.exe.xyz",
      "who": "private",
      "what": "your terminal, for signing in and upkeep"
    },
    {
      "url": "https://my-antigravity.exe.xyz/",
      "who": "private",
      "what": "whatever the agent serves on port 8000, behind your exe.dev login"
    }
  ],
  "delivers": [
    "Antigravity CLI (`agy`) in `~/.local/bin`, on the PATH, printing its version",
    "A Git repository at `~/project` on persistent disk",
    "A detached `agy` tmux session in `~/project` for work at the keyboard later"
  ],
  "deployable": true,
  "deploy": {
    "new_vm_url": "https://exe-staging.dev/new?prompt=Set%20up%20Antigravity%20CLI%20on%20this%20VM%20by%20following%20the%20exe.dev%20recipe%20at%20https%3A%2F%2Fexe-staging.dev%2Fdeploy%2Fantigravity-cli.md%20from%20top%20to%20bottom.%0A%0AThe%20recipe%27s%20example%20VM%20name%20is%20my-antigravity.%20This%20VM%27s%20name%20is%20the%20output%20of%20%60hostname%60%3A%20use%20it%20wherever%20the%20recipe%20writes%20my-antigravity.%20Skip%20the%20step%20that%20creates%20the%20VM%3B%20you%20are%20on%20it.%0A%0AYou%20are%20done%20when%20all%20of%20these%20are%20true.%20Check%20each%20one%20yourself%3A%0A-%20Antigravity%20CLI%20%28%60agy%60%29%20in%20%60~%2F.local%2Fbin%60%2C%20on%20the%20PATH%2C%20printing%20its%20version%0A-%20A%20Git%20repository%20at%20%60~%2Fproject%60%20on%20persistent%20disk%0A-%20A%20detached%20%60agy%60%20tmux%20session%20in%20%60~%2Fproject%60%20for%20work%20at%20the%20keyboard%20later%0A%0ARun%20the%20VM-side%20commands%20in%20%22Install%20Antigravity%20CLI%22%20only%3B%20skip%20creating%0Athe%20VM.%20Do%20not%20start%20%60agy%60%20itself%2C%20and%20do%20not%20run%20%60agy%20remote-control%20start%60%3A%0Asigning%20in%20to%20Google%20is%20the%20owner%27s%20step%20%28a%20link%20and%20a%20code%20they%20paste%29%2C%0Aand%20the%20daemon%20refuses%20to%20start%20until%20they%20have.%20Do%20not%20set%0A%60modelProvider%60%20or%20a%20Gemini%20API%20key.%20Create%20the%20tmux%20session%20detached%0A%28%60tmux%20new%20-d%20-s%20agy%20-c%20~%2Fproject%60%29%20rather%20than%20attaching%2C%20and%20reuse%20it%20if%0Ait%20exists.%20Verify%20with%20%60~%2F.local%2Fbin%2Fagy%20--version%60%2C%20%60git%20-C%20~%2Fproject%0Astatus%60%20and%20%60tmux%20has-session%20-t%20agy%60.%20Skip%20the%20later%20sections%20and%20the%0AFAQ.%20Finish%20by%20telling%20the%20owner%20to%20run%20%60ssh%20my-antigravity.exe.xyz%60%20with%0Athis%20VM%27s%20name%20and%20follow%20%22Sign%20in%20with%20Google%22%20and%20%22Keep%20it%20on%20with%0ARemote%20Control%22.%0A%0AFinish%20with%20the%20URLs%20I%20should%20open.%0A",
    "terminal": "curl -fsSL https://exe-staging.dev/deploy/antigravity-cli/prompt.txt | ssh exe.dev new --prompt=/dev/stdin",
    "prompt": "Set up Antigravity CLI on this VM by following the exe.dev recipe at https://exe-staging.dev/deploy/antigravity-cli.md from top to bottom.\n\nThe recipe's example VM name is my-antigravity. This VM's name is the output of `hostname`: use it wherever the recipe writes my-antigravity. Skip the step that creates the VM; you are on it.\n\nYou are done when all of these are true. Check each one yourself:\n- Antigravity CLI (`agy`) in `~/.local/bin`, on the PATH, printing its version\n- A Git repository at `~/project` on persistent disk\n- A detached `agy` tmux session in `~/project` for work at the keyboard later\n\nRun the VM-side commands in \"Install Antigravity CLI\" only; skip creating\nthe VM. Do not start `agy` itself, and do not run `agy remote-control start`:\nsigning in to Google is the owner's step (a link and a code they paste),\nand the daemon refuses to start until they have. Do not set\n`modelProvider` or a Gemini API key. Create the tmux session detached\n(`tmux new -d -s agy -c ~/project`) rather than attaching, and reuse it if\nit exists. Verify with `~/.local/bin/agy --version`, `git -C ~/project\nstatus` and `tmux has-session -t agy`. Skip the later sections and the\nFAQ. Finish by telling the owner to run `ssh my-antigravity.exe.xyz` with\nthis VM's name and follow \"Sign in with Google\" and \"Keep it on with\nRemote Control\".\n\nFinish with the URLs I should open.\n",
    "prompt_url": "https://exe-staging.dev/deploy/antigravity-cli/prompt.txt"
  },
  "updated": "2026-11-02",
  "verified": "2026-11-02",
  "related": [
    "gemini-cli",
    "codex-remote-control",
    "claude-code",
    "opencode",
    "openclaw",
    "codex"
  ],
  "alternatives": [
    "Jules"
  ]
}
