
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 grava 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 no mesmo período. Clientes desktop de um clique apareceram no mesmo dia do lançamento. Carrosséis no 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 acessar? A maioria das pessoas não consegue responder. Agora é um 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 censurados — veja abaixo).
| Ecossistema | O que o geiger lê |
|---|---|
| Claude Code | servidores MCP globais + por projeto, hooks, plugins, skills, subagentes, apiKeyHelper |
| Hosts MCP | Claude Desktop, Cursor, Windsurf, VS Code (usuário + projeto), Cline, Roo Code, Continue, Zed |
| Outros agentes | Codex CLI, Gemini CLI, Aider, OpenCode, Qwen Code, DeepSeek Harness, Continue, GitHub Copilot CLI, Goose, Open Interpreter, LM Studio, Ollama |
| Extensões de editor | Extensões de IA no VS Code / Insiders / Cursor |
| CLIs globais | pacotes de agentes em raízes npm globais (lidas diretamente — o npm nunca é executado) |
| Extensões de navegador | Extensões de IA em perfis do Chrome / Edge / Brave, com suas permissões de manifesto |
Cada descoberta recebe: o que é, de onde veio (registry, store, 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 você possa verificar manualmente.
O Geiger também reconhece wrappers de política (agentes que colocam uma camada de enforcement na frente de servidores MCP) e reporta ambas as camadas em vez de esconder o servidor real atrás do wrapper.
--json que você nomeia explicitamente.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
Alarme de drift: depois de revisar uma máquina, salve uma baseline (--json baseline.json) e coloque geiger-scan --strict --diff baseline.json no cron ou no CI. Ele sai com código 2 apenas quando algo novo pode executar código ou armazenar segredos — o inventário permanente, já revisado, permanece silencioso. Mesmo modelo mental de um lockfile: aceite o que está lá, alerte sobre mudanças.
Sem npm? npx github:Atomburstofficial/geiger roda direto do repositório.
Antes de executar qualquer coisa, veja exatamente o que você obteria: um relatório HTML de exemplo e uma saída JSON de exemplo vivem neste repositório, gerados a partir do fixture de teste — dados sintéticos, caminhos genéricos, credenciais mostradas apenas por forma (como sempre). O relatório HTML:

Cada descoberta que justifica ação carrega remediação em linguagem simples — como linhas fix: no terminal e blocos "What to do" no relatório HTML.
Padrão de frota (MSPs, TI): execute com --json por máquina em uma agenda (uma tarefa RMM ou script de login gravando %COMPUTERNAME%.json em um compartilhamento), mantenha a baseline de cada máquina e deixe o --diff reportar o drift por máquina. O schema é versionado e estável. O Geiger nunca liga para casa — os arquivos JSON viajam apenas para onde você os coloca.
Declaradas de antemão, porque um scanner em que você confia demais é pior do que nenhum scanner:
Isto é uma auditoria de segurança? Não. É um inventário com rótulos de exposição honestos — a coisa que você precisa antes de qualquer auditoria significar algo.
Por que eu deveria confiar no scanner gratuito de uma empresa de segurança? Leia-o. São algumas centenas de linhas de JavaScript sem dependências, e o que é publicado é o que roda — as releases são publicadas a partir do GitHub Actions com proveniência npm, então a página do npm carrega um link assinado para o commit público exato a partir do qual cada versão foi construída.
O que faço com o que ele encontra? Individualmente: remova o que você não reconhece, rotacione credenciais que não deveriam estar em configurações. Em uma empresa: isso é enforcement de política, que é um produto diferente — DomainGuard é como as organizações colocam uma camada de política na frente desta superfície. O Geiger permanece gratuito e independente de qualquer forma.