Agent skill

Antigravity SDK End-to-End Testing

by omnigent-ai in omnigent-ai/omnigent

Spins up a local Omnigent server and exercises the Antigravity (Gemini) SDK harness end to end: building agents, running real turns, smoke tests and bug-bashing.

Apache-2.0Auto-check passedTesting & QA

Install Antigravity SDK End-to-End Testing

skills CLI
$ npx skills add omnigent-ai/omnigent --skill antigravity-sdk-e2e-dev -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install omnigent-ai/omnigent antigravity-sdk-e2e-dev --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/omnigent-ai/omnigent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/antigravity-sdk-e2e-dev .claude/skills/antigravity-sdk-e2e-dev && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
antigravity-sdk-e2e-dev
GitHub stars
11k
Token cost
~2.7k tokens
SKILL.md length
1,133 words
Files
1
Skills in repo
19
Repo updated
First seen
Licence
Apache-2.0

At a glance

Spins up a local Omnigent server and exercises the Antigravity (Gemini) SDK harness end to end: building agents, running real turns, smoke tests and bug-bashing.

  • Works in 3 steps: start a local server → build an antigravity agent bundle → run a turn (and smoke-test)
  • Developing or debugging the Omnigent antigravity harness
  • SKILL.md covers Prerequisites (check these…, Step 1 — start a local server, Step 2 — build an antigravity… and Step 3 — run a turn (and…, plus 6 more sections
  • Calls python, uv and pip; needs GEMINI_API_KEY and ANTIGRAVITY_API_KEY

What it does

This is a developer recipe for the Omnigent `antigravity` harness, which drives Google's Antigravity Python SDK and bridges Omnigent's `sys_*` tools into it as custom tools. The aim is to run the harness for real against a live local server, not only through unit tests. Because it runs as a local runner from your current checkout, an `omni run` with a bundle and the server URL exercises exactly the code you are on.

A prerequisites list comes first: be on the branch you want to test (the harness is on `main`), have a Gemini API key configured (the SDK requires one and there is no login flow, so the check prints booleans only and never the key), have `google-antigravity` installed through the `antigravity` extra, use a host with glibc 2.36 or newer because the SDK spawns a native binary, and allow network egress to Google's API. The first step starts a local server with `omni server --background`. The excerpt is truncated after that.

When your agent uses it

  • Developing or debugging the Omnigent antigravity harness
  • Smoke-testing Antigravity agents against a live local server
  • Investigating auth, model or tool-bridge behavior in the harness

Example prompts

  • “Start a local Omnigent server and run a real turn through the antigravity harness.”
  • “Smoke-test the antigravity harness on main and tell me what breaks.”
  • “My antigravity turn hangs at setup, so check the glibc version and network egress.”

Requirements

  • A checkout of Omnigent with its `.venv`
  • A Gemini API key, via `GEMINI_API_KEY` or `omni setup`
  • `google-antigravity` installed through the `antigravity` extra
  • A host with glibc 2.36 or newer
  • Network access to Google's Gemini backend

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. start a local server
  2. build an antigravity agent bundle
  3. run a turn (and smoke-test)

What it can do on your machine

Read from SKILL.md and the folder at commit fa1dbe6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python
    • uv
    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv and pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GEMINI_API_KEY
    • ANTIGRAVITY_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Antigravity SDK End-to-End Testing loads about 2.7k tokens when it runs. Until then it costs about 102 tokens; SKILL.md has 1,133 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~102
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from omnigent-ai/omnigent at commit fa1dbe6, republished under its Apache-2.0 licence (© omnigent-ai). 1,133 words, ~2,706 tokens.

Download SKILL.mdSave it as .claude/skills/antigravity-sdk-e2e-dev/SKILL.md (or your agent's skills folder).
name
antigravity-sdk-e2e-dev
description
Spin up a live local Omnigent server and exercise the Antigravity (Gemini) SDK harness end-to-end — build antigravity agents, run real turns, smoke-test, and bug-bash. Load when developing, testing, or debugging the antigravity harness (omnigent/inner/antigravity_executor.py, antigravity_harness.py, omnigent/onboarding/antigravity_auth.py) or its auth / model / tool-bridge behavior.

Antigravity SDK harness: end-to-end dev & testing

The antigravity harness drives Google's Antigravity Python SDK (google-antigravity, an in-process Agent/Conversation) and bridges Omnigent's sys_* tools into the SDK as custom_tools. It is Gemini-native: it authenticates with a Gemini / Antigravity API key (or Vertex AI) and has no OpenAI-compatible gateway / Databricks path. This skill is the proven recipe for running it for real against a live local server — not just the unit tests.

The harness runs as a local runner from your current checkout, so omni run <bundle> --server <url> exercises exactly the code you're on.

Prerequisites (check these first)

  1. You're on the branch you want to test. The antigravity harness merged to main (#194). Test on main unless validating a specific branch.
  2. A Gemini API key is configured. The SDK requires one (AIza…); there is no login flow. Verify (booleans only — never print the key):
    bash
    .venv/bin/python -c "from omnigent.onboarding.antigravity_auth import antigravity_api_key_configured as c; import os; print('config:', c(), 'env:', bool(os.environ.get('GEMINI_API_KEY') or os.environ.get('ANTIGRAVITY_API_KEY')))"
    If both are False, run omni setup → Antigravity and paste a key, or export GEMINI_API_KEY=AIza….
  3. google-antigravity is installed (the antigravity extra — pip install "omnigent[antigravity]"): .venv/bin/python -c "import google.antigravity as a; print(a.__file__)".
  4. glibc ≥ ~2.36. The SDK spawns a native localharness binary that needs a recent glibc (GLIBC_ABI_DT_RELR). Check ldd --version | head -1. On an older host the turn fails at setup with RuntimeError: … localharness: … version 'GLIBC_ABI_DT_RELR' not found. Dev workaround on a glibc-2.31 box: point the SDK at a loader-shim via ANTIGRAVITY_HARNESS_PATH=/path/to/shim that runs the untouched bundled binary through a newer glibc's loader (see the auto-memory note antigravity-harness-glibc-native-binary.md). The shim is dev-only — the real fix is a glibc-≥2.36 host.
  5. Network egress to the Gemini backend. The native binary talks to Google's API; a turn that hangs or fails to connect on a locked-down host is usually an egress problem, not a harness bug.

Step 1 — start a local server

bash
cd /path/to/omnigent
.venv/bin/omni server --background          # spawns a detached server on a free loopback port
.venv/bin/omni server status         # prints the URL, e.g. http://127.0.0.1:6767

Use the printed URL below as $SERVER. (You can also run a foreground server on a fixed port with omnigent server --port 7777 --no-open.)

Step 2 — build an antigravity agent bundle

A spec with spec_version must be a directory containing config.yaml — not a single .yaml file. Minimal antigravity agent (no auth: block → it resolves the key from the antigravity: config / ambient env):

bash
mkdir -p /tmp/agy-dev
cat > /tmp/agy-dev/config.yaml <<'YAML'
spec_version: 1
name: agy-dev
description: Antigravity SDK dev/test agent.
executor:
  type: omnigent
  config:
    harness: antigravity
    model: gemini-3.5-flash      # default; gemini-3-pro 404s on a plain AI-Studio key
prompt: |
  You are a terse test agent. Answer in as few words as possible.
YAML

For sub-agents, tools, guardrails/policies, copy the field shapes from examples/polly/config.yaml and examples/debby/config.yaml.

Step 3 — run a turn (and smoke-test)

bash
SERVER=http://127.0.0.1:6767   # the URL from `omni server status`
timeout 280 .venv/bin/omni run /tmp/agy-dev \
  -p "Reply with exactly the single word: PONG" \
  --server "$SERVER" 2>&1

A healthy run prints connection lines then the assistant reply (PONG). If that works, the full stack is good: Gemini key, glibc/native binary, egress, streaming, harness.

  • Shell / file tools: add --tools coding.
  • Specific model: add --model gemini-2.5-flash (or another Gemini id).

Targeted scenarios

GoalHow
Native tools (shell/edit/read)--tools coding, prompt to create→read→edit a file and run a shell command; confirm it actually touches disk
Bridged sys_* / sub-agent dispatchdeclare a sub-agent (tools.agents/spawn), prompt the agent to delegate — exercises the custom_tools bridge + PostToolCallHook
Model routingrun the same bundle with several --model Gemini ids; note which actually runs
Vertex AI authset executor.config.vertex: true + project/location and use GCP application-default creds instead of an API key
Policy / guardrailadd a guardrail that denies a keyword; confirm it blocks (see the sharp edges below — LLM-phase + tool-call enforcement was incomplete at merge)
Per-session brain overriderun a bundle agent (polly/debby) and select antigravity as the brain harness (it's in BRAIN_HARNESS_LABELS)
Concurrency / leaksfire several omni run … & at once; then pgrep -af localharness to check for orphaned native subprocesses
Show full SKILL.md (581 more words)Show less

Gotchas (these cost real time)

  1. config.yaml's server: defaults to a remote server. Omitting --server sends your turn to that remote deploy — which may be stale and reject the antigravity harness with executor.config.harness: must be one of […], got 'antigravity'. Always pass --server http://127.0.0.1:<port> for local testing. (That allowlist is omnigent/spec/_omnigent_compat.py; if a local server rejects antigravity, it's running stale code — restart it from your checkout.)
  2. A spec with spec_version must be a directory + config.yaml, never a single .yaml file.
  3. Antigravity needs a Gemini key (no login). Resolution precedence: spec executor.auth (api_key) > stored antigravity: config block (omni setup)

    ambient GEMINI_API_KEY / ANTIGRAVITY_API_KEY. Vertex AI is opt-in via executor.config vertex/project/location.

  4. No OpenAI gateway / Databricks. The SDK has no base_url; a databricks or generic-provider auth is warned and ignored, and the run falls back to ambient Gemini creds. Don't expect databricks-* models to route through the AI Gateway like claude-sdk/codex/pi.
  5. Model ids are Gemini ids. Default gemini-3.5-flash. gemini-3-pro 404s on a plain AI-Studio key — use gemini-2.5-flash / gemini-3.5-flash unless your key has Pro access.
  6. The native binary needs glibc ≥ ~2.36 (see Prereq 4). This is the most common "it won't even start" cause; check it before assuming a harness bug.
  7. Turns take ~10–60s — always wrap in timeout 280.
  8. Local-runner topology: omni run <bundle> --server <url> runs the harness from your current checkout; the server only holds state. The managed omni server --background server runs from whatever venv launched it.
  9. Never print/echo the Gemini key in logs or commands.

Code & tests

  • Executor (SDK driver): omnigent/inner/antigravity_executor.py
  • Wrap (HARNESS_ANTIGRAVITY_ env → executor):* omnigent/inner/antigravity_harness.py
  • Auth / key resolution: omnigent/onboarding/antigravity_auth.py
  • Spawn env: _build_antigravity_spawn_env in omnigent/runtime/workflow.py
bash
# Unit tests (use --frozen; the cwsandbox extra is unsatisfiable on public PyPI here)
uv run --frozen --group test python -m pytest \
  tests/inner/test_antigravity_executor.py \
  tests/inner/test_antigravity_harness.py \
  tests/runtime/test_antigravity_spawn_env.py \
  tests/onboarding/test_antigravity_auth.py -q
# (or, if uv re-resolve is blocked on your host: .venv/bin/python -m pytest <same paths> -q)

There is no gated per-harness antigravity e2e test yet (it is deliberately excluded from the live no-AGENT harness matrix in tests/e2e/omnigent/test_run_harness_without_agent_e2e.py, because that matrix authenticates through the Databricks gateway and antigravity is Gemini-native). This skill IS the live coverage.

Bug-bash (fan out)

To stress the harness, run several scenario probes in parallel — each builds a bundle and runs real turns against the same $SERVER, then reports what broke. Highest-value targets: the custom_tools bridge (hangs / lost tool results / errors reported as success), model routing, policy enforcement, streamed-output rendering, history retention across turns, and orphaned localharness processes after teardown.

Known sharp edges (found via the merge review — "as of this writing")

Several were merged as-is and have fix PRs in flight (#276–#281) — verify against your checkout:

  • Native/built-in tools bypass the TOOL_CALL policy. Only a PostToolCallHook (post-execution, can't block) was installed at merge, so a DENY/ASK guardrail doesn't gate the SDK's native shell/file tools before they run. Bridged sys_* tools route through the server. (Fix: policy-enforcement PR.)
  • LLM_REQUEST / LLM_RESPONSE policies aren't evaluated in run_turn (prompt- deny / output-block silently ignored). (Fix: policy-enforcement PR.)
  • History on a fresh/rebuilt session. The SDK has no history-injection API, so prior turns are replayed as a plain-text "Conversation so far: …" prefix (user/assistant text only; tool calls aren't reconstructed). (PR #278.)
  • sys_list_models can over-report OpenAI-family models for antigravity (it was mapped to the openai family for shared lookups); the worker only runs Gemini. (Fix: openai-family-cleanup PR.)
  • Per-session /model override was rejected with a false "no plumbing" error. (PR #276.) Global auth: (an OpenAI key) could be adopted as a Gemini key. (PR #277.) Tool parameter schemas were dropped (model flew blind on arg shapes). (PR #279.)
  • A failed turn (e.g. the glibc error, a bad model) surfaces as a failed session + an error item — if a turn returns little, check GET /v1/sessions/{id} status and …/items rather than assuming success.

Cleanup

bash
.venv/bin/omni server stop      # stop the managed background server
rm -rf /tmp/agy-dev             # remove scratch bundles
pgrep -af "localharness"        # confirm no orphaned native subprocesses linger

© omnigent-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/antigravity-sdk-e2e-dev of omnigent-ai/omnigent.

Open the folder on GitHubat commit fa1dbe6

Compare with similar skills

Antigravity SDK End-to-End Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Antigravity SDK End-to-End Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Antigravity SDK End-to-End Testing this skillomnigent-ai/omnigent11k—~2.7kAutomated safety check: PassApache-2.0
Mmsp DevPrism-Shadow/model-message-stream-protocol113—~7.2kAutomated safety check: PassApache-2.0
Specx Testsmaksimzayats/specx202—~1.9kAutomated safety check: PassMIT
Gemini APIgoogle/skills21k3 repos~2.6kAutomated safety check: PassApache-2.0
Google Genai SDK Pythoncnemri/google-genai-skills127—~422Automated safety check: PassMIT
Vertex AI API DevJetBrains/skills3631 repos~2.4kAutomated safety check: PassNone

Similar skills

  • Mmsp Dev

    Prism-Shadow/model-message-stream-protocol

    Fixed workflow for developing MMSP itself — adding or updating model support, and changing its pages.

    113 GitHub stars~7.2k tokensUpdated 3 days ago
    Testing & QAAuto-check passed
  • Specx Tests

    maksimzayats/specx

    Add or refine tests for specx Python services. An agent skill from maksimzayats/specx.

    202 GitHub stars~1.9k tokensUpdated 2 mo ago
    Testing & QAAuto-check passed
  • Gemini API

    google/skills

    Official

    A skill your agent uses when the user asks about using Gemini in an enterprise environment or explicitly mentions Vertex AI, Google Cloud, or Agent Platform.

    21k GitHub starsUsed in 3 repos~2.6k tokens
    AI & LLM EngineeringAuto-check passed
  • Google Genai SDK Python

    cnemri/google-genai-skills

    Expert guidance for writing Python code using the official Google GenAI SDK (google-genai) for Gemini API and Vertex AI.

    127 GitHub stars~422 tokensUpdated 8 mo ago
    AI & LLM EngineeringAuto-check passed
  • Vertex AI API Dev

    JetBrains/skills

    Official

    Guides the usage of Gemini API on Google Cloud Vertex AI with the Gen AI SDK.

    363 GitHub starsUsed in 1 repo~2.4k tokens
    AI & LLM EngineeringAuto-check passed
  • Nano Banana Use

    cnemri/google-genai-skills

    Generate, edit, and compose images using Gemini Nano Banana models via portable Python scripts.

    127 GitHub stars~587 tokensUpdated 8 mo ago
    Media & CreativeAuto-check passed

More from omnigent-ai/omnigent

All 19 skills in this repo
  • Omnigent Docker Compose Deploy

    omnigent-ai/omnigent

    Brings up the Omnigent server and Postgres as a Docker compose stack on any Docker host, and covers the Dockerfile's runtime and host build targets for extending it to a new platform.

    11k GitHub stars~1.3k tokensUpdated today
    Auto-check: notes
  • Omnigent Framework Detection

    omnigent-ai/omnigent

    Scans Python agent code for framework imports and recommends the matching Omnigent executor type, or says when the framework is not natively supported yet.

    11k GitHub stars~610 tokensUpdated today
    Auto-check passed
  • Omnigent Load Test Runner

    omnigent-ai/omnigent

    Runs the Omnigent load test with real hosts and multi-turn sessions against a mocked LLM, then explains the latency results from summary.md.

    11k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Verify Omnigent End-to-End

    omnigent-ai/omnigent

    Spins up an isolated Omnigent server, runner and mock model to prove a user-facing behavior or bug fix with recorded evidence instead of reasoning from code.

    11k GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Omnigent Agent Builder

    omnigent-ai/omnigent

    Gives patterns for generating a minimal, valid Omnigent agent directory: the config.yaml fields, the right executor type, and the files each agent needs.

    11k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Copilot SDK E2E Dev

    omnigent-ai/omnigent

    Spin up a live local Omnigent server and exercise the GitHub Copilot SDK harness end-to-end — build copilot agents, run real turns, smoke-test, and bug-bash.

    11k GitHub stars~2.7k tokensUpdated today
    Auto-check passed

Questions about Antigravity SDK End-to-End Testing

What does Antigravity SDK End-to-End Testing do?

Spins up a local Omnigent server and exercises the Antigravity (Gemini) SDK harness end to end: building agents, running real turns, smoke tests and bug-bashing. This is a developer recipe for the Omnigent `antigravity` harness, which drives Google's Antigravity Python SDK and bridges Omnigent's `sys_*` tools into it as custom tools. The aim is to run the harness for real against a live local server, not only through unit tests.

When should I use Antigravity SDK End-to-End Testing?

Antigravity SDK End-to-End Testing fits situations like: developing or debugging the Omnigent antigravity harness; smoke-testing Antigravity agents against a live local server; investigating auth, model or tool-bridge behavior in the harness.

How do I install Antigravity SDK End-to-End Testing in Claude Code?

Run `npx skills add omnigent-ai/omnigent --skill antigravity-sdk-e2e-dev -a claude-code`. Or copy the skill folder (.claude/skills/antigravity-sdk-e2e-dev in omnigent-ai/omnigent) into .claude/skills/antigravity-sdk-e2e-dev in your project. Claude Code loads it when a task matches its description.

How do I install Antigravity SDK End-to-End Testing in Codex?

Run `npx skills add omnigent-ai/omnigent --skill antigravity-sdk-e2e-dev -a codex`. Or copy the skill folder (.claude/skills/antigravity-sdk-e2e-dev in omnigent-ai/omnigent) into .agents/skills/antigravity-sdk-e2e-dev in your project. Codex loads it when a task matches its description.

Can I use Antigravity SDK End-to-End Testing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add omnigent-ai/omnigent --skill antigravity-sdk-e2e-dev -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/antigravity-sdk-e2e-dev, .gemini/skills/antigravity-sdk-e2e-dev, .github/skills/antigravity-sdk-e2e-dev and .opencode/skills/antigravity-sdk-e2e-dev in your project.

What does Antigravity SDK End-to-End Testing need to run?

Going by SKILL.md and its folder, Antigravity SDK End-to-End Testing needs the command-line tools its instructions call (python, uv and pip) and credentials named GEMINI_API_KEY and ANTIGRAVITY_API_KEY. Our summary lists: A checkout of Omnigent with its `.venv`; A Gemini API key, via `GEMINI_API_KEY` or `omni setup`; `google-antigravity` installed through the `antigravity` extra; A host with glibc 2.36 or newer; Network access to Google's Gemini backend.

Does Antigravity SDK End-to-End Testing access the network?

SKILL.md contains no URLs. Its commands use uv and pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Antigravity SDK End-to-End Testing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Antigravity SDK End-to-End Testing use?

Antigravity SDK End-to-End Testing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Antigravity SDK End-to-End Testing use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Antigravity SDK End-to-End Testing?

Skills that share tags, products or a category with Antigravity SDK End-to-End Testing: Mmsp Dev (Prism-Shadow/model-message-stream-protocol, 113 stars), Specx Tests (maksimzayats/specx, 202 stars), Gemini API (google/skills, 21k stars) and Google Genai SDK Python (cnemri/google-genai-skills, 127 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Antigravity SDK End-to-End Testing?

omnigent-ai (a GitHub organization) maintains it in omnigent-ai/omnigent, which has 10,633 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 7, 2026.

Source: omnigent-ai/omnigent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.