
CLI somente leitura que inventaria agentes de IA, servidores MCP, plugins e extensões em uma máquina, relatando suas capacidades e exposição com remediação em linguagem simples.
Um contador Geiger para agentes de IA.
Um único comando somente leitura que inventaria todos os agentes de IA, harnesses, servidores MCP, plugins e extensões de IA em uma máquina — e informa, em linguagem simples, o que cada um pode acessar.
npx geiger-scan
Sem instalação. Sem conta. Sem telemetria. Lê configurações e diretórios, não escreve nada (a menos que você peça --json yourfile.json).
Em agosto de 2026, um harness de agente de código aberto passou de zero a mais de 200.000 estrelas no GitHub em três semanas. Seu ecossistema de plugins ultrapassou 13.000 repositórios na mesma janela. Clientes desktop de um clique apareceram no mesmo dia do lançamento. Carrosséis do Instagram agora ensinam trabalhadores de escritório a instalar tudo isso.
Cada uma dessas instalações é um programa que pode executar comandos, ler arquivos e armazenar credenciais — configurado em dotfiles que ninguém olha duas vezes. Pergunte a si mesmo a questão que esta ferramenta responde: o que está realmente rodando nesta máquina, e o que ele pode alcançar? A maioria das pessoas não consegue responder. Agora é um único 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
...
Saída real de uma máquina real (valores ocultados — ver abaixo).
| Ecossistema | O que o geiger lê |
|---|---|
| Claude Code | servidores MCP globais + por projeto, hooks, plugins, skills, subagentes, apiKeyHelper |
| Anfitriões MCP | servidores MCP configurados no Claude Desktop, Cursor, Windsurf, VS Code (utilizador + projeto), Cline, Roo Code, Continue, Zed |
| Aplicações de IA e IDEs | Cursor, Windsurf, Zed, Claude Desktop, ChatGPT Desktop, aplicação desktop Codex — reportados por presença, pelo que um cliente instalado sem qualquer servidor MCP continua a aparecer |
| Outros agentes | 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 |
| Hooks | Claude Code (definições), Cursor (hooks.json), Codex (notify em config.toml), Gemini CLI (definições) — os comandos são listados, porque os hooks são executados sem qualquer prompt |
| Git hooks | hooks ativos em .git/hooks (amostras ignoradas), redirecionamentos de core.hooksPath e merge drivers — o git executa-os ele próprio, e as ferramentas de agentes instalam-se aqui |
| Texto de skills e subagentes | o que uma skill diz realmente: a sua descrição, texto de instruções que tenta sobrepor-se ao agente ou esconder trabalho de ti, comandos com uma forma hostil e formas de credenciais — um nome numa listagem de diretório não te diz nada |
| Extensões de editor | extensões de IA no VS Code / Insiders / Cursor |
| IDEs JetBrains | presença de definições do AI Assistant / MCP por produto (as definições residem dentro da IDE — o geiger indica-te o ecrã correto) |
| CLIs globais | pacotes de agentes nas raízes npm globais (lidos diretamente — o npm nunca é executado) |
| Navegadores de IA | Comet, Dia, ChatGPT Atlas — o navegador é o agente, pelo que a sua presença é um achado |
| Extensões de navegador | extensões de IA em perfis de Chrome / Edge / Brave / Vivaldi / Arc / Comet / Dia / Atlas / Firefox, com as suas permissões concedidas |
Cada achado inclui: o que é, de onde veio (registo, loja, git, script local, servidor remoto — ou UNKNOWN-ORIGIN), o que pode fazer (EXECUTES, HOLDS-SECRETS, BROAD-FILESYSTEM, BROAD-WEB, NETWORK) e o caminho da evidência para que possas verificar manualmente.
O Geiger também reconhece wrappers de políticas (agentes que colocam uma camada de aplicação de regras à frente dos servidores MCP) e reporta ambas as camadas em vez de esconder o servidor real atrás do wrapper.
--json
que indicas explicitamente.Node.js 18 ou mais recente. É tudo. O Node vem com npm e npx, e
o geiger não tem dependências, pelo que nada mais é instalado. Sem instalação
global, sem direitos de administrador, sem conta.
Se o Node ainda não estiver na máquina, é um único comando com o gestor de pacotes
que já tens — depois abre um novo terminal para que o npx esteja no path:
winget install OpenJS.NodeJS.LTS # Windows
brew install node # macOS (Homebrew)
sudo apt install nodejs npm # Debian / Ubuntu
Outras plataformas e gerenciadores de versão (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