Collaborating With Antigravity logo

Collaborating With Antigravity

Organization
appautomaton
collaborating-with-antigravity

Delegate tasks to Google's Antigravity CLI (agy) for prototyping, debugging, code review, and research. Supports multi-turn sessions via SESSION_ID. Successor to the retired Gemini CLI.

Overview

Publisherappautomaton
Repositoryagent-designer
Skill namecollaborating-with-antigravity
Stars
133
Forks
17
Bundled files
4
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by appautomaton on GitHub. Read the source before you install it.

Installation

Install the Collaborating With Antigravity AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/appautomaton/agent-designer/tree/main/skills/collaborating-with-antigravity
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/appautomaton/agent-designer.git /tmp/agent-designer
mkdir -p .claude/skills
cp -r /tmp/agent-designer/skills/collaborating-with-antigravity .claude/skills/collaborating-with-antigravity
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Collaborating With Antigravity in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Collaborating With Antigravity on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Collaborating With Antigravity is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Collaborating with Antigravity (agy)

Use the Antigravity CLI (agy) as an independent collaborator while the calling agent stays responsible for verification, synthesis, and final user-facing decisions. Antigravity CLI is Google's replacement for the retired Gemini CLI (hosted auth shut off 2026-06-18).

The bridge script (scripts/agy_bridge.py) wraps agy -p (headless print mode), returns structured JSON, and manages session continuity via SESSION_ID. Always go through the bridge — raw agy -p surfaces no conversation ID and no structured output (see below).

Why the bridge is mandatory

  • agy won't reveal the conversation ID (no --session-id, never printed). The bridge recovers it from agy's cache, returns it as SESSION_ID, and resumes via --conversation. It also serializes calls with a file lock — don't run bridge calls concurrently.
  • agy has no structured output. The bridge shapes plain text into JSON, streams live progress to stderr, and enforces its own wall-clock kill as the real timeout.

Mechanics, upstream issue numbers, and the verified flag surface: references/agy-cli.md.

Commands below write <skill_dir> for the absolute path of the directory containing this SKILL.md. Your harness usually reports that path when it loads the skill. If it does not, use this SKILL.md's own location. Substitute it before running, for example ~/.claude/skills/collaborating-with-antigravity.

Safety

agy can read and write files and run tools in the workspace. To constrain it:

  • --sandbox is on by default in the bridge — it applies agy's terminal restrictions. Recommended for review/consultation. Use --no-sandbox only when you deliberately want edits/shell.
  • Include OUTPUT: Unified Diff Patch ONLY. Do not modify any files. in the prompt when requesting code changes. This is a convention, not enforced.
  • --skip-permissions maps to agy's --dangerously-skip-permissions (auto-approves every tool). Only use it with explicit user consent, ideally in an isolated worktree.
  • Never hand agy secrets, private keys, or production data.

Host-side approval (the bridge call itself)

Everything above governs the child agy. The host agent's own permission layer gates the python3 … agy_bridge.py Bash call first — and under classifier-gated auto-approval (Claude Code auto/dontAsk, Codex non-interactive runs), a long-running script that spawns another agent over the codebase pattern-matches "high-risk" and can be denied silently: the delegation never starts. A host permission error instead of bridge JSON means the host blocked the bridge, not that agy failed.

  • Pre-authorize the bridge instead of relying on the classifier. Claude Code host: add "Bash(python3 *collaborating-with-antigravity*bridge.py*)" to permissions.allow in your settings.json. The wildcard form keeps matching wherever the skill is installed. Sandboxed hosts also need "python3 *collaborating-with-antigravity*bridge.py*" in sandbox.excludedCommands, because sandbox network policy blocks the child CLI's API traffic even after the command is allowed. Install and approval runbooks: docs/setup/ in the source repo.
  • Codex host: the sandbox is the second gate. The child agy CLI needs network for Google auth and inference, which the host sandbox blocks in read-only and workspace-write. Run the bridge call through an approved escalation, or knowingly grant network for that call.
  • Never degrade silently. If the host denies the bridge call, report it and propose the allowlist fix — don't substitute your own answer for the independent second opinion that was requested.

When to use

  • Second opinion on design tradeoffs, edge cases, or test gaps.
  • Web search / research (Antigravity has built-in grounding).
  • Reviewing a diff or proposing changes as a unified diff.
  • Screenshot / image analysis.

When not to use

  • Trivial one-shot tasks — do them directly.
  • Tasks requiring file edits — the calling agent edits, agy advises.
  • Anything involving secrets, private keys, or prod data.

Quick start

⚠️ Backticks / $VARS in prompts trigger shell expansion — use a single-quoted heredoc, or --prompt-file for large/generated prompts. See references/shell-quoting.md.

bash
PROMPT="$(cat <<'EOF'
Review src/auth.py around login() and propose fixes.
OUTPUT: Unified Diff Patch ONLY.
EOF
)"
python3 <skill_dir>/scripts/agy_bridge.py \
  --cd "." --model "Gemini 3.5 Flash (Low)" --PROMPT "$PROMPT"

Returns (stdout JSON): { "success": true, "SESSION_ID": "...", "agent_messages": "...", "model": "...", "warnings": [...] }. Live progress streams to stderr; the bridge exits non-zero on failure. Run non-trivial calls in the host's background-command mode and watch the stderr progress.

Multi-turn sessions

Capture SESSION_ID from the first call and pass it back (use the same --cd):

bash
# Turn 1
python3 <skill_dir>/scripts/agy_bridge.py \
  --cd "." --PROMPT "Analyze the bug in foo()."

# Turn 2 — resume by ID
python3 <skill_dir>/scripts/agy_bridge.py \
  --cd "." --SESSION_ID "<id>" --PROMPT "Propose a fix as a unified diff."

# Or continue the most recent conversation
python3 <skill_dir>/scripts/agy_bridge.py \
  --cd "." --continue --PROMPT "What about edge cases?"

--SESSION_ID and --continue are mutually exclusive; --continue resumes agy's most-recent conversation globally (not per---cd), so prefer --SESSION_ID for deterministic resume. Sessions persist as SQLite under ~/.gemini/antigravity-cli/conversations/<id>.db. Save turn 1's SESSION_ID — agy can't pre-assign one and never reprints it, so an unsaved conversation can't be resumed.

Bridge flags

FlagPurposeDefault
--PROMPT / --prompt-filePrompt text, or read it from a file (mutually exclusive)—
--cdWorkspace root (required unless --list-models)—
--SESSION_IDResume a conversation by ID (→ agy --conversation)new conversation
--continueContinue the most recent conversation (→ agy -c)off
--modelModel from agy models, e.g. "Gemini 3.5 Flash (Low)", "Claude Sonnet 4.6 (Thinking)"CLI default
--sandbox / --no-sandboxagy terminal restrictionson
--skip-permissionsAuto-approve all tools (--dangerously-skip-permissions)off
--list-modelsPrint agy models as JSON and exit (no prompt/--cd)—
--no-validate-modelSkip validating --model against agy modelsoff
--add-dirAdditional workspace dir (repeatable)none
--print-timeoutagy print wait, e.g. 5m/90s (agy may ignore it)5m
--timeoutBridge wall-clock kill, seconds (the real cap)print-timeout + 120s
--log-fileOverride agy's log pathnone
--return-all-messagesInclude raw_output and the conversation .db pathoff

Set the host's timeout_ms to 600000 (10 min) when invoking via a command runner.

Models

Probe the live list — don't hardcode it:

bash
python3 <skill_dir>/scripts/agy_bridge.py --list-models
# -> { "success": true, "models": ["Gemini 3.5 Flash (Low)", "Claude Sonnet 4.6 (Thinking)", ...] }

Pass the exact string to --model. agy itself does not validate --model — a misspelled or unknown name silently runs the default — so the bridge validates against agy models and errors on an unknown name (--no-validate-model to skip). Rough guide: Flash (Low) for quick checks, Gemini Pro or Claude for hard tasks. Full snapshot in references/agy-cli.md.

Prompting

Use assets/prompt-template.md for structured starters. Key principles:

  • Point, don't paste — give file paths and line numbers, not code blocks.
  • One objective per prompt — competing goals produce noisy output.
  • Enforce output format — append OUTPUT: Unified Diff Patch ONLY. for code changes.
  • Leverage grounding — agy can search the web; ask for research when needed.

Screenshots

agy reads files inside the workspace. Copy screenshots in first, then reference the path (example for a Codex host — adapt the clipboard source path to your host):

bash
mkdir -p .codex_uploads && cp "${TMPDIR:-/tmp}"/codex-clipboard-*.png .codex_uploads/

Don't add the upload dir to .gitignore (agy, like Gemini, may refuse to read ignored paths). Delete screenshots when done.

Verification

  • Smoke: python3 <skill_dir>/scripts/agy_bridge.py --help
  • Syntax: python3 -m py_compile <skill_dir>/scripts/agy_bridge.py
  • Auth: run agy once and sign in with Google (token at ~/.gemini/antigravity-cli/).
  • Session test: run one prompt; confirm JSON has success: true and a SESSION_ID, then resume with --SESSION_ID and confirm continuity.

Collaboration State Capsule

Keep this block updated while collaborating:

[Antigravity Capsule] Goal: | SID: | Model: | Sandbox: | Files: | Last: | Next:

References

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Collaborating With Antigravity AI skill do?

Delegate tasks to Google's Antigravity CLI (agy) for prototyping, debugging, code review, and research. Supports multi-turn sessions via SESSION_ID. Successor to the retired Gemini CLI.

Why use Collaborating With Antigravity on TypingMind?

Because you install it once and use it with any model. Collaborating With Antigravity is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Collaborating With Antigravity in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/appautomaton/agent-designer/tree/main/skills/collaborating-with-antigravity. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Collaborating With Antigravity?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Collaborating With Antigravity?

As many as you like. As long as a model supports skills, you can use Collaborating With Antigravity with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Collaborating With Antigravity AI skill free?

It is published on GitHub by appautomaton. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇