{"adoption": {"forks": 445, "observed_at": "2026-08-28T04:09:04.061271+00:00", "stars": 4975}, "canonical_url": "https://ross.abutalabs.com/products/bumblebee", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Read-only developer endpoint scanner for on-disk package, extension, and developer-tool metadata, built to check exposure to known software supply-chain compromises.", "domain": ["security", "developer-tools"], "enriched": true, "function": ["security", "developer-tools", "vulnerability-scanning", "cli"], "health_score": 97, "homepage": null, "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["perplexityai/bumblebee"], "name": "perplexityai/bumblebee", "platform": ["cli"], "pushed_at": "2026-08-07T17:19:42+00:00", "repo": "perplexityai/bumblebee", "stars": 4975, "tags": ["supply-chain-security", "package-inventory", "sbom", "exposure-scanning", "nd", "mcp", "read-only-scanner", "command-line", "macos", "linux"], "topics": ["golang", "package-inventory", "supply-chain-security"], "urls": [], "use_cases": ["check which developer machines have a compromised npm package installed", "inventory all packages and extensions on a macOS or Linux dev endpoint", "respond to a supply-chain advisory by scanning for affected versions", "find MCP server configs and agent skills across developer machines", "collect package metadata without running package managers", "audit editor and browser extension exposure after a malicious extension report"], "what_it_is": "Bumblebee is a read-only Go CLI that scans developer endpoints for on-disk package, extension, and developer-tool metadata (lockfiles, package-manager metadata, editor/browser extension manifests, MCP configs) and emits structured NDJSON component records. It flags exact matches against a supplied exposure catalog to answer which machines are affected by a named supply-chain compromise.", "when_to_avoid": ["you need full SBOM generation for shipped artifacts rather than endpoint state", "you need runtime or network behavior data, which requires EDR tooling", "you need to scan Windows endpoints", "you need vulnerability scanning with unknown-candidate discovery rather than exact-match lookups"], "when_to_choose": ["you need fast, read-only exposure checks for a known compromised package or extension", "you want a single static binary with zero dependencies for endpoint inventory", "you need coverage of messy local state like lockfiles, dist-info metadata, and MCP host configs", "you are doing incident response and already know what to look for"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bumblebee", "repo": "perplexityai/bumblebee", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:17:44.330862+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef979b3257d6e03c282be22cfc073ebb55b238a3845c13aa69874a027449c1e", "fetched_at": "2026-08-28T04:09:04.061271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perplexityai/bumblebee"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:17:44.330862+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef979b3257d6e03c282be22cfc073ebb55b238a3845c13aa69874a027449c1e", "fetched_at": "2026-08-28T04:09:04.061271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perplexityai/bumblebee"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:17:44.330862+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef979b3257d6e03c282be22cfc073ebb55b238a3845c13aa69874a027449c1e", "fetched_at": "2026-08-28T04:09:04.061271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perplexityai/bumblebee"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:17:44.330862+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef979b3257d6e03c282be22cfc073ebb55b238a3845c13aa69874a027449c1e", "fetched_at": "2026-08-28T04:09:04.061271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perplexityai/bumblebee"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:17:44.330862+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef979b3257d6e03c282be22cfc073ebb55b238a3845c13aa69874a027449c1e", "fetched_at": "2026-08-28T04:09:04.061271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perplexityai/bumblebee"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:17:44.330862+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef979b3257d6e03c282be22cfc073ebb55b238a3845c13aa69874a027449c1e", "fetched_at": "2026-08-28T04:09:04.061271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perplexityai/bumblebee"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.061271+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:17:44.330862+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef979b3257d6e03c282be22cfc073ebb55b238a3845c13aa69874a027449c1e", "fetched_at": "2026-08-28T04:09:04.061271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perplexityai/bumblebee"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:17:44.330862+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef979b3257d6e03c282be22cfc073ebb55b238a3845c13aa69874a027449c1e", "fetched_at": "2026-08-28T04:09:04.061271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perplexityai/bumblebee"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:17:44.330862+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef979b3257d6e03c282be22cfc073ebb55b238a3845c13aa69874a027449c1e", "fetched_at": "2026-08-28T04:09:04.061271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perplexityai/bumblebee"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:17:44.330862+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef979b3257d6e03c282be22cfc073ebb55b238a3845c13aa69874a027449c1e", "fetched_at": "2026-08-28T04:09:04.061271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perplexityai/bumblebee"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 7, "rhythm": 89}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 105, "days_push": 26, "days_rel": 76, "gap_med": 26, "n_releases_24m": 2}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}