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
——这条非零退出码就是要人工复核的信号,剩下的不动。
评论区
登录后可评论。