Supply-chain security scanner CLI for macOS โ wraps Perplexity Bumblebee with a polished terminal interface
Project description
๐ Bumblebee CLI
A terminal-native supply-chain security scanner for macOS. Type bee and it opens. No configuration required to get started.
Bumblebee CLI wraps the Perplexity Bumblebee binary with a polished interface โ interactive menus, scheduled scans via launchd, HTML and PDF reports, and a threat 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 distributionbumblebee_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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bumblebee_cli-1.1.0.tar.gz.
File metadata
- Download URL: bumblebee_cli-1.1.0.tar.gz
- Upload date:
- Size: 35.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91498dcfcd33bbb878ed4e538204040934848f6f7044700655b2ac857bdee776
|
|
| MD5 |
a661dc0f19a06742e05211562c4ef3a1
|
|
| BLAKE2b-256 |
1eaa309038880447159507fde9193a6dc2ab9d42cf4654ad6c782f0150f2a5bd
|
File details
Details for the file bumblebee_cli-1.1.0-py3-none-any.whl.
File metadata
- Download URL: bumblebee_cli-1.1.0-py3-none-any.whl
- Upload date:
- Size: 35.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6eb37c80b869782a3633894736ea46eea8aced7330d70b7100c293edd26e067
|
|
| MD5 |
b10769b537bd3d42139b4a1414c6128f
|
|
| BLAKE2b-256 |
22af7ee6cd1e486d7fd1146fd6d5413cb8f3ae66bb045543776aac94fd54c89f
|