v0.24.0 — agy summarizer: zero-key observations on a plain Google account
Zero-key observations on a plain Google account
v0.23.0 gave ChatGPT subscribers a key-free summarizer. This one covers everyone else.
agy shells out to the Antigravity CLI and authenticates off the Google OAuth token it already stored. No Claude plan. No ChatGPT plan. No API key.
agy # once, to log in (needs agy >= 1.1.1)
captain-memo install --summarizer agyThree of the six providers now need no key at all:
| Provider | Needs | Key-free? |
|---|---|---|
claude-oauth / claude-code |
Claude Max/Pro | ✅ |
codex |
ChatGPT Plus/Pro | ✅ |
agy |
a Google account | ✅ ← most people |
anthropic / openai-compatible |
a paid API key | ❌ |
It's also the fastest agent-CLI transport we have: ~3.4–5.5 s/call on Gemini 3.5 Flash (Low) — the Flash tier, which is both the cheapest and (measured) the quickest. Like the others it's an agent-runtime boot rather than inference, and like the others it runs on the worker's 5 s background tick and collapses a whole prompt window into one call — so it never lands on your keystrokes.
Model names are the display names agy models prints (Gemini 3.5 Flash (Low)), not slugs. A typo exits 1 and lists the valid ones, so it fails loudly instead of silently.
The isolated $HOME — required, not hygiene
agy has no --ephemeral equivalent and no home-override env var. It derives everything from $HOME, and every run persists a conversation. Measured: one call writes ~364 KB across 3 conversation entries.
Left alone, a summarizer running on every prompt window would grow ~/.gemini without bound and poison your agy --continue history — your next agy -c would resume a summarizer conversation instead of your actual work.
So captain-memo points $HOME at a private dir (<DATA_DIR>/agy-home), symlinks your real OAuth token in (a symlink, so re-logging-in stays in sync), and prunes its own conversations after each call. Verified live: your real ~/.gemini conversation count stays at delta 0.
It also always passes --sandbox — the summarizer must never execute model-authored commands, and session tool-logs are semi-untrusted input.
Requires agy ≥ 1.1.1
Two upstream fixes are non-negotiable for subprocess use:
- 1.1.1 fixed
agy -phanging when run inside a subprocess (it read stdin). A hang here would strandprocessBatch's in-flight guard and silently halt the observation queue — forever. - 1.1.1 fixed print mode exiting 0 with empty output on a server-side failure, which is otherwise indistinguishable from success.
One trap, documented so it can't come back
--print/-p is a string flag whose value IS the prompt — not a boolean. So:
agy -p --model "<m>" "<prompt>" # WRONG: -p swallows the literal string "--model"agy then answers "I am running on Gemini 3.5 Flash", silently discards your real prompt, and exits 0. It doesn't fail — it succeeds against the wrong input. Correct form, with the prompt always last:
agy --sandbox --model "<m>" -p "<prompt>"summarizer-agy.test.ts asserts the prompt sits directly after -p, so nobody can "tidy" the flag order and reintroduce it.
Also
- Checked the
codexCLI for updates: 0.144.1 → 0.144.4 contains a Guardian prompt revert plus two version-only releases. Nothing touchescodex exec, the--jsonenvelope, or ChatGPT-account model gating — the 0.23.0codexprovider is unaffected.
Suite: 1095/1095.