Quote it or it did not happen
Every finding must carry the exact code it is about. The script looks that quote up in the real file.
Open source, MIT
Code review, security review, task delegation and translation by Google Antigravity. From Claude Code, Codex or your terminal. Read-only, no permission prompts, and every finding is checked against your real code.
Runs on Bun or Node 18.18+. Your code is sent to Google's model: review only what you may share.
/plugin marketplace add Ealireza/agy-review
/plugin install agy-review@agy-review
/agy-review:setup
/agy-review:verify
/agy-review:security --symbol saveUpload
A model that reviews code will sometimes invent a problem. This tool never takes its word for anything.
Every finding must carry the exact code it is about. The script looks that quote up in the real file.
Invented findings are dropped and listed separately. A wrong line number is corrected, not trusted.
The verdict, the counts and the CI gate are computed from verified findings only, never copied from the model.
If findings were rejected, coverage is low or a model failed, the verdict is inconclusive and the exit code is 4.
Real output on a small file with planted bugs, reviewed by Claude Sonnet 4.6 through Antigravity.
Verified: this exact code exists at line 6
Evidence
cur.execute("SELECT * FROM users WHERE name = '" + name + "'")
Fix
cur.execute("SELECT * FROM users WHERE name = ?", (name,))
Rejected: the quoted code was not found in the file
Evidence
os.system(command)
evidence quote not found in the cited file (possible hallucination)
Five steps, one script. Static targets never give the model any tool.
Review a diff, a branch, a file, a line range, one function or a snippet.
The script reads and numbers the code itself, or opens the repository behind a read-only guard.
The model you chose returns a strict JSON report: severity, priority, category, evidence, fix.
Quotes are found in your files, lines are corrected, inventions are rejected, secrets are redacted.
Markdown or JSON, stable finding ids, and an exit code that agents and CI can act on.
Uncommitted changes, a branch, a commit, a file, a line range, one function by name, or code piped in from memory.
OWASP and CWE mapping, exploitability, attack scenario, data flow, a secret and bad-pattern scanner, and the callers and callees of your code.
Stable JSON, finding ids that survive line shifts, comparison with the previous report, and a gate: exit 10 when a verified high finding exists.
List the models in your agy, pick one per project or globally, cross-check with several, and let effort be chosen automatically with the reason shown.
Hand any self-contained task to Antigravity. Translate with tone, audience and glossary, and verify that code, URLs and placeholders survived.
Skills for Claude Code and Codex, plus reviewer, security and worker sub-agents that any larger process can call.
New in 1.0.1
graphify updates now run on Antigravity, in the background, on every commit, merge, checkout and rebase. Your agent spends 0 tokens on them and you need no API key.
graphify's backend is pinned to a local server backed by Antigravity, so it can never fall back to your Opus, Fable or Codex session.
The hook starts the update in the background. In a real run git commit returned in 0.3 seconds and the graph updated in 22 seconds with one Antigravity call.
The model only reads text and answers text. graphify writes its own files, a prompt injection in a document cannot make the model do anything, and secrets are redacted.
bun agy-review.mjs --graphify doctor
bun agy-review.mjs --graphify setup --yes
git commit -m "docs and code" # returns at once; the graph updates itself on AntigravityIt uses your Antigravity quota, so it is cheaper, not free. Images are not extracted on this path.
Pick your host. Nothing else is required besides Antigravity, git and Bun or Node.
/plugin marketplace add Ealireza/agy-review
/plugin install agy-review@agy-reviewThen, once: /agy-review:setup /agy-review:verify
Verify on your machine: reads work, writes are blocked.
codex plugin marketplace add Ealireza/agy-review
codex plugin add agy-review@agy-reviewCodex needs network access and write access to ~/.gemini/antigravity-cli in its sandbox. The skill tells you exactly what is missing and never widens permissions itself.
git clone https://github.com/Ealireza/agy-review
cd agy-review
bun plugins/agy-review/scripts/agy-review.mjs --check
bun plugins/agy-review/scripts/agy-review.mjs --install-guard
bun plugins/agy-review/scripts/agy-review.mjs --verifycp -r plugins/agy-review/antigravity-plugin/readonly-review ~/.gemini/config/plugins/
agy plugin listThe guard is a normal Antigravity plugin. It does nothing unless a prompt contains AGY_READONLY_REVIEW, so your own agy sessions are unchanged.
The same script behind every skill, command and sub-agent.
bun agy-review.mjs --symbol applyDiscount \
--context "applies at most one coupon, never below 0" \
--format json --fail-on high --output review.jsonbun agy-review.mjs --security --symbol saveUpload \
--context "filename and body come from an untrusted request" \
--fail-on high --previous sec.json --format json --output sec2.json
# exit 0 pass | 10 fix P0/P1 | 4 inconclusive, not a passbun agy-review.mjs --preset translate --to German --tone friendly \
--audience "new developers" --glossary glossary.json \
--input README.md --output docs/README.de.mdbun agy-review.mjs --list-models
bun agy-review.mjs --set model=claude-sonnet-4-6
bun agy-review.mjs --set models=gemini-3.8-flash-high,claude-sonnet-4-6Read this before you trust it with anything important.
No. Static modes cannot. Agentic mode blocks writes and warns if your tree differs afterwards. It never commits, stashes or checks anything out, and it never fixes findings itself.
The plugin is free and open source. Each review uses your own Antigravity quota.
Not measurably. Startup was about 56 ms with Node and 64 ms with Bun on the author's Windows machine, and a review takes tens of seconds because of the model. Bun is the default, Node works the same.
Run the models command and choose; the tool does not rank them for you. For critical code cross-check with two models: findings both report are marked.
Its content filter sometimes does. If you did not pick a model, the tool retries once with a non-Gemini model and says so.
Run the update check, then update the plugin for your host and refresh the guard and the graphify hooks. The README has the exact commands for Claude Code, Codex and a plain clone.
Yes. Review, fix the P0 and P1 findings, review again with the previous report, and stop on exit code 0. Exit code 4 is not a pass.