プログラミング
Show HN: Geiger – マシン上の全AIエージェントとその影響範囲を確認
Show HN: Geiger – See every AI agent on your machine and what it can touch (github.com)
要約
Geigerは、ローカルマシンにインストールされているAIエージェント、プラグイン、拡張機能などを検出し、それらがアクセスできるファイルやネットワークなどの影響範囲を平易な言葉で説明するツールです。インストール不要で、読み取り専用かつテレメトリなしで動作し、AIエージェントの普及に伴うセキュリティリスクの可視化を目的としています。
全文翻訳
Geiger AIエージェントのためのガイガーカウンター。マシン上のすべてのAIエージェント、ハーネス、MCPサーバー、プラグイン、AI拡張機能をインベントリ化し、それぞれが何にアクセスできるかを平易な言葉で伝える、読み取り専用の単一コマンドです。
npx geiger-scan インストール不要。アカウント不要。テレメトリなし。設定ファイルやディレクトリを読み取りますが、書き込みは行いません(--json yourfile.jsonで指定した場合を除く)。
なぜこれが必要なのか
2026年8月、オープンソースのエージェントハーネスが3週間でGitHubスター数20万以上を獲得しました。そのプラグインエコシステムは、同じ期間に13,000以上のリポジトリに達しました。ワンクリックのデスクトップクライアントもローンチと同日に登場しました。Instagramのカルーセルでは、オフィスワーカーがこれらすべてをインストールする方法を教えています。これらのインストールのそれぞれは、コマンドを実行し、ファイルを読み取り、認証情報を保持できるプログラムであり、誰も二度見ないドットファイルで設定されています。このツールが答える質問を自問してみてください:このマシンで実際に何が実行されており、何にアクセスできるのか?ほとんどの人は答えられません。今やそれは1つのコマンドで可能です。
スキャンの様子
GEIGER · AIエージェントのためのガイガーカウンター
machine dev-laptop · 2026-09-06 12:24 UTC · 読み取り専用 · テレメトリなし
──────────────────────────────────────────────────────────────
3つのエコシステムにわたる9件の検出 · 7件がコードを実行可能 · 設定ファイルに1件の認証情報
claude-code (6) Claude Codeエージェント [実行可能] [広範囲ファイルシステム] [ネットワーク]
origin: registry · @anthropic-ai/claude-code
magic (Claude Code · global) MCPサーバー [実行可能] [秘密情報を保持] [広範囲ファイルシステム]
origin: registry · @21st-dev/magic@latest
credential: "API_KEY" — 認証情報名キーの下にある不透明な値 · ~/.claude.json
note: ポリシーエージェント(domainguard-agent.exe)によってラップされています — サーバーの前面にある強制レイヤー
hooks: UserPromptSubmit, PreToolUse hook [実行可能]
note: イベントが発生するたびにプロンプトなしでフックが実行されます
実際のマシンからの実際の出力(値は編集済み — 下記参照)。
検出するもの
エコシステム
Geigerが読み取るもの
Claude Code global + per-project
MCPサーバー、フック、プラグイン、スキル、サブエージェント、apiKeyHelper
MCPホスト
Claude Desktop, Cursor, Windsurf, VS Code (user + project), Cline, Roo Code, Continue, Zed
その他のエージェント
Codex CLI, Gemini CLI, Aider, OpenCode, Qwen Code, DeepSeek Harness, Continue, GitHub Copilot CLI, Goose, Open Interpreter, LM Studio, Ollama
エディタ拡張機能
VS Code / Insiders / Cursor のAI拡張機能
グローバルCLI
グローバルnpmルートのパッケージ(直接読み取り — npmは実行されません)
ブラウザ拡張機能
Chrome / Edge / Brave プロファイルのAI拡張機能、マニフェスト権限付き
すべての検出結果には、それが何であるか、どこから来たか(レジストリ、ストア、git、ローカルスクリプト、リモートサーバー — またはUNKNOWN-ORIGIN)、何ができるか(実行可能、秘密情報を保持、広範囲ファイルシステム、広範囲ウェブ、ネットワーク)、そして手動で検証するための証拠パスが含まれます。Geigerはポリシーラッパー(MCPサーバーの前面に強制レイヤーを配置するエージェント)も認識し、実際のサーバーをラッパーの後ろに隠すのではなく、両方のレイヤーを報告します。
3つの約束
読み取り専用。
Geigerが実行する唯一の書き込みは、あなたが明示的に名前を付けた --json ファイルです。
テレメトリなし。
何もあなたのマシンから外部に出ることはありません。何かを送信するエンドポイントはありません。(これは、使用者がどれだけいるか分からないということでもあります — 私たちはそのトレードオフに満足しています。)
形状による秘密情報のみ。
設定ファイルで認証情報形状の値が見つかった場合、Geigerはキー名、ファイル、およびどのような種類の秘密情報であるかを報告します — 値の一部は決して報告しません。防御のためにすべての出力に編集パスが実行され、テストスイートがそれを強制します。
使用方法
npx geiger-scan
スキャンを実行し、レポートを表示します。
npx geiger-scan --html report.html
検出結果ごとに「何をすべきか」という修正ガイダンスを含む、自己完結型のHTMLレポート。
npx geiger-scan --json out.json
マシン可読の検出結果(schemaVersion 1)。
npx geiger-scan --path D:\repo1 --path E:\repo2
プロジェクトレベルのエージェントおよびMCP設定もこれらのプロジェクトディレクトリでスキャンします。
npx geiger-scan --home C:\Users\other
別のホームルート(別のユーザープロファイル、マウントされたイメージ)をスキャンします。
npx geiger-scan --strict
何かを実行可能または秘密情報を保持できる場合、終了コード2で終了します。
npx geiger-scan --diff baseline.json
以前の --json スナップショットと比較します:何が出現し、消滅し、またはエスカレートしたか。
ドリフトアラーム:マシンを確認したら、ベースラインを保存し(--json baseline.json)、cronまたはCIにgeiger-scan --strict --diff baseline.json を配置します。新しい実行可能コードまたは秘密情報を保持できるものが現れた場合にのみ終了コード2で終了します — 既存の、既に確認済みのインベントリは静かに保たれます。lockfileと同じメンタルモデル:そこにあるものを受け入れ、変更があったらアラームを鳴らします。
npmがない場合?
npx github:Atomburstofficial/geiger はリポジトリから直接実行されます。
レポートの様子
何かを実行する前に、実際の結果を確認してください:サンプルHTMLレポートとサンプルJSON出力がこのリポジトリにライブで存在し、テストフィクスチャから生成されています — 合成データ、汎用パス、常に形状のみで表示される認証情報。
HTMLレポート:
アクションが必要な各検出結果には、平易な言葉での修正 — ターミナルでのfix:行やHTMLレポートの「何をすべきか」ブロックとして表示されます。
フリートパターン(MSP、IT):
マシンごとに --json でスケジュール実行します(RMMタスクまたはログインスクリプトが%COMPUTERNAME%.jsonを共有フォルダに書き込む)、各マシンのベースラインを保持し、--diff でマシンごとのドリフトを報告します。スキーマはバージョン管理されており、安定しています。Geigerは決してホームに電話せず、JSONファイルはあなたが置いた場所にのみ移動します。
制限事項
最初に明記します。過度に信頼するスキャナーは、スキャナーがないよりも悪いです:Geigerは既知の設定場所を読み取ります。標準外のパス、他のユーザーアカウント、コンテナ、またはWSL(Windows側から)にインストールされたエージェントは表示されません。設定を読み取りますが、実行時の動作は読み取りません。プラグインが実際に何をしたかはわかりません — その位置が許可する範囲のみです。パッケージが悪意のあるものかどうかを判断できません — どこから来て、どこにアクセスできるかのみです。Origin ≠ 信頼性。部分的に解析可能なフォーマット(TOML設定)は形状でスキャンされ、信頼度が低下した状態でフラグ付けされるか、スキップされます。このツールが監査するエコシステムは毎週変化します。検出器はデータ駆動型で意図的に小さく作られています — 追加するにはCONTRIBUTING.mdを参照してください。
FAQ
これはセキュリティ監査ですか?
いいえ。これは正直な公開ラベル付きのインベントリです — 監査が意味を持つ前に必要なものです。
なぜセキュリティ企業の無料スキャナーを信頼する必要があるのですか?
読んでください。依存関係のないJavaScriptで数百行しかなく、公開されているものが実行されるものです — リリースはGitHub Actionsからnpmのプロビナンス付きで公開されており、npmページには各バージョンがビルドされた正確な公開コミットへの署名付きリンクが付いています。
検出されたものについてどうすればよいですか?
個別に:認識できないものは削除し、設定ファイルに存在するべきでない認証情報をローテーションします。企業として:それはポリシー施行であり、それは別の製品です — DomainGuardは組織がこのサーフェスの前面にポリシーレイヤーを配置する方法です。Geigerはどちらの場合も無料かつスタンドアロンのままです。
ライセンス
MIT · Atomburst製 · ランタイム依存関係ゼロ、ビルドステップなし — 読んだソースコードが実行されるコードです。