Skip to main content

Dependency security scanner for macOS โ€” detects malicious, vulnerable, and suspicious packages across npm, PyPI, Go, Ruby and more

Project description

๐Ÿ Bumblebee CLI

PyPI version License: MIT Python 3.11+

Dependency security scanner for macOS. Detects malicious, vulnerable, and suspicious packages across npm, PyPI, Go, Ruby, and more โ€” right from your terminal.

Type bee and you're scanning. No config files, no accounts, no setup beyond one install command.

Bumblebee CLI wraps the Perplexity Bumblebee scanner with a polished terminal interface โ€” interactive REPL shell, auto-generated HTML/PDF reports, scheduled background scans via launchd, and a live threat intelligence catalog system.


Installation

pip (recommended)

pip install bumblebee-cli

Requires Python 3.11 or later. After installation, the bee command is available system-wide.

Homebrew (macOS)

brew tap chanduchitikam/bumblebee
brew install bumblebee-cli

From source

git clone https://github.com/chanduchitikam/bumblebee-cli
cd bumblebee-cli
pip install .

Quick start

bee

No arguments opens the interactive guided menu. Use the arrow keys to navigate and press Enter to select.


Step 1 โ€” Install the scanner

Before scanning, install the Perplexity Bumblebee binary. This requires Go to be installed.

bee install

Verify it is working:

bee selftest

Commands

Scan

bee scan /path/to/project

Scan a specific directory. Options:

Flag Description
--profile default Scan profile (default, strict, fast)
--ecosystem npm Restrict to one or more ecosystems
--findings-only Print only packages with findings, suppress clean ones
--output results.ndjson Save raw NDJSON output to a file
--max-duration 120 Timeout in seconds
--quiet Suppress progress output

Example โ€” scan current directory, strict profile, findings only:

bee scan . --profile strict --findings-only

Reports

Generate an HTML or PDF report from a saved scan file.

bee report html results.ndjson
bee report pdf  results.ndjson

Reports are saved to ~/.bumblebee-cli/reports/. Open the path printed in the terminal to view.

Generate a report from the most recent scan automatically:

bee report last --format html

Scheduled scans

Bumblebee CLI uses macOS launchd to schedule recurring scans. No cron required.

Add a daily scan of your home directory at 9 AM:

bee schedule add morning-scan --when daily ~/

List all schedules:

bee schedule list

Available --when presets:

Preset Time
morning 8:00 AM
noon 12:00 PM
daily 9:00 AM
evening 6:00 PM
night 10:00 PM
weekly Monday 9:00 AM
monthly 1st of month, 9:00 AM
hourly Every 60 minutes
HH:MM Specific time, e.g. --when 14:30

Manage schedules:

bee schedule disable morning-scan
bee schedule enable  morning-scan
bee schedule run-now morning-scan
bee schedule logs    morning-scan
bee schedule remove  morning-scan

Exposure catalogs

Catalogs are JSON threat intelligence files that Bumblebee uses to match packages against known malicious indicators.

bee catalog list
bee catalog create my-catalog
bee catalog show  my-catalog
bee catalog validate my-catalog

Fetch a community threat intelligence feed:

bee catalog fetch-intel

History

bee history
bee history clear

Installer management

bee install          # Install Bumblebee binary
bee update           # Update to latest version
bee uninstall        # Remove Bumblebee binary
bee status           # Show installation status and version
bee version          # Print bee version

Directory layout

All data is stored under ~/.bumblebee-cli/:

~/.bumblebee-cli/
    scans/       Raw .ndjson scan output files
    reports/     Generated HTML and PDF reports
    catalogs/    Exposure catalog JSON files
    history.json Scan history log

Publishing this package (how to put bee on PyPI)

The steps below turn this project into a package anyone can install with pip install bumblebee-cli.

1. Check PyPI for name availability

Open https://pypi.org/search/?q=bumblebee-cli and confirm the name is not taken.

2. Install build tools

pip install build twine

3. Build the distribution

cd bumblebee-cli
python -m build

This creates two files in dist/:

  • bumblebee_cli-1.1.0.tar.gz โ€” source distribution
  • bumblebee_cli-1.1.0-py3-none-any.whl โ€” wheel

4. Create a PyPI account

Register at https://pypi.org/account/register/ and enable two-factor authentication.

5. Create an API token

Go to https://pypi.org/manage/account/token/ and create a token scoped to the project.

6. Upload

twine upload dist/*

Enter __token__ as the username and your API token as the password.

After this, anyone can install your package:

pip install bumblebee-cli

And type bee to launch it.

7. Publish to Homebrew (macOS)

Create a GitHub repository named homebrew-bumblebee. Inside it, add a file named bumblebee-cli.rb:

class BumblebeeCli < Formula
  include Language::Python::Virtualenv

  desc "Supply-chain security scanner CLI for macOS"
  homepage "https://github.com/chanduchitikam/bumblebee-cli"
  url "https://files.pythonhosted.org/packages/.../bumblebee_cli-1.1.0.tar.gz"
  sha256 "REPLACE_WITH_SHA256_FROM_PyPI"
  license "MIT"

  depends_on "python@3.12"
  depends_on "go" => :build

  resource "rich" do
    url "https://files.pythonhosted.org/packages/.../rich-13.7.0.tar.gz"
    sha256 "..."
  end

  def install
    virtualenv_install_with_resources
  end

  test do
    system "#{bin}/bee", "version"
  end
end

Users then install with:

brew tap chanduchitikam/bumblebee
brew install bumblebee-cli

Requirements

  • macOS 12 or later (Monterey+)
  • Python 3.11 or later
  • Go 1.21 or later (only needed for bee install)
  • Internet access for initial binary installation and threat intel feeds

License

MIT โ€” see LICENSE


๐Ÿ Powered by Perplexity Bumblebee

  • History track every action you take
  • Scheduler set up recurring scan tasks
  • Interactive mode a REPL-style shell for exploratory use

Installation

pip install -e .

Or install dependencies directly:

pip install -r requirements.txt

Usage

# Show help
bbcli --help

# Install a package
bbcli install requests

# Install a specific version
bbcli install requests --version 2.28.0

# Uninstall a package
bbcli uninstall requests

# List installed packages
bbcli list

# Scan a directory
bbcli scan-cmd --target ./my-project

# Generate a report
bbcli report --format json --output report.json

# Browse the catalog
bbcli catalog

# Show history
bbcli history --limit 10

# Start interactive mode
bbcli interactive

Development

Setup

git clone https://github.com/your-org/Bumblebee_CLI.git
cd Bumblebee_CLI
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .

Running Tests

pytest tests/ -v --cov=bbcli

Project Structure

Bumblebee_CLI/
โ”œโ”€โ”€ bbcli/
โ”‚   โ”œโ”€โ”€ __init__.py       # Package metadata
โ”‚   โ”œโ”€โ”€ main.py           # CLI entry point (Click commands)
โ”‚   โ”œโ”€โ”€ theme.py          # Rich console theme & helpers
โ”‚   โ”œโ”€โ”€ installer.py      # Package install/uninstall logic
โ”‚   โ”œโ”€โ”€ scanner.py        # Dependency & project scanner
โ”‚   โ”œโ”€โ”€ scheduler.py      # Task scheduler
โ”‚   โ”œโ”€โ”€ reporter.py       # Report generation (text/json/html)
โ”‚   โ”œโ”€โ”€ catalog.py        # Curated package catalog
โ”‚   โ”œโ”€โ”€ history.py        # Action history tracking
โ”‚   โ””โ”€โ”€ interactive.py    # Interactive REPL mode
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ test_installer.py
โ”‚   โ”œโ”€โ”€ test_scanner.py
โ”‚   โ”œโ”€โ”€ test_reporter.py
โ”‚   โ”œโ”€โ”€ test_catalog.py
โ”‚   โ””โ”€โ”€ test_history.py
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ setup.py
โ””โ”€โ”€ README.md

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bumblebee_cli-2.0.0.tar.gz (44.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bumblebee_cli-2.0.0-py3-none-any.whl (46.4 kB view details)

Uploaded Python 3

File details

Details for the file bumblebee_cli-2.0.0.tar.gz.

File metadata

  • Download URL: bumblebee_cli-2.0.0.tar.gz
  • Upload date:
  • Size: 44.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for bumblebee_cli-2.0.0.tar.gz
Algorithm Hash digest
SHA256 6c3d694712bb9cf616eebfc52d84f30156aef6a68e641b3b53bdb46904c6cfe8
MD5 a7671a13e4f208f91a53d5f9dacae065
BLAKE2b-256 655521e1ce3ac99824919020a916a7665055494400b3660887c49ecc9312ba66

See more details on using hashes here.

File details

Details for the file bumblebee_cli-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: bumblebee_cli-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 46.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for bumblebee_cli-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 29fb49d6e784af8a8902b5ec5c746247af2b69015b897946e318c85fbb82a342
MD5 5978a32aa32b6035e2abbd713b097ba9
BLAKE2b-256 9bf9a21ffe1bbe5e3cee554e6f2cde11f18ff6379289f73bd6c96cd14a2e234d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page