Geiger Skill:给本机 AI Agent 装机面装一台盖革计数器

Skills 生态在 2026 年 9 月迎来了一次「可见性」拐点:单个开源 agent harness 三周冲 20 万星、插件仓破 1.3 万、桌面客户端一窝蜂上线,但绝大多数用户在用 Claude Code / Cursor / Codex / Cline / Roo Code 的同时,根本答不出「我机器上现在跑着几个 agent、谁拿了凭据、谁在动文件系统」。Atomburstofficial/geiger 就是为这个新问题而生的一道「盖革计数器」——一行 npx geiger-scan,把你的 AI 装机面扫得明明白白。

功能与原则

geiger 把自己定位成 a Geiger counter for AI agents。它做的事只有一件:只读地盘点本机每一个 AI agent、agent harness、MCP server、plugin、hook、subagent、AI 扩展,然后给每条发现打上来源(registry / store / git / local / remote / UNKNOWN-ORIGIN)和能力标签(EXECUTES / HOLDS-SECRETS / BROAD-FILESYSTEM / BROAD-WEB / NETWORK),并附上证据路径让你肉眼复核。三条硬约束写进 CLAUDE.md:

  • Read-only:唯一会写入磁盘的东西是你显式指定的 --json 文件,连 npm 都不调用。
  • No telemetry:没有外发端点,作者自己也不知道安装量。
  • Secrets by shape only:检测到凭据形状只报 key 名、文件、形态分类,绝不回显任何值(REDACTION GUARANTEE 测试守门)。

认可度

截至 2026-09-11,GitHub 仓库约 93 stars / 2 forks、npm 包 geiger-scan 一周下载 135 次、GitHub Trending Today / This Week 上榜。2026-09-10 登上 Hacker News Show HN(45 points / 22 comments),同一天被 AI Hacker Daily 列为当日 #1 pick,moltbook / deniz.in / shortsingh 等独立媒体跟进报道。体量不大但热度集中,是典型的「踩中时代情绪 + 解决真实痛点」的爆款曲线。

链接

  • 仓库:https://github.com/Atomburstofficial/geiger
  • npm:https://www.npmjs.com/package/geiger-scan
  • HN 讨论:https://news.ycombinator.com/item?id=49627646

原作者

Atomburst——一个 2026 年 8 月 10 日才创建的 GitHub 组织账号,geiger 是它唯一的公开仓库,单一 contributor,12 次 commit。商业上他们另卖一套叫 DomainGuard 的团队级策略执行产品(在前一层做 policy enforcement),geiger 本身保持 MIT、免费、独立、可单独使用。

介绍

geiger 不做安全审计、不判定包是不是恶意,也不监听运行时行为。它只问一件事:「现在机器上跑了什么、它能摸到哪里」,并以人话 + 证据路径的形式回答。

扫描覆盖以下 7 个生态:

  • Claude Code:global + per-project 的 MCP servers、hooks、plugins、skills、subagents、apiKeyHelper
  • MCP hosts:Claude Desktop、Cursor、Windsurf、VS Code(user + project)、Cline、Roo Code、Continue、Zed
  • 其他 agent CLI:Codex CLI、Gemini CLI、Kilo CLI、Grok Build、Aider、OpenCode、Qwen Code、DeepSeek Harness、GitHub Copilot CLI、Goose、JetBrains Junie、Open Interpreter、LM Studio、Ollama
  • 编辑器扩展:VS Code / Insiders / Cursor 里的 AI 扩展
  • JetBrains IDEs:每个产品的 AI Assistant / MCP 设置入口
  • 全局 npm CLIs:直接读 node_modules,不执行任何包
  • 浏览器扩展:Chrome / Edge / Brave / Firefox 里带权限的 AI 扩展

每条发现都打四元组:身份 + 来源 + 能力标签 + 证据路径。它还能识别「policy wrapper」(在 MCP server 前面套的强制层),把两层都报出来,不让真实 server 被包装藏起来。

特点

  • 零运行时依赖:dependencies: 0,理由是信任模型——你读到的源码就是跑起来的代码
  • 零安装:npx geiger-scan 直接拉仓库跑,要常驻可走 npx github:Atomburstofficial/geiger
  • 可签名交付:npm 包带 GitHub Actions provenance,签名链到具体 commit
  • 基线 + 漂移检测:--json baseline.json 存快照,geiger-scan --strict --diff baseline.json 只在新增 EXECUTES 或凭据时退出码 2,可挂 cron / CI
  • 多输出形态:终端报告、--html 每条带「What to do」修复块、--json 带版本化 schema
  • 明确的能力边界:自承「不读运行时、不判定包好坏、不替代审计」,并把局限写在 FAQ 前面

使用方法

最小示例(一行命令):

npx geiger-scan

会打印类似这样的报告:

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]
  magic (Claude Code · global) MCP server  [EXECUTES] [HOLDS-SECRETS] [BROAD-FILESYSTEM]
  note: wrapped by a policy agent (domainguard-agent.exe)
  hooks: UserPromptSubmit, PreToolUse hook  [EXECUTES]
...

进阶用法:

# 生成可机读快照(团队 / 巡检)
npx geiger-scan --json baseline.json

# 与上次对比:只有新增可执行项或凭据时才非零退出
npx geiger-scan --strict --diff baseline.json

# 浏览器里看带修复建议的 HTML 报告
npx geiger-scan --html report.html

# 扫另一个用户目录或挂载镜像
npx geiger-scan --home /mnt/other-user

# 在 CI / cron 里挂漂移报警
0 9 * * * npx -y geiger-scan --strict --diff /etc/geiger/baseline.json

使用场景与人群

  • AI 重度开发者:同时在用 Claude Code + Cursor + Codex + 一个本地 MCP server 的工程师,想知道谁拿了我的 API key、谁加了 hook
  • 安全/合规团队:要给终端盘点 AI 装机面、做季度审查、把「agent 能力清单」做成 lockfile 一样的基线
  • MSP / IT 运维:用 RMM 或登录脚本批量出每台机器的 --json,丢到共享盘做 fleet drift
  • Skill 生态研究者:想把「agentic 表面」量化为可对比的快照,做横截面研究
  • 企业决策者:在引入 agent 工具前先做能力尽职调查,geiger 的 HTML 报告可直接进 PPT

输入与输出案例

Input:在一台同时装了 Claude Code、Cursor、OpenCode、Chrome AI 扩展的开发本上跑:

npx geiger-scan --json scan.json

Output(节选):

{
  "findings": [
    {
      "id": "claude-code-mcp-magic",
      "ecosystem": "claude-code",
      "kind": "mcp-server",
      "name": "magic",
      "origin": "registry",
      "package": "@21st-dev/magic@latest",
      "exposure": ["EXECUTES", "HOLDS-SECRETS", "BROAD-FILESYSTEM"],
      "credentials": [
        {
          "key": "API_KEY",
          "shape": "opaque-credential",
          "file": "~/.claude.json",
          "redacted": true
        }
      ],
      "wrapped_by": "domainguard-agent.exe"
    },
    {
      "id": "cursor-mcp-github",
      "ecosystem": "cursor",
      "kind": "mcp-server",
      "name": "github",
      "origin": "registry",
      "exposure": ["EXECUTES", "NETWORK"]
    }
  ],
  "summary": {
    "total": 9,
    "ecosystems": 3,
    "executes": 7,
    "credentials": 1
  }
}

第二个例子——漂移报警:

# 周一存基线
npx geiger-scan --json /etc/geiger/baseline.json

# 周五对比,发现有个新装 Skill 注册了一个 hook
npx geiger-scan --strict --diff /etc/geiger/baseline.json
# exit 2
# + claude-code · new hook: PostToolUse · @skills-inc/auto-formatter

——这条非零退出码就是要人工复核的信号,剩下的不动。


GitHub: https://github.com/Atomburstofficial/geiger

评论区

0 条评论

登录后可评论。

Skill超级捕获手 1338 阅读