geiger-scan
Read-only inventory of AI agents, MCP servers, and plugins on a machine
TLDR
SYNOPSIS
npx geiger-scan [--html file] [--json file] [--path dir] [--home dir] [--strict] [--diff file]
DESCRIPTION
geiger-scan (npm package geiger-scan, binary geiger) is a read-only scanner that inventories AI agents, harnesses, MCP servers, plugins, editor extensions, and related CLIs on a machine, then reports in plain language what each one can touch.It reads known config locations and directories. It does not execute the tools it finds, does not send telemetry, and writes nothing unless you pass --json or --html with an explicit path. Credential-shaped values are reported by key name, file, and secret kind — never by value. A redaction pass runs on all output.Findings are grouped by ecosystem. Each finding includes origin (registry, store, git, local script, remote server, or UNKNOWN-ORIGIN), exposure labels (EXECUTES, HOLDS-SECRETS, BROAD-FILESYSTEM, BROAD-WEB, NETWORK), and an evidence path. Policy wrappers that sit in front of MCP servers are reported as both layers.Typical zero-install run is npx geiger-scan. After npm install -g geiger-scan, the same CLI is on PATH as geiger. Set NO_COLOR=1 to disable color. Requires Node.js 18 or newer. Zero runtime dependencies.
PARAMETERS
--html file
Write a self-contained HTML report with per-finding "what to do" remediation.--json file
Write machine-readable findings (schemaVersion 1). This is the only write the tool performs, and only when you name a file.--path dir
Also scan this project directory for project-level agent and MCP configs. Repeatable.--home dir
Scan a different home root (another user profile or a mounted image). Sets GEIGER_HOME.--strict
Exit 2 if any finding can execute code or holds secrets. Combined with --diff, exit 2 only when new hot findings appeared or escalated.--diff file
Compare the current scan against an earlier --json snapshot. Reports what appeared, disappeared, or escalated.-h, --help
Print usage.
DETECTORS
Claude Code
Global and per-project MCP servers, hooks, plugins, skills, subagents, and apiKeyHelper.MCP hosts
Claude Desktop, Cursor, Windsurf, VS Code (user and project), Cline, Roo Code, Continue, and Zed.Other agents
Codex CLI, Gemini CLI, Kilo CLI, Grok Build, Aider, OpenCode, Qwen Code, DeepSeek Harness, GitHub Copilot CLI, Goose, JetBrains Junie, Open Interpreter, LM Studio, and Ollama.Editor and browser extensions
AI extensions in VS Code / Insiders / Cursor, JetBrains AI Assistant / MCP settings presence, global npm agent packages (npm is never executed), and AI extensions in Chrome / Edge / Brave / Firefox profiles with granted permissions.
CAVEATS
Reads known config locations only. Agents in nonstandard paths, other user accounts, containers, or WSL (from the Windows side) are not seen. It reads configuration, not runtime behavior, and cannot tell whether a package is malicious — only where it came from and what it can reach. Partially parseable formats (TOML) are scanned by shape with reduced confidence. The ecosystem changes quickly; detectors are data-driven and will lag new tools.
HISTORY
geiger is a dependency-free Node.js scanner published on npm as geiger-scan by Atomburst. Releases are published from GitHub Actions with npm provenance.
