Skip to content

feat: agy engine — Gemini via the signed-in Antigravity CLI (no API key) - #256

Open
murodgo wants to merge 1 commit into
bradautomates:mainfrom
murodgo:agy-engine
Open

murodgo wants to merge 1 commit into
bradautomates:mainfrom
murodgo:agy-engine

Conversation

@murodgo

@murodgo murodgo commented Oct 13, 2026

Copy link
Copy Markdown

Summary

Adds an agy engine and transcription backend so /watch can use Gemini through the user's signed-in Antigravity CLI, with no GEMINI_API_KEY.

  • --engine agy / WATCH_ENGINE=agy: downloads the video (≤720p), extracts the audio (agy's viewer sees frames but not sound), passes captions when available, and asks Gemini the user's --question. The report carries ## Answer (from Gemini via agy), relayed like the existing Gemini answer. --start/--end cut a clip first, and Gemini is told to cite source-video time.
  • --whisper agy / WATCH_WHISPER_BACKEND=agy: transcribes caption-less audio in 10-minute chunks and restores source-time offsets. In auto, agy is used only when no Groq/OpenAI key is found and agy is on PATH.
  • Config: WATCH_AGY_MODEL (default gemini-3.8-flash-medium), WATCH_AGY_TRANSCRIBE_MODEL (default gemini-3.8-flash-low), WATCH_AGY_TIMEOUT (900 s), WATCH_AGY_BIN.
  • Setup: the wizard offers agy as an engine and as a fallback backend. setup.py --engine agy exits 2 when agy isn't found.

Safety

  • watch never passes --dangerously-skip-permissions, so agy runs headless with default permissions and can't run shell or MCP tools.
  • agy gets --add-dir for the run's work dir only. A local source file is hard-linked or copied in; its folder is never exposed.
  • There's no silent fallback between engines, as with the Gemini engine. An agy <category>: failure is reported under ## Unavailable evidence.
  • The base runtime is still standard-library only.

Notes

  • SKILL.md documents the new engine, backend, options and data flow. The bundled-scripts list in test_packaging.py now includes agy.py.
  • The test suite passed except for that packaging assertion, which this PR updates (133 passed, 1 failed before the fix). The change hasn't been rerun since the fix. There are no dedicated agy.py tests yet; I'm happy to add some.
  • This PR leaves the -orig caption-track fix to fix: pick the matching -orig caption track on auto-dubbed videos #255.

🤖 Generated with Claude Code

New `agy` engine and transcription backend (scripts/agy.py): the video is
downloaded locally and Gemini reads it through the user's Antigravity CLI,
with no API key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant