Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/marcosnahuel/antigravity-plugin-cc/notebook-askgit clone --depth 1 https://github.com/MarcosNahuel/antigravity-plugin-ccWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/marcosnahuel/antigravity-plugin-cc/notebook-ask)<a href="https://agentmods.dev/commands/marcosnahuel/antigravity-plugin-cc/notebook-ask"><img src="https://agentmods.dev/badge/commands/marcosnahuel/antigravity-plugin-cc/notebook-ask.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00064 | $0.00793 |
| Opus 5 | $0.00032 | $0.00396 |
| Sonnet 5 | $0.00013 | $0.00159 |
| Haiku 4.5 | $0.00006 | $0.00079 |
Grade A, and why
notebook-ask scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 67 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Question-answering over a notebook corpus previously built by /agy:notebook. agy reads the
small per-document summaries (not the originals) and answers with citations. Run /agy:notebook <folder> | <objective> first to build the corpus.
Raw user request: $ARGUMENTS
Phase 0 — Resolve corpus + answer path (ONE Bash call)
Parse $ARGUMENTS: split on the first |. Left = folder (the SAME folder used with /agy:notebook),
right = question. If there is no |, the longest leading token that resolves to an existing directory
is the folder and the rest is the question. If the question is empty, ask once and stop.
python - "$FOLDER_OR_SLUG" "$PREGUNTA" <<'PY'
import sys, os, re, glob, hashlib
folder, preg = sys.argv[1], (sys.argv[2] if len(sys.argv) > 2 else "")
def slug(s, n=60):
return (re.sub(r"[^a-z0-9]+","-", os.path.basename(s.rstrip("/\\")).lower()).strip("-") or "x")[:n]
outdir = os.path.join("docs","agy","notebook", slug(folder))
summ = glob.glob(os.path.join(outdir, "*.resumen.md"))
if not summ:
print(f"NO_CORPUS outdir={outdir}") # corpus not built yet
sys.exit(0)
ans_dir = os.path.join(outdir, "_respuestas"); os.makedirs(ans_dir, exist_ok=True)
qh = hashlib.sha1(preg.encode("utf-8")).hexdigest()[:6]
ans = os.path.join(ans_dir, f"{slug(preg, 40)}-{qh}.md")
print(f"OK SUMMARIES_DIR={os.path.abspath(outdir)} N={len(summ)} WRITE_FILE={os.path.abspath(ans)}")
PY
- If it prints
NO_CORPUS→ tell the user to build the corpus first with/agy:notebook "<folder>" | <objective>, and stop. - Else capture
SUMMARIES_DIR,N(number of summaries) andWRITE_FILE.
Phase 1 — Answer (ONE agy subagent)
Spawn ONE antigravity:agy-rescue subagent in MODE: notebook-ask:
MODE: notebook-ask
CWD: <absolute current working dir>
SUMMARIES_DIR: <SUMMARIES_DIR>
PREGUNTA: <question>
WRITE_FILE: <WRITE_FILE>
USER_TEXT:
(empty)
Phase 2 — Present
Read ONLY <WRITE_FILE> and present the answer verbatim, then note: how many summaries it drew
from (N), and the saved path. Do NOT read the original documents or the per-document summaries
yourself — agy already grounded the answer in them.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 67 lines · 0 tokens per session scan A df3a5efef731
notebook-ask is a command published in the GitHub repository MarcosNahuel/antigravity-plugin-cc (26 stars, last pushed 20d ago), licensed MIT. It adds 64 tokens to every session and 793 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
gemini-swarm
Swarm a task across parallel Gemini (agy) sessions with automatic decomposition and model routing.
gemini-imagegen
Generate or edit an image via a Gemini (agy) session — Gemini's generateimage tool does what Claude cannot.
agy-debug
Send an error/stack trace plus the relevant file(s) to Antigravity (agy) for root-cause analysis.
agy-review
Send the current change set to Antigravity (agy) for a senior-reviewer code review.
agy-panel
Ask Antigravity (agy) the same question across several distinct models and compare their answers side by side.
agy
Consult Google's Antigravity CLI (agy) and relay its answer.