◉ANTIGRAVITY LABJP
Articles/Antigravity Basics
◉ Antigravity Basics/2026-06-15Intermediate

Matching Antigravity 2.0's Three Layers to Development Phases: Explore, Iterate, Operate

How I assign Antigravity 2.0's desktop, CLI, and SDK to development phases instead of features, with concrete handoff patterns between layers and the production pitfalls I hit.

antigravity458workflow57cli7sdk5agent-design10

✦ Premium Article

On June 15, Google signalled that it would consolidate its AI coding tools into Antigravity. What remains in front of me are three entry points: the Antigravity 2.0 desktop app, the CLI, and the SDK. For the first few days I opened them more or less by mood, ran the same task in both the desktop and the terminal, and repeatedly lost track of which run was the source of truth.

The cause was not overlapping features. All three share the same agent harness, so they can do nearly the same things. The real problem was that I had never decided when to open which one.

Once I reassigned the three layers by development phase rather than by feature, the hesitation disappeared. Here is the split, and how I hand work off between layers.

The desktop is for exploration

Checking how a new library behaves, prototyping a feature whose spec isn't settled, deciding direction while watching the agent's suggestions — exploration belongs on the desktop app.

The reason is that you can see the output and change course immediately. The code preview, the browser actions, and the diff all sit on one screen, so the moment you realize "this direction is wrong," you can stop.

In this phase I deliberately leave my instructions vague. I'll say something like "this screen feels cramped, please tidy the spacing" and work backward from the suggestions to figure out the actual requirements. The point of exploration is not to produce the right answer but to discover the requirements.

The CLI is for iteration and verification

Once the direction is fixed, I move to the CLI. Running the same process over many inputs, judging results mechanically, applying a change in bulk — for this iteration phase, being able to invoke the agent non-interactively from the terminal is what matters.

For example, when I want to run a quality gate across 30 articles at once, checking them one by one on the desktop isn't realistic. The CLI drops straight into a shell loop.

#!/usr/bin/env bash
set -euo pipefail
 
# Run a consistency check only over articles that changed
changed=$(git diff --name-only HEAD~1 -- 'content/**/*.mdx')
fail=0
 
for f in $changed; do
  # Start in headless mode and read pass/fail from the exit code
  if ! agy run --headless --prompt "$(cat checks/consistency.md)" --input "$f"; then
    echo "FAIL: $f"
    fail=$((fail + 1))
  fi
done
 
echo "Done: ${fail} need fixing"
[ "$fail" -eq 0 ]

What matters here is pinning the instructions to a file. Writing the prompt you refined interactively on the desktop into something like checks/consistency.md keeps it from drifting across iterations. In my experience, simply moving the instructions from inline strings to an external file noticeably reduced the variance in how the same input was judged.

✦

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
✦A decision rule for assigning desktop, CLI, and SDK to the explore / iterate / operate phases
✦How to hand off state between layers without losing context
✦Production pitfalls from unifying all three layers into one workflow
Secure payment via Stripe · Cancel anytime
✦

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Antigravity Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • ✦Copy-paste ready implementation code
  • ✦New advanced guides published daily
  • ✦$5/mo or $15 for lifetime access
View Membership →

Related Articles

◉ Antigravity2026-10-03
Start Your Antigravity Deny List From Your Own Shell History
Before you let an agent drive your terminal, decide the first commands for the Deny list by counting your own shell history. A short script, a three-box sorting table, and a throwaway-repo test to confirm the rules actually bite.
◉ Antigravity2026-09-15
When an agent ends without a reason, I check the page's character encoding first
A page handed to ReadURL can end an Antigravity agent with nothing but Agent execution terminated. Here is how I tell those pages apart before handing them over, and why I now fetch and re-encode first.
◉ Antigravity2026-08-26
Redrawing Your Workspace Boundary Now That Review Mode Auto-Approves Reads
Antigravity CLI 1.1.20 made in-workspace reads auto-approved in review mode. Here is what I found when I actually counted what became readable across two real working trees.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links