Bomly

Dê ao seu agente de codificação o grafo de dependências que ele está prestes a alterar: escaneie uma árvore de código-fonte, SBOM, referência Git ou imagem de contêiner; explique por que um pacote está presente; compare dois grafos; verifique descobertas contra políticas.

Documentação

Bomly CLI

Analise o DNA do seu software.

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

Bomly é um CLI gratuito e de código aberto para inteligência de dependências. Ele examina árvores de código-fonte, SBOMs, referências Git e imagens de contêineres; explica por que as dependências estão presentes; enriquece pacotes com dados de vulnerabilidades e licenças quando você solicita; avalia políticas; e gera saídas amigáveis para automação em CI.

Gratuito e de código aberto, sem conta, sem login. Um único binário. Nenhum serviço para hospedar. Sem telemetria. Nenhuma chamada de correspondência de saída, a menos que você opte por participar com --enrich. Rede e Privacidade documenta cada gatilho de rede para que você possa auditar essa afirmação em vez de aceitá-la por fé.

Instalar o Bomly

# 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

Arquivos pré-compilados e pacotes Linux são publicados a partir de GitHub Releases. Os lançamentos incluem bomly (binário completo com Syft e Grype integrados) e bomly-lite (binário menor que delega para syft e grype externos).

Verifique a instalação:

bomly version

Para pacotes Linux, Scoop, instalação via Go, somas de verificação, versões fixadas, atualizações e instruções de desinstalação, consulte Instalação.

Comece com uma Verificação

# 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 lê manifestos, lockfiles, saídas de gerenciadores de pacotes, camadas de contêineres ou SBOMs existentes e os transforma em um único grafo de dependências. Detectores nativos cobrem Go, npm, pnpm, Yarn, Maven, Gradle, Python, Composer, Bundler, GitHub Actions, ingestão de SBOM e muito mais. Syft preenche a cauda longa, incluindo imagens de contêineres. Consulte a Matriz de Suporte e Alvos de Verificação.

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

O que o Bomly Pode Responder

PerguntaComando
Do que dependemos?bomly scan
O que mudou neste PR ou branch?bomly diff --base main --head HEAD
Por que este pacote está aqui?bomly explain lodash
Quais descobertas importam para a política?bomly scan --enrich --audit --fail-on high
O CI pode falhar em descobertas de alta gravidade?bomly scan --enrich --audit --fail-on high --format sarif
Posso triar primeiro as descobertas alcançáveis?bomly scan --enrich --audit --analyze --fail-on high --fail-on reachable

Para mais receitas, consulte Começando e Casos de Uso. Para revisar as entradas públicas, comandos, resultados esperados e limitações por trás de afirmações importantes de comportamento, consulte Evidências Reproduzíveis.

Explore Interativamente

Abra a interface de terminal quando quiser inspecionar um grafo manualmente:

bomly scan --interactive

Use-a para encontrar pacotes com busca difusa, inspecionar versões e escopos, navegar pelas descobertas e ver como uma dependência entrou no grafo sem gravar um relatório em disco. Consulte TUI Interativo.

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

Enriqueça e Audite

Por padrão, o Bomly não chama serviços de vulnerabilidade, licença, ciclo de vida ou scorecard. Adicione --enrich quando quiser inteligência externa de pacotes:

# Fetch vulnerability and license data
bomly scan --enrich

# Evaluate policy against enriched package data
bomly scan --enrich --audit --fail-on high

# Add experimental reachability analysis
bomly scan --enrich --audit --analyze --fail-on high --fail-on reachable

O enriquecimento integrado usa serviços públicos como OSV, CISA KEV, deps.dev e OpenSSF Scorecard. --audit avalia os dados de vulnerabilidade e licença já presentes nos pacotes; use --enrich --audit quando quiser buscar e avaliar em uma única execução.

A alcançabilidade é experimental. É útil para triagem, mas "inalcançável" não é uma garantia de segurança. Leia Alcançabilidade antes de usar --fail-on reachable como um portão de CI.

Explique e Compare

Use explain quando um pacote transitivo aparecer e você precisar do caminho:

bomly explain requests
bomly explain lodash --path ./web

Use diff quando precisar revisar mudanças de dependências entre referências Git ou SBOMs:

# Compare Git refs
bomly diff --base main --head HEAD

# Compare two SBOM files
bomly diff --sbom --base ./old.spdx.json --head ./new.spdx.json

Consulte Começando para o passo a passo da primeira execução e Casos de Uso para receitas de revisão de PR, revisão de atualizações e triagem de incidentes.

Gere Saídas para CI

O Bomly pode escrever texto legível por humanos, JSON, SARIF, SPDX 2.3 e CycloneDX 1.7:

# Structured JSON for automation
bomly scan --json

# SARIF for security tabs and code-scanning integrations
bomly scan --enrich --audit --fail-on high --format sarif

# Write SBOM artifacts (add --format text to also print the report)
bomly scan -o spdx=sbom.spdx.json -o cyclonedx=sbom.cdx.json

# Emit one SBOM to stdout
bomly scan --format cyclonedx

Os códigos de saída são estáveis para scripts: 0 para resultados limpos, 2 para violações de política e valores separados para falhas de uso, tempo de execução e projetos sem suporte. Consulte Formatos de Saída, Formatos SBOM e Códigos de Saída.

Para bloquear pull requests, use a ação Bomly Guard ou chame o CLI diretamente do seu fluxo de trabalho:

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

Consulte Bomly Guard e Integração com CI.

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

Use o Bomly com Agentes de IA

O Bomly pode ser executado como um servidor MCP local para que agentes de IA possam chamar as mesmas ferramentas de grafo de dependências que você usa na linha de comando:

bomly mcp serve

Se você não instalou o CLI, o wrapper npm bomly-mcp inicia o mesmo servidor:

npx -y bomly-mcp

Adicione o Bomly a um agente compatível com MCP, como Claude Code, Cursor, VS Code ou uma ferramenta personalizada, e o agente receberá JSON estruturado que pode resumir ou raciocinar. Consulte Servidor MCP para receitas de configuração e a referência de ferramentas.

Configure e Estenda

O Bomly lê configuração do seu arquivo de usuário, de um arquivo de configuração selecionado explicitamente, de variáveis de ambiente BOMLY_* e de flags de CLI, com fontes posteriores tendo precedência:

  1. ~/.bomly/config.yaml
  2. --config <path> ou BOMLY_CONFIG
  3. Variáveis de ambiente BOMLY_*
  4. Flags de CLI

Arquivos de configuração do repositório nunca são carregados automaticamente. Um projeto pode manter sua configuração compartilhada em .bomly/config.yaml, mas você deve confiar nela explicitamente com --config .bomly/config.yaml ou BOMLY_CONFIG. Consulte a Referência de Configuração gerada.

Plugins gerenciados permitem adicionar detectores, correspondentes e auditores sem bifurcar o 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

Consulte Plugins para orientações sobre instalação, confiança e criação.

Documentação

  • Começando - instale o Bomly e execute sua primeira verificação
  • Tutorial - da primeira verificação a um portão de CI em um projeto real
  • FAQ - respostas rápidas sobre privacidade, contas e diferenças de ferramentas
  • Instalação - métodos de instalação, somas de verificação, atualizações, desinstalação
  • Casos de Uso - receitas práticas para portões de PR, SBOMs, triagem e verificações offline
  • Alvos de Verificação - diretórios, repositórios Git, contêineres e SBOMs
  • Formatos de Saída - texto, JSON, SARIF, SPDX, CycloneDX
  • Formatos SBOM - SPDX 2.3 e CycloneDX 1.7, ingestão e receitas de conversão
  • Integração com CI - GitHub Actions, GitLab, Jenkins, Azure, CircleCI
  • Bomly Guard - ação GitHub turnkey para revisão de dependências em PRs
  • Servidor MCP - conecte o Bomly ao Claude Code, Cursor, VS Code ou outro cliente MCP
  • Alcançabilidade - triagem experimental de vulnerabilidades alcançáveis
  • Plugins - detectores, correspondentes e auditores externos gerenciados
  • Notas de Lançamento - o que mudou em cada versão
  • Toda a Documentação - índice completo de documentação

A configuração de contribuidores está em CONTRIBUTING.md. Detalhes de arquitetura estão em docs/ARCHITECTURE.md.

Perguntas

Para perguntas, ideias e suporte geral, use Discussões do Bomly.

Use os problemas deste repositório apenas para bugs confirmados, regressões ou trabalho de implementação acionável.

Suporte

O Bomly é um projeto de código aberto. Se você o achar útil, pode apoiar o projeto marcando o repositório com estrela, compartilhando feedback, abrindo problemas, contribuindo com melhorias ou patrocinando a manutenção contínua.

Consulte Apoie o Bomly.

Licença

O CLI do Bomly é licenciado sob a Apache License 2.0.