app
Google Antigravity
Public Made by Adomby adom
Google Antigravity in Adom Hydrogen: the editor extension, the agy CLI and a dock dashboard that installs both into your container.
← Commit history
Publish 0.1.3
6 files changed
+10−10
README.md+1−1@@ -26,7 +26,7 @@ adom-antigravity serve --print-url # the dashboard (what a dock click runs) ## Where Antigravity shows up -The extension starts Antigravity's own web UI (a local "hub") inside the container and frames it in the editor's side bar. That frame needs the editor to hand out forwarded ports as `http://<port>.localhost:7380/` (Hydrogen 1.0.223 and later do: code-server's subdomain proxy plus a `Host: localhost` rewrite, because the hub's page uses absolute asset paths and refuses non-localhost hosts). On an older Hydrogen or on Web Hydrogen, which path-proxy ports as `/proxy/<port>/`, the panel is blank; there the dashboard's **Open Antigravity** turns the dashboard tab into that UI instead. The CLI `agy` works in a terminal tab everywhere.+The extension starts Antigravity's own web UI (a local "hub") inside the container and frames it in the editor's side bar. That frame needs the editor to hand out forwarded ports as `http://<port>.localhost:<proxy port>/` (Hydrogen 1.0.224 and later do: Hydrogen's own reverse proxy serves that form with the app's paths untouched and a loopback `Host` upstream, because the hub's page uses absolute asset paths and refuses non-localhost hosts; nothing in code-server or the container image is patched). On an older Hydrogen or on Web Hydrogen, which path-proxy ports as `/proxy/<port>/`, the panel is blank; there the dashboard's **Open Antigravity** turns the dashboard tab into that UI instead. The CLI `agy` works in a terminal tab everywhere. For Google: a `<base href>` on the hub page, or relative asset paths, would make the panel work behind any path proxy.
adom_antigravity.py+4−4@@ -21,7 +21,7 @@ from pathlib import Path from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer ROOT = Path(__file__).resolve().parent-VERSION = '0.1.2'+VERSION = '0.1.3' EXT_ID = 'Google.google-antigravity' CLI_INSTALL = 'https://antigravity.google/cli/install.sh' EXT_DIRS = [Path.home() / '.local/share/code-server/extensions', Path.home() / '.vscode-server/extensions']@@ -106,8 +106,8 @@ def hub_state(): def proxy_mode():- """How code-server hands ports to webviews: 'subdomain' (http://<port>.localhost:7380/,- Hydrogen 1.0.223+, the side-bar panel renders) or 'path' (/proxy/<port>/, the panel is+ """How the editor hands ports to webviews: 'subdomain' (http://<port>.localhost:<proxy>/,+ Hydrogen 1.0.224+, served by Hydrogen's own reverse proxy, the side-bar panel renders) or 'path' (/proxy/<port>/, the panel is blank because the hub's assets sit at absolute paths). Read from the extension host env.""" try: for d in Path('/proc').iterdir():@@ -185,7 +185,7 @@ def open_panel(new_conversation=False): return {'ok': False, 'error': 'the Antigravity extension is not installed yet', 'next': 'POST /api/install-extension, then reload the editor'} hub = hub_state() if hub['up'] and proxy_mode()['mode'] != 'subdomain':- # code-server is still path-proxying ports (Hydrogen before 1.0.223, or Web Hydrogen):+ # the editor is still path-proxying ports (Hydrogen before 1.0.224, or Web Hydrogen): # the side-bar panel is blank there, so the dashboard tab navigates to the hub itself. return {'ok': True, 'surface': 'hub', 'url': hub['url'], 'hub': hub, 'note': 'Antigravity\'s own web UI, served by the extension\'s hub inside the container, opened as a Hydrogen tab because this editor path-proxies ports and the side-bar panel is blank there.'}
dashboard/index.html+2−2@@ -29,7 +29,7 @@ dialog{width:min(900px,95vw);background:var(--surface);color:var(--text);border: <div class="hint" id="cli-hint">Official installer into ~/.local/bin/agy. First run: <code>agy</code> prints a Google sign-in link when it cannot open a browser. Headless: set <code>GEMINI_API_KEY</code> and <code>modelProvider: gemini</code> in ~/.gemini/antigravity-cli/settings.json.</div></section> <section class="card"><h2>3. Use it</h2><p>Open the Antigravity side bar in your editor (its own icon on the activity bar) and sign in with Google the first time. The AI launch bar's Antigravity icon does the same; its TUI entry runs <code>agy</code>.</p> <div class="row"><button class="primary" id="open">Open Antigravity</button><button id="open-new">New conversation</button></div>- <div class="hint" id="open-hint">Needs Hydrogen 1.0.223 or later, which serves forwarded ports the way this panel expects. On an older Hydrogen or on Web Hydrogen the panel is blank, and this button opens Antigravity's UI as a tab instead.</div></section>+ <div class="hint" id="open-hint">Needs Hydrogen 1.0.224 or later, which serves forwarded ports the way this panel expects. On an older Hydrogen or on Web Hydrogen the panel is blank, and this button opens Antigravity's UI as a tab instead.</div></section> <section class="card"><h2>What it is</h2><p>An agent that plans, writes and verifies across your files and a browser, with its own workflows and artifacts. Free tier from Google; the extension and CLI both need a Google sign-in.</p> <div class="row"><a href="https://antigravity.google/docs" target="_blank">Antigravity docs</a><a href="https://antigravity.google/docs/cli/install/" target="_blank">CLI install and auth</a><a href="https://open-vsx.org/extension/Google/google-antigravity" target="_blank">The extension on Open VSX</a></div></section> </div>@@ -47,7 +47,7 @@ function render(s){$('#machine').textContent=(s.runtime==='wsl2'?'WSL2':s.runtim led('#led-editor',s.editor.reachable?'ok':'busy',s.editor.reachable?('adom-vscode '+s.editor.adomVscode):'editor not reachable'); led('#led-rt','ok',s.runtime==='wsl2'?'WSL2 container':s.runtime==='lima'?'Lima container':'Linux container'); $('#open').disabled=!s.extension.installed;$('#open').title=s.panelWorks?'Opens the Antigravity side bar in the editor':(s.hub&&s.hub.up?'This editor path-proxies ports (panel blank): opens Antigravity\'s UI as a tab':'Install the extension and reload the editor first');- $('#open-hint').textContent=s.panelWorks?'The side bar renders here (Hydrogen serves forwarded ports as <port>.localhost). Ctrl+Shift+L starts a new conversation; Ctrl+L adds a selection.':'This editor still path-proxies ports, so the side-bar panel is blank; Open Antigravity shows the same UI as a tab. Hydrogen 1.0.223+ fixes the panel.';+ $('#open-hint').textContent=s.panelWorks?'The side bar renders here (Hydrogen serves forwarded ports as <port>.localhost). Ctrl+Shift+L starts a new conversation; Ctrl+L adds a selection.':'This editor still path-proxies ports, so the side-bar panel is blank; Open Antigravity shows the same UI as a tab. Hydrogen 1.0.224+ fixes the panel.'; $('#install-ext').textContent=s.extension.installed?'Reinstall / update the extension':'Install the extension'; $('#install-cli').textContent=s.cli.installed?'Reinstall the CLI':'Install the CLI';window.__ag=s} async function refresh(){try{const r=await fetch('/api/status');render(await r.json())}catch(e){toast('Status unavailable: '+e.message,'err')}}
package.json+1−1@@ -4,7 +4,7 @@ "type": "app", "title": "Google Antigravity", "brief": "Google Antigravity in Adom Hydrogen: the editor extension, the agy CLI and a dock dashboard that installs both into your container.",- "version": "0.1.2",+ "version": "0.1.3", "description": "Try Google Antigravity inside your Adom workspace. The dock dashboard installs the Google Antigravity VS Code extension into Hydrogen's editor and the agy command line into your WSL2 or Lima container, opens the panel, and reports what is installed and signed in.", "org": "adom", "needs_sudo": false,
page.json+1−1@@ -4,7 +4,7 @@ "type": "app", "title": "Google Antigravity", "brief": "Google Antigravity in Adom Hydrogen: the editor extension, the agy CLI and a dock dashboard that installs both into your container.",- "version": "0.1.2",+ "version": "0.1.3", "hero": { "type": "image", "path": "screenshots/hero.png"
skills/antigravity/SKILL.md+1−1@@ -27,7 +27,7 @@ Dashboard routes: `GET /api/status`, `POST /api/install-extension`, `POST /api/i ## Facts that save time -- The side-bar panel is an iframe of the hub (`agy --hub --hub-port=N`) through the editor's port proxy. It renders when code-server hands out `<port>.localhost:7380` URLs (Hydrogen 1.0.223+; `adom-antigravity status` reports `proxy.mode: subdomain`, `panelWorks: true`). Under a PATH proxy (`/proxy/<port>/`: older Hydrogen, Web Hydrogen) the hub's absolute asset paths 404 and the panel is blank; then `POST /api/open` answers `{surface:"hub", url}` and the dashboard navigates its own tab to the hub. Never iframe the hub yourself: Google sign-in refuses to run inside a frame.+- The side-bar panel is an iframe of the hub (`agy --hub --hub-port=N`) through the editor's port proxy. It renders when the editor hands out `<port>.localhost:<proxy port>` URLs, served by Hydrogen's own reverse proxy (Hydrogen 1.0.224+; `adom-antigravity status` reports `proxy.mode: subdomain`, `panelWorks: true`). Under a PATH proxy (`/proxy/<port>/`: older Hydrogen, Web Hydrogen) the hub's absolute asset paths 404 and the panel is blank; then `POST /api/open` answers `{surface:"hub", url}` and the dashboard navigates its own tab to the hub. Never iframe the hub yourself: Google sign-in refuses to run inside a frame. - Antigravity is a SIDE BAR panel (its own activity-bar icon), not an editor tab. `antigravity.panel.focus` shows it; `antigravity.startNewConversation` (Ctrl+Shift+L) starts a chat; `antigravity.insertSnippet` (Ctrl+L) adds the selection. - A fresh extension install needs one editor reload before the panel exists. - The extension signs in with Google inside its panel. The CLI tries to open a browser; in a container it prints the link. Headless: `GEMINI_API_KEY` plus `"modelProvider": "gemini"` in `~/.gemini/antigravity-cli/settings.json`.