
एक रीड-ओनली CLI जो किसी मशीन पर AI एजेंट्स, MCP सर्वर, प्लगइन्स और एक्सटेंशन्स की इन्वेंटरी बनाता है, और सरल भाषा में उपचार के साथ उनकी क्षमताओं और एक्सपोज़र की रिपोर्ट करता है।
AI एजेंट्स के लिए एक गीगर काउंटर।
एक रीड-ओनली कमांड जो किसी मशीन पर मौजूद हर AI एजेंट, हार्नेस, MCP सर्वर, प्लगइन और AI एक्सटेंशन की सूची बनाती है — और सरल भाषा में बताती है कि उनमें से प्रत्येक क्या-क्या छू सकता है।
npx geiger-scan
कोई इंस्टॉल नहीं। कोई अकाउंट नहीं। कोई टेलीमेट्री नहीं। कॉन्फ़िग्स और डायरेक्टरीज़ पढ़ता है, कुछ भी नहीं लिखता (जब तक आप --json yourfile.json न माँगें)।
अगस्त 2026 में, एक ओपन-सोर्स एजेंट हार्नेस तीन हफ़्तों में शून्य से 200,000+ GitHub स्टार्स तक पहुँच गया। इसका प्लगइन इकोसिस्टम उसी अवधि में 13,000 रिपॉज़िटरीज़ को पार कर गया। वन-क्लिक डेस्कटॉप क्लाइंट्स इसके लॉन्च होने के उसी दिन आ गए। Instagram कैरोसेल अब ऑफ़िस कर्मचारियों को यह सब इंस्टॉल करना सिखाते हैं।
उनमें से हर इंस्टॉल एक ऐसा प्रोग्राम है जो कमांड चला सकता है, फ़ाइलें पढ़ सकता है, और क्रेडेंशियल रख सकता है — ऐसे dotfiles में कॉन्फ़िगर किया गया जिन्हें कोई दो बार नहीं देखता। अपने आप से वह सवाल पूछें जिसका जवाब यह टूल देता है: इस मशीन पर वास्तव में क्या चल रहा है, और यह किस तक पहुँच सकता है? ज़्यादातर लोग इसका जवाब नहीं दे पाते। अब यह एक कमांड है।
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
...
वास्तविक मशीन से वास्तविक आउटपुट (मान संपादित — नीचे देखें)।
| पारिस्थितिकी तंत्र | geiger क्या पढ़ता है |
|---|---|
| Claude Code | वैश्विक + प्रति-प्रोजेक्ट MCP सर्वर, हुक्स, प्लगइन्स, स्किल्स, सबएजेंट्स, apiKeyHelper |
| MCP होस्ट्स | Claude Desktop, Cursor, Windsurf, VS Code (उपयोगकर्ता + प्रोजेक्ट), Cline, Roo Code, Continue, Zed में कॉन्फ़िगर किए गए MCP सर्वर |
| AI ऐप्स और IDE | Cursor, Windsurf, Zed, Claude Desktop, ChatGPT Desktop, Codex डेस्कटॉप ऐप — उपस्थिति से रिपोर्ट किए जाते हैं, इसलिए शून्य MCP सर्वर वाला इंस्टॉल किया गया क्लाइंट भी दिखाई देता है |
| अन्य एजेंट्स | 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 |
| हुक्स | Claude Code (सेटिंग्स), Cursor (hooks.json), Codex (config.toml में notify), Gemini CLI (सेटिंग्स) — कमांड सूचीबद्ध हैं, क्योंकि हुक्स बिना किसी प्रॉम्प्ट के चलते हैं |
| Git हुक्स | .git/hooks में लाइव हुक्स (सैंपल्स अनदेखा), core.hooksPath रीडायरेक्ट्स, और मर्ज ड्राइवर्स — git इन्हें स्वयं चलाता है, और एजेंट टूलिंग यहाँ स्वयं को इंस्टॉल करती है |
| स्किल और सबएजेंट टेक्स्ट | एक स्किल वास्तव में क्या कहती है: उसका विवरण, एजेंट को ओवरराइड करने या आपसे काम छिपाने का प्रयास करने वाला निर्देश टेक्स्ट, शत्रुतापूर्ण आकार वाले कमांड, और क्रेडेंशियल आकार — डायरेक्टरी लिस्टिंग में एक नाम आपको कुछ नहीं बताता |
| एडिटर एक्सटेंशन | VS Code / Insiders / Cursor में AI एक्सटेंशन |
| JetBrains IDE | प्रति उत्पाद AI Assistant / MCP सेटिंग्स की उपस्थिति (सेटिंग्स IDE के अंदर रहती हैं — geiger आपको सही स्क्रीन पर इंगित करता है) |
| वैश्विक CLI | वैश्विक npm रूट्स में एजेंट पैकेज (सीधे पढ़े जाते हैं — npm कभी निष्पादित नहीं होता) |
| AI ब्राउज़र | Comet, Dia, ChatGPT Atlas — ब्राउज़र ही एजेंट है, इसलिए इसकी उपस्थिति ही एक निष्कर्ष है |
| ब्राउज़र एक्सटेंशन | Chrome / Edge / Brave / Vivaldi / Arc / Comet / Dia / Atlas / Firefox प्रोफाइल्स में AI एक्सटेंशन, उनके दिए गए अनुमतियों के साथ |
प्रत्येक निष्कर्ष में मिलता है: यह क्या है, यह कहाँ से आया (रजिस्ट्री, स्टोर, git, लोकल स्क्रिप्ट, रिमोट सर्वर — या UNKNOWN-ORIGIN), यह क्या कर सकता है (EXECUTES, HOLDS-SECRETS, BROAD-FILESYSTEM, BROAD-WEB, NETWORK), और साक्ष्य पथ ताकि आप स्वयं सत्यापित कर सकें।
Geiger पॉलिसी रैपर्स को भी पहचानता है (वे एजेंट जो MCP सर्वर के सामने एक प्रवर्तन परत लगाते हैं) और वास्तविक सर्वर को रैपर के पीछे छिपाने के बजाय दोनों परतों की रिपोर्ट करता है।
--json फ़ाइल है जिसे
आप स्पष्ट रूप से नाम देते हैं।Node.js 18 या नया। बस इतना ही। Node के साथ npm और npx आते हैं, और
geiger में शून्य निर्भरताएँ हैं, इसलिए और कुछ भी इंस्टॉल नहीं होता। कोई वैश्विक
इंस्टॉल नहीं, कोई एडमिन अधिकार नहीं, कोई खाता नहीं।
यदि Node अभी तक मशीन पर नहीं है, तो यह उस पैकेज मैनेजर के साथ एक कमांड है जो
आपके पास पहले से है — फिर एक नया टर्मिनल खोलें ताकि npx पथ पर आ जाए:
winget install OpenJS.NodeJS.LTS # Windows
brew install node # macOS (Homebrew)
sudo apt install nodejs npm # Debian / Ubuntu
अन्य प्लेटफ़ॉर्म और वर्ज़न मैनेजर (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
ड्रिफ्ट अलार्म: एक बार जब आप किसी मशीन की समीक्षा कर लें, तो एक बेसलाइन सहेजें
(--json baseline.json) और geiger-scan --strict --diff baseline.json को
cron या CI में डाल दें। यह केवल तब exit 2 करता है जब कोई नई चीज़ कोड निष्पादित कर सके या
सीक्रेट्स रख सके — स्थायी, पहले से समीक्षित इन्वेंटरी शांत रहती है। वही
मानसिक मॉडल जो lockfile का है: जो है उसे स्वीकार करें, बदलाव पर अलार्म बजाएँ।