ANTIGRAVITY LABJP
Articles/AI Tools
AI Tools/2026-09-15Advanced

The Day I Stopped Splitting by Skill — Three Questions for Routing Work Between Antigravity CLI and Claude Code

An unattended job sat waiting on an approval prompt for three days without a single error line. Here is how I stopped dividing work between two agent CLIs by capability, and started dividing it by where the approval boundary falls.

Antigravity CLI33Claude Code8agent operations8permission design4unattended runs6

Premium Article

My pre-release check for one of my wallpaper apps returned three days of empty logs. No failure lines. Exit code zero. And yet the diff report I expected simply was not there.

I found it at the terminal, not in the log. Running the same job by hand produced one line — Allow access to this URL? — and there it sat. While the job ran unattended, nobody was there to see that line.

The trigger was Antigravity CLI 1.1.28, released on September 9, 2026. In that version, fetching an external URL prompts for approval by default unless access has been pre-granted. The night before, I had happened to move this particular check over to Antigravity CLI. The release and my migration landed in the same week.

What I want to say first is that neither the release nor the migration was the real problem. The problem was that I had been splitting two tools by what each was good at.

When I sent the hard jobs to the smarter tool

For a long time I divided my two agent CLIs by capability. Design conversations and cross-cutting cleanup went to Claude Code; repeatable, well-defined procedures went to Antigravity CLI. As an indie developer I only have one pair of hands, so "hard things to the smarter one" looked reasonable at the time.

That split never breaks while you are sitting in front of the screen. If something asks for approval, you click it. It breaks the moment you run the same work unattended.

For a while I blamed my own prompts. My instructions must be vague, I thought, so the agent is hesitating somewhere in the middle — and I rewrote the task files in finer and finer detail. It did not help. However I rewrote them, the same jobs stalled in the same place, and the others never stalled once.

The difference was not difficulty. Every job that stalled was reaching outside the repository.

In 1.1.28, the stopping point moved in two directions at once

This is the part that ran against my intuition. The same release made one class of approval stop blocking, and another class start blocking. Both items sit in the September 9 entry of the Antigravity changelog.

ChangeEffect on unattended runs
Fixed headless (-p) runs hanging indefinitely on interactive implementation-plan approval prompts, by proceeding through plan review automatically in non-interactive modeStopped blocking. Plan approval used to be the single biggest stall
Changed default URL fetching permissions to prompt for approval before reading external URLs, unless access has been pre-grantedStarted blocking. Every job that reads a URL is in scope

If you skim the release headline, this looks like a headless optimization release. And it is one: runs exit faster after the final answer, and up to 200 ms of idle delay per turn was removed. A line that tightens a default permission is sitting quietly in the middle of a list of improvements.

The reason three days went by is that I read "harder to stall" and missed that the stalling point had simply swapped places.

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
You will be able to route agent work by where the approval boundary falls, instead of guessing which tool is smarter
You will be able to spot a job that will stall silently before it runs unnoticed in production for three days
You will know exactly which part of your success check to rewrite when a release moves the stopping point
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

Agents & Manager2026-07-19
The Morning It Wrote Outside the Working Folder: Vetting Every Write Path in One Function
Antigravity CLI 1.1.3 closed a bug where always-proceed mode silently auto-approved writes outside the workspace. Here is a small guard that vets every write path with nothing but path canonicalization and a containment check, plus an escape-attempt test suite.
AI Tools2026-09-11
Starting with AGY_CLI_HIDE_LOGO: tuning Antigravity CLI for narrow terminals, screen readers, and recordings
Logo art, your email address, output that swallows the pane, a copy you never asked for. Here are the Antigravity CLI environment variables and settings that quiet the display, grouped by the three situations where they matter.
AI Tools2026-07-26
Routing /effort by Task Class in Antigravity CLI: Six Weeks of Measurements
I built a small router that picks an /effort level from the shape of the task, then aggregated six weeks of run logs. Here is where raising effort helped, where it actively hurt, and what mattered more than effort.
📚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