Files
jackwener__opencli/clis/antigravity/SKILL.md
jakevin 80eef46b4e refactor: monorepo adapter separation (clis/ at root) (#782)
* refactor: move adapters from src/clis/ to root clis/ for monorepo separation

Separates CLI adapters from the core runtime to prepare for independent
adapter distribution via postinstall fetch.

Key changes:
- Move src/clis/ → clis/ (adapters at repo root)
- Change tsconfig rootDir from "src" to "." so tsc compiles both
- Create root-level shim files (registry.ts, errors.ts, etc.) so adapter
  relative imports (../../registry.js) resolve correctly
- Update build-manifest.ts, main.ts paths for new dist/src/ structure
- Expand ensureUserCliCompatShims() to cover all adapter import targets
  (types, utils, logger, launcher, browser/*, download/*, pipeline/*)
- Add scripts/fetch-adapters.js postinstall for ~/.opencli/clis/ sync
- Update vitest.config.ts adapter test paths
- Add package.json files field to exclude adapters from npm package

Official adapter files are unconditionally overwritten on update;
user-created files not in the manifest are preserved.

* fix: add dist/clis/ and cli-manifest.json to npm files, harden fetch-adapters

- Add dist/clis/ and dist/cli-manifest.json to package.json files field
  so built-in adapters and manifest ship with the npm package
- Replace execSync with execFileSync to prevent command injection
- Add version check to skip redundant adapter fetches
- Track tmpRoot explicitly for reliable cleanup

* fix: address review blockers — manifest-based updates, global-only fetch, first-run fallback

1. Manifest-based update strategy:
   - Read old manifest to identify previously-official files
   - Clean up files removed upstream (in old manifest but not new)
   - User-created files (never in any manifest) remain untouched

2. Only run fetch-adapters on global install (npm_config_global=true)
   or explicit OPENCLI_FETCH=1, preventing heavy side effects for
   local/dev installs

3. First-run fallback in discovery.ts:
   - ensureUserAdapters() checks for adapter-manifest.json
   - If missing and ~/.opencli/clis/ is empty, spawns fetch-adapters.js
   - Guarantees adapters are available even with --ignore-scripts

* fix: remove OPENCLI_FETCH env var, use internal _OPENCLI_FIRST_RUN instead

* feat: also support OPENCLI_FETCH=1 for explicit adapter fetch trigger

* simplify: replace git clone with local copy from dist/clis/

Adapters already ship in the npm package (dist/clis/), so there's no
need to clone from GitHub. Copy directly from the installed package:

- Eliminates git, curl, tar dependencies
- No network calls in postinstall
- No timeout/offline issues
- Version always matches the installed CLI
- ~65 lines of clone/download code replaced by one cpSync loop
2026-04-05 01:46:36 +08:00

1.5 KiB

description
description
How to automate Antigravity using OpenCLI

Antigravity Automation Skill

This skill allows AI agents to control the Antigravity desktop app (and any Electron app with CDP enabled) programmatically via OpenCLI.

Requirements

opencli automatically detects, launches (with --remote-debugging-port=9234), and connects to Antigravity. If Antigravity is already running without CDP, opencli will prompt to restart it.

If the endpoint exposes multiple inspectable targets, set: ```bash export OPENCLI_CDP_TARGET="antigravity" ```

High-Level Capabilities

  1. Send Messages (opencli antigravity send <message>): Type and send a message directly into the chat UI.
  2. Read History (opencli antigravity read): Scrape the raw chat transcript from the main UI container.
  3. Extract Code (opencli antigravity extract-code): Automatically isolate and extract source code text blocks from the AI's recent answers.
  4. Switch Models (opencli antigravity model <name>): Instantly toggle the active LLM (e.g., `gemini`, `claude`).
  5. Clear Context (opencli antigravity new): Start a fresh conversation.

Examples for Automated Workflows

Generating and Saving Code

```bash opencli antigravity send "Write a python script to fetch HN top stories"

wait ~10-15 seconds for output to render

opencli antigravity extract-code > hn_fetcher.py ```

Reading Real-time Logs

Agents can run long-running streaming watch instances: ```bash opencli antigravity watch ```