Skip to main content
Glama

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

# 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.

Related MCP server: Axon Pro

Start with a scan

# 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.

What Bomly can answer

Question

Command

Read more

What do we depend on?

bomly scan

Getting started

Which packages have known vulnerabilities, and is there a fix?

bomly scan --enrich

Matchers

Should this build fail?

bomly scan --enrich --audit --fail-on high

Auditors, Exit codes

Which findings can my code reach? (experimental)

bomly scan --enrich --audit --analyze --fail-on high --fail-on reachable

Reachability

Why is this package here?

bomly explain lodash

explain

What changed in this PR?

bomly diff --base main --head HEAD --enrich --audit

diff

Give me an SBOM

bomly scan -o spdx=sbom.spdx.json -o cyclonedx=sbom.cdx.json

SBOM formats

Give me something CI can read

bomly scan --json, --format sarif

Output 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:

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.

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:

# .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.

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:

bomly mcp serve

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

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:

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.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides a dependency graph of any local repository with tools for change impact, transitive dependents, health audits, and more, enabling AI coding agents to see structure and refactor safely.
    4,912 npm
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides a graph-based code analysis to coding agents, enabling tools to trace call dependencies, assess change impact, and identify hotspots using tree-sitter and Neo4j.
    10
    2 npm
    MIT