Bomly README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the Bomly listing page.

Bomly CLI

Analyze Your Software DNA.

CI OpenSSF Scorecard Latest release GitHub release downloads License: Apache-2.0 Go Reference

Bomly is a free, open-source command-line tool for understanding what your software depends on. It is built for developers, security engineers, and CI pipelines. Bomly:

  • scans source trees, SBOMs, Git refs, and container images into one dependency graph;
  • explains why a package is present;
  • adds vulnerability and license data when you ask for it with --enrich;
  • checks the result against your policy and exits with a code CI can act on;
  • writes JSON, SARIF, SPDX, and CycloneDX output.

No account, no login, no service to host, no telemetry. One binary. Bomly contacts no vulnerability or license service unless you pass --enrich. Network and privacy lists every network trigger so you can check that claim yourself.

Install

bash
# macOS / Linuxbrew
brew install bomly-dev/tap/bomly

# Linux / macOS install script
curl -fsSL https://bomly.dev/install.sh | sh

# Windows
winget install Bomly.BomlyCLI

Check the install with bomly version. Installation covers Linux packages, Scoop, go install, the smaller bomly-lite binary that uses your own Syft and Grype, checksums, and uninstalling.

Start with a scan

bash
# Scan the current project
bomly scan

# Scan a specific directory
bomly scan --path ./services/api

# Scan a container image
bomly scan --image ghcr.io/example/app:latest

# Scan a remote Git ref
bomly scan --url https://github.com/owner/repo --ref v1.2.3

# Read an existing SPDX or CycloneDX SBOM
bomly scan --sbom --path ./sbom.cdx.json

Bomly reads manifests, lockfiles, package-manager output, container layers, or existing SBOMs and turns them into one dependency graph. Native detectors cover Go, npm, pnpm, Yarn, Maven, Gradle, Python, Composer, Bundler, GitHub Actions, and more. Syft covers the remaining ecosystems and container images. See the Support matrix and Scan targets.

Bomly scan progress showing indexed subprojects, detected dependencies, enriched packages, and resolved graph

What Bomly can answer

QuestionCommandRead more
What do we depend on?bomly scanGetting started
Which packages have known vulnerabilities, and is there a fix?bomly scan --enrichMatchers
Should this build fail?bomly scan --enrich --audit --fail-on highAuditors, Exit codes
Which findings can my code reach? (experimental)bomly scan --enrich --audit --analyze --fail-on high --fail-on reachableReachability
Why is this package here?bomly explain lodashexplain
What changed in this PR?bomly diff --base main --head HEAD --enrich --auditdiff
Give me an SBOMbomly scan -o spdx=sbom.spdx.json -o cyclonedx=sbom.cdx.jsonSBOM formats
Give me something CI can readbomly scan --json, --format sarifOutput formats

Reachability is experimental: "unreachable" is not a guarantee of safety. Use cases has more recipes, and Release assurance lists the checks every release goes through.

Explore interactively

Open the terminal UI when you want to inspect a graph by hand:

bash
bomly scan --interactive

Use it to fuzzy-find packages, inspect versions and scopes, pivot through findings, and see how a dependency entered the graph without writing a report to disk. See Interactive TUI.

Bomly interactive TUI overview with component, vulnerability, license, target, and distribution panels

Gate pull requests

The Bomly Guard action runs bomly diff against a pull request's merge base and posts the result as a check and a PR comment. Only the packages the PR changed are audited, so existing findings elsewhere never block a PR:

yaml
# .github/workflows/bomly.yml
- uses: actions/checkout@v5
  with:
    fetch-depth: 0
- uses: bomly-dev/bomly-guard@v1
  with:
    fail-on: high

See Bomly Guard. CI integration has recipes for GitLab, Jenkins, Azure DevOps, and CircleCI.

GitHub pull request checks showing Bomly Guard failing a required dependency check

Use Bomly with AI agents

Bomly can run as a local server for the Model Context Protocol (MCP), so an AI coding agent can call the same scan, explain, and diff tools you use on the command line:

bash
bomly mcp serve

If you have not installed the CLI, the bomly-mcp npm wrapper starts the same server:

Terminal
npx -y bomly-mcp

See MCP server for the Claude Code, Cursor, and VS Code setup and the tool reference.

Configure and extend

Bomly reads settings from ~/.bomly/config.yaml, then from the file named by --config or BOMLY_CONFIG, then from BOMLY_* environment variables, then from flags. Later sources win. A config file inside a repository is never loaded on its own: pass --config .bomly/config.yaml to use one. See the Config reference.

Plugins add detectors, matchers, auditors, and analyzers without forking Bomly:

bash
bomly plugins install github:bomly-dev/bomly-plugin-bun-lock-detector@v0.1.0
bomly plugins enable bomly.examples.detector.bun-lock
bomly plugins verify bomly.examples.detector.bun-lock

See Plugins to install and trust plugins, and Plugin authoring to write one.

Documentation

Contributor setup lives in CONTRIBUTING.md. Architecture details live in docs/ARCHITECTURE.md.

Questions and sponsorship

For questions, ideas, and help, use Bomly Discussions. Use this repository's issues for confirmed bugs, regressions, and concrete implementation work.

If Bomly is useful to you, star the repository, share feedback, contribute, or sponsor ongoing maintenance.

License

Bomly CLI is licensed under the Apache License 2.0.