
CLI in sola lettura che inventaria agenti AI, server MCP, plugin ed estensioni su una macchina, riportandone capacità ed esposizione con indicazioni di remediation in linguaggio semplice.
Un contatore Geiger per gli agenti AI.
Un unico comando in sola lettura che inventaria ogni agente AI, harness, server MCP, plugin ed estensione AI presenti su una macchina — e ti dice, in linguaggio semplice, a cosa può accedere ciascuno di essi.
npx geiger-scan
Nessuna installazione. Nessun account. Nessuna telemetria. Legge configurazioni e directory, non scrive nulla (a meno che tu non richieda --json yourfile.json).
Nell'agosto 2026, un agent harness open-source è passato da zero a oltre 200.000 stelle su GitHub in tre settimane. Il suo ecosistema di plugin ha superato i 13.000 repository nella stessa finestra temporale. I client desktop one-click sono apparsi lo stesso giorno del lancio. I caroselli di Instagram ora insegnano agli impiegati a installare tutto questo.
Ognuna di quelle installazioni è un programma che può eseguire comandi, leggere file e conservare credenziali — configurato in dotfile che nessuno guarda due volte. Poniti la domanda a cui risponde questo strumento: cosa sta effettivamente girando su questa macchina, e a cosa può accedere? La maggior parte delle persone non sa rispondere. Ora basta un comando.
GEIGER · a Geiger counter for AI agents
machine dev-laptop · 2026-09-06 12:24 UTC · read-only · no telemetry
──────────────────────────────────────────────────────────────
9 findings across 3 ecosystems · 7 can execute code · 1 credential in config files
claude-code (6)
Claude Code agent
[EXECUTES] [BROAD-FILESYSTEM] [NETWORK]
origin: registry · @anthropic-ai/claude-code
magic (Claude Code · global) MCP server
[EXECUTES] [HOLDS-SECRETS] [BROAD-FILESYSTEM]
origin: registry · @21st-dev/magic@latest
credential: "API_KEY" — opaque value under a credential-named key · ~/.claude.json
note: wrapped by a policy agent (domainguard-agent.exe) — enforcement layer in front of the server
hooks: UserPromptSubmit, PreToolUse hook
[EXECUTES]
note: hooks execute without a prompt each time their event fires
...
Output reale da una macchina reale (valori oscurati — vedi sotto).
| Ecosistema | Cosa legge geiger |
|---|---|
| Claude Code | server MCP globali + per progetto, hook, plugin, skill, subagent, apiKeyHelper |
| Host MCP | server MCP configurati in Claude Desktop, Cursor, Windsurf, VS Code (utente + progetto), Cline, Roo Code, Continue, Zed |
| App AI e IDE | Cursor, Windsurf, Zed, Claude Desktop, ChatGPT Desktop, app desktop Codex — segnalati per presenza, quindi un client installato con zero server MCP compare comunque |
| Altri agenti | Codex CLI, Gemini CLI, Kilo CLI, Grok Build, Aider, OpenCode, Qwen Code, DeepSeek Harness, Continue, GitHub Copilot CLI, Goose, JetBrains Junie, Open Interpreter, LM Studio, Ollama |
| Hook | Claude Code (settings), Cursor (hooks.json), Codex (notify in config.toml), Gemini CLI (settings) — i comandi sono elencati, perché gli hook vengono eseguiti senza prompt |
| Hook Git | hook attivi in .git/hooks (i sample vengono ignorati), redirect di core.hooksPath e merge driver — git li esegue da solo, e gli strumenti degli agenti si installano qui |
| Testo di skill e subagent | cosa dice effettivamente una skill: la sua descrizione, testo di istruzioni che tenta di sovrascrivere l'agente o di nasconderti il lavoro, comandi con una forma ostile e forme di credenziali — un nome in un elenco di directory non ti dice nulla |
| Estensioni dell'editor | estensioni AI in VS Code / Insiders / Cursor |
| IDE JetBrains | presenza delle impostazioni AI Assistant / MCP per prodotto (le impostazioni risiedono dentro l'IDE — geiger ti indica la schermata giusta) |
| CLI globali | pacchetti di agenti nelle root npm globali (letti direttamente — npm non viene mai eseguito) |
| Browser AI | Comet, Dia, ChatGPT Atlas — il browser è l'agente, quindi la sua presenza è di per sé un risultato |
| Estensioni del browser | estensioni AI nei profili di Chrome / Edge / Brave / Vivaldi / Arc / Comet / Dia / Atlas / Firefox, con i permessi concessi |
Ogni risultato riporta: cos'è, da dove proviene (registry, store, git, script locale, server remoto — oppure UNKNOWN-ORIGIN), cosa può fare (EXECUTES, HOLDS-SECRETS, BROAD-FILESYSTEM, BROAD-WEB, NETWORK) e il percorso delle prove, così puoi verificare a mano.
Geiger riconosce anche i policy wrapper (agenti che mettono uno strato di enforcement davanti ai server MCP) e riporta entrambi gli strati invece di nascondere il server reale dietro il wrapper.
--json
che indichi esplicitamente.Node.js 18 o superiore. Tutto qui. Node viene distribuito con npm e
npx, e geiger non ha dipendenze, quindi non viene installato nient'altro.
Nessuna installazione globale, nessun diritto di amministratore, nessun account.
Se Node non è ancora sulla macchina, basta un comando con il gestore di
pacchetti che hai già — poi apri un nuovo terminale così npx è nel path:
winget install OpenJS.NodeJS.LTS # Windows
brew install node # macOS (Homebrew)
sudo apt install nodejs npm # Debian / Ubuntu
Altre piattaforme e gestori di versioni (nvm, fnm): https://nodejs.org/en/download
npx geiger-scan scan, print the report
npx geiger-scan --html report.html self-contained HTML report with per-finding
"what to do" remediation guidance
npx geiger-scan --json out.json machine-readable findings (schemaVersion 1)
npx geiger-scan --path D:\repo1 --path E:\repo2
also scan these project directories for
project-level agent and MCP configs
npx geiger-scan --home C:\Users\other scan a different home root (another user
profile, a mounted image)
npx geiger-scan --strict exit 2 if anything can execute code or
holds secrets
npx geiger-scan --diff baseline.json compare against an earlier --json
snapshot: what appeared, disappeared,
or escalated since then