
仅读开发者终端扫描器,用于磁盘包、扩展和开发者工具元数据,旨在检测已知的软件供应链泄露风险。
概览
Bumblebee 是一个只读的库存收集器,用于 macOS 和 Linux 开发端点上的包、扩展和开发者工具元数据。 它回答了一个狭窄的供应链响应问题:当公告指定一个包、扩展或版本时,哪些开发者机器的磁盘元数据显示匹配? SBOM帮助解答出货情况,EDR帮助解答运行或触及网络的部分,但供应链响应通常需要不同的视角:锁文件、包管理器元数据、扩展清单以及支持的开发者工具配置的混乱本地状态。 Bumblebee将散落的磁盘状态转化为结构化的NDJSON组件记录,并在获得暴露目录时,标记精确匹配,以便快速且只读地进行暴露检查,当响应者已经知道他们需要查找什么时。 - 单静态二进制,Go 1.25+,零非标准数据库依赖。- 针对不同群体和节奏的三种扫描配置文件(基线、投影、深度)。
概述(AI 翻译)
Bumblebee 是一个只读的物品收集器,用于包裹、扩展, 以及macOS和Linux开发端点上的开发工具元数据。
它回答了一个狭窄的供应链响应问题:当咨询 开发者机器显示的是一个包、扩展或版本 现在磁盘上的元数据匹配吗?
SBOMs帮助回答哪些已发布,EDR则帮助确定运行情况 触及网络,但供应链响应往往需要不同的方式 视图:锁文件间的混乱本地状态,包管理器元数据, 扩展清单,以及支持的开发者工具配置。
Bumblebee 将散落的磁盘状态转换为结构化的 NDJSON 组成记录,并在获得曝光目录时,标记精确 匹配用于快速只读暴露检查,当响应者已经 知道他们在找什么。
范围
- 单静态二进制,Go 1.25+,零非标准库依赖。
- 三种扫描配置文件(
baseline、project、deep)用于不同 种群和阶数。 - 仅读取锁文件,包管理器安装元数据, 扩展清单,以及支持的 MCP JSON 配置,列在 docs/inventory-sources.md。没有包裹
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
bumblebee
Bumblebee is a read-only inventory collector for package, extension, and developer-tool metadata on macOS and Linux developer endpoints.
It answers a narrow supply-chain response question: when an advisory names a package, extension, or version, which developer machines show a match in their on-disk metadata right now?
SBOMs help answer what shipped, and EDR helps answer what ran or touched the network, but supply-chain response often needs a different view: messy local state across lockfiles, package-manager metadata, extension manifests, and supported developer-tool configs.
Bumblebee turns that scattered on-disk state into structured NDJSON component records and, when given an exposure catalog, flags exact matches for fast, read-only exposure checks when responders already know what they are looking for.
Scope
- Single static binary, Go 1.25+, zero non-stdlib dependencies.
- Three scan profiles (
baseline,project,deep) for different populations and cadences. - Reads only the lockfiles, package-manager install metadata,
extension manifests, and supported MCP JSON configs listed in
docs/inventory-sources.md. No package
manager execution (
npm ls,pip show,go list, …) and no source-file reads. MCP host configs can carry environment values and credentials in theirenvblocks; Bumblebee parses these configs for the server inventory it needs but does not emit those values in its records.
Coverage
| Family | Emitted ecosystem |
Sources |
|---|---|---|
| npm | npm |
package-lock.json, npm-shrinkwrap.json, node_modules/.package-lock.json, node_modules//package.json |
| pnpm | npm |
pnpm-lock.yaml, .pnpm/.../package.json |
| Yarn | npm |
yarn.lock (Classic + Berry) |
| Bun | npm |
bun.lock; bun.lockb presence as diagnostic |
| PyPI | pypi |
*.dist-info/METADATA, INSTALLER, direct_url.json, *.egg-info/PKG-INFO |
| Go modules | go |
go.sum, go.mod |
| RubyGems | rubygems |
Gemfile.lock, installed *.gemspec |
| Composer | packagist |
composer.lock, vendor/composer/installed.json |
| MCP | mcp |
JSON host configs: mcp.json, .mcp.json, claude_desktop_config.json, mcp_config.json, mcp_settings.json, cline_mcp_settings.json, plus ~/.gemini/settings.json (Gemini CLI / Code Assist) and ~/.claude.json (Claude Code user- and project-scoped mcpServers). Non-JSON configs (Codex config.toml, Continue YAML) are not parsed in v0.1. |
| Agent skills | agent-skill |
skills.sh / vercel-labs/skills lock files: global ~/.agents/.skill-lock.json (or $XDG_STATE_HOME/skills/.skill-lock.json) and project-local skills-lock.json. Loose SKILL.md directories without a lock file are not enumerated. |
| Editor extensions | editor-extension |
VS Code, Cursor, Windsurf, VSCodium manifests |
推荐工具
换一个关键词,或者移除筛选条件。
安装
npx skillfish add perplexityai/bumblebee