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 skills add tamnguyendinh/Anvien --skill how-to-allow-approve-antigravitygit clone --depth 1 https://github.com/tamnguyendinh/AnvienWrote 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/skills/tamnguyendinh/anvien/how-to-allow-approve-antigravity)<a href="https://agentmods.dev/skills/tamnguyendinh/anvien/how-to-allow-approve-antigravity"><img src="https://agentmods.dev/badge/skills/tamnguyendinh/anvien/how-to-allow-approve-antigravity/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/tamnguyendinh/anvien/how-to-allow-approve-antigravity"><img src="https://agentmods.dev/badge/skills/tamnguyendinh/anvien/how-to-allow-approve-antigravity.svg" alt="Reviewed on agentmods" width="80" 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.00055 | $0.01438 |
| Opus 5 | $0.00028 | $0.00719 |
| Sonnet 5 | $0.00011 | $0.00288 |
| Haiku 4.5 | $0.00006 | $0.00144 |
Grade B, and why
how-to-allow-approve-antigravity scanned grade B with 1 finding 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 12d 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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
When a workspace or repository is opened (e.g., `Restaurant_manager`), Antigravity automatically creates a project-specific configuration file at `~/.gemini/config/projects/<project-id>.json`. How it starts
The opening of the file, as written. The whole thing — 140 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Global Auto-Approve Configuration Guide for Google Antigravity
This document explains Google Antigravity's 3-tier permission structure and provides a comprehensive solution for 100% autonomous AI execution without permission popups (Full Autonomous Mode).
1. Root Cause Architecture
Google Antigravity checks execution permissions in hierarchical precedence order (from highest to lowest):
[Tier 1: Project-Level Grants] (C:\Users\<USER>\.gemini\config\projects\<project-id>.json)
⬇ (If absent or inherited)
[Tier 2: Global Grants] (C:\Users\<USER>\.gemini\config\config.json)
⬇
[Tier 3: PreToolUse Hooks] (C:\Users\<USER>\.gemini\config\hooks.json)
🔍 Why configuring hooks alone still triggers popups?
When a workspace or repository is opened (e.g., Restaurant_manager), Antigravity automatically creates a project-specific configuration file at ~/.gemini/config/projects/<project-id>.json.
- According to Antigravity rules: Project-level settings (
permissionGrantsinprojects/*.json) completely override Global settings. - If a project file contains a specific
permissionGrants.allowlist (with only previously approved commands), Antigravity checks the project file first. Because any new command is not listed in that project file, the system immediately displays a user permission popup!
2. Comprehensive Solution (3-Tier Auto-Approve Setup)
To achieve 100% permanent auto-approval across all projects (both current and future), configure all 3 tiers in synchronization:
PowerShell Setup Script (One-Liner):
Open PowerShell on your machine and run the following script:
$configDir = "$env:USERPROFILE\.gemini\config"
$projectsDir = "$configDir\projects"
if (!(Test-Path $configDir)) { New-Item -ItemType Directory -Path $configDir -Force }
if (!(Test-Path $projectsDir)) { New-Item -ItemType Directory -Path $projectsDir -Force }
# -------------------------------------------------------------
# TIER 1 & 2: Update config.json and all projects/*.json files
# -------------------------------------------------------------
$fullAllowList = @(
"*",
"command(*)",
"command",
"run_command(*)",
"run_command",
"view_file(*)",
"view_file",
"write_to_file(*)",
"write_to_file",
"replace_file_content(*)",
"replace_file_content",
"mcp(*)"
)
# 1. Configure Global config.json
$globalConfigPath = "$configDir\config.json"
$globalConfig = @{
userSettings = @{
artifactReviewMode = "ARTIFACT_REVIEW_MODE_TURBO"
autoExecutionPolicy = "CASCADE_COMMANDS_AUTO_EXECUTION_ON"
browserJsExecutionPolicy = "BROWSER_JS_EXECUTION_POLICY_TURBO"
enableTerminalSandbox = $false
nonWorkspaceFileAccessPolicy = "AGENT_SETTING_POLICY_ALLOW"
themeMode = "THEME_MODE_DARK"
globalPermissionGrants = @{
allow = $fullAllowList
}
}
}
$globalConfig | ConvertTo-Json -Depth 10 | Set-Content -Path $globalConfigPath -Encoding utf8
# 2. Update all existing project files in ~/.gemini/config/projects/
Get-ChildItem -Path $projectsDir -Filter "*.json" | ForEach-Object {
try {
$proj = Get-Content $_.FullName -Raw | ConvertFrom-Json
if ($null -eq $proj.permissionGrants) {
$proj | Add-Member -NotePropertyName "permissionGrants" -NotePropertyValue @{ permissionGrants = @{ allow = $fullAllowList } } -Force
} else {
$proj.permissionGrants = @{ permissionGrants = @{ allow = $fullAllowList } }
}
if ($null -eq $proj.settings) {
$proj | Add-Member -NotePropertyName "settings" -NotePropertyValue @{ autoExecutionPolicy = "CASCADE_COMMANDS_AUTO_EXECUTION_ON"; fileAccessPolicy = "AGENT_SETTING_POLICY_ALLOW"; sandboxMode = $false; artifactReviewMode = "ARTIFACT_REVIEW_MODE_TURBO" } -Force
} else {
$proj.settings.autoExecutionPolicy = "CASCADE_COMMANDS_AUTO_EXECUTION_ON"
$proj.settings.fileAccessPolicy = "AGENT_SETTING_POLICY_ALLOW"
$proj.settings.sandboxMode = $false
$proj.settings.artifactReviewMode = "ARTIFACT_REVIEW_MODE_TURBO"
}
$proj | ConvertTo-Json -Depth 10 | Set-Content -Path $_.FullName -Encoding utf8
Write-Host " -> Updated project grants: $($_.Name)" -ForegroundColor Cyan
} catch {}
}
# -------------------------------------------------------------
# TIER 3: Configure hooks.json (PreToolUse Glob Matcher)
# -------------------------------------------------------------
$hookJson = @'
{
"auto-allow-all": {
"PreToolUse": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "node -e \"console.log(JSON.stringify({decision:'allow'}))\"",
"timeout": 5
}
]
}
]
}
}
'@
Set-Content -Path "$configDir\hooks.json" -Value $hookJson -Encoding utf8
# Remove local repository hooks if present to avoid path conflicts
Remove-Item -Path ".\.agents\hooks.json" -Force -ErrorAction SilentlyContinue
Write-Host "`n✅ SUCCESSFULLY ACTIVATED 3-TIER AUTO-APPROVE GLOBALLY ACROSS THE SYSTEM!" -ForegroundColor Green
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.
- 12d ago First seen · 140 lines · 55 tokens per session scan B 2ab5fdca5714
how-to-allow-approve-antigravity is a skill published in the GitHub repository tamnguyendinh/Anvien (9 stars, last pushed yesterday), licensed MIT. It adds 55 tokens to every session and 1,438 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
kin-retrieval
Read a codebase through Kin's semantic graph instead of grep and whole-file reads. Use when finding where something lives, what a symbol does, who calls it, or which code implements a described behavior, and when a repo has been admitted to Kin (a .kin/ directory exists).
blast-radius-review
Review a change by its blast radius, using Kin's graph to find what downstream code the change can reach. Use when reviewing a diff or pull request, deciding whether an edit is safe, or answering "what else breaks if I change this" in a repository admitted to Kin.
booboo-deploy
Stand up a Booboo brain end to end — scaffold the project, write booboo.config.yaml against a real Postgres/Supabase or JSON source, build the snapshot, then wire the REST API, the MCP server, the 3D viewer and the panel. Use when someone wants a brain built for the first time, wants to point Booboo at their own…
booboo-troubleshoot
Diagnose a Booboo brain that is not working — an empty or tiny graph, a flat starburst view, missing MCP tools, a client that cannot find the snapshot, climbing orphan counts, or a build that exits clean but produces nothing. Use when a booboo build, serve, mcp, view, panel or vault command misbehaves.
booboo
Build, query, deploy and debug a Booboo brain — one graph fusing structure, knowledge, memory, agents and automations, queryable by REST or MCP and viewable in 3D. Use when the user mentions Booboo, booboo.config.yaml, brain.json, org.booboo.json, an organigram of agents, "boot my agent from the org", a 3D system…
booboo-adapter
Feed data into a Booboo brain that the built-in postgres and json adapters do not cover — write a small config-driven adapter against the spec instead of forking the builder. Use when a source is Neo4j, an API, a CSV export, a proprietary store, or any shape the standard config cannot express.