Skip to main content

ChatSBOM - Talk to your Supply Chain. Chat with SBOMs.

Project description

ChatSBOM

Talk to your Supply Chain. Chat with SBOMs.

ChatSBOM is a CLI tool for deep insights into Software Bill of Materials (SBOM) data.

Demo

Motivation

GitHub's Dependency Graph shows which repositories depend on your project, but there's no way to sort dependents by stars (isaacs/github#1537). This makes it difficult for maintainers of popular packages to identify their most important downstream users. ChatSBOM solves this by collecting and indexing SBOM data, enabling queries like "which popular projects use my library?"

Key Features

  • Collect: Find high-quality repos on GitHub (stars/language)
  • Download: Fetch dependency files (go.mod, package.json, etc.)
  • Convert: Transform files to standard SBOM format using Syft
  • Index: Load SBOM data into ClickHouse database
  • Status: View database statistics and insights
  • Query: Search for library dependencies via CLI
  • Chat: AI-powered natural language queries

Quick Start

Prerequisites

  • uv - Python package manager for fast installation and execution of the CLI tool
  • syft - SBOM generation tool for extracting dependency data from project files
  • docker - Container runtime for running infrastructure services
  • docker-compose - Container orchestration tool for managing multi-container deployments
  • clickhouse - Columnar database for storing and querying SBOM metadata efficiently

Usage

Install uv

curl -LsSf https://astral.sh/uv/install.sh | sh

Run commands directly with uvx:

# 1. Collect repository links from GitHub (e.g., top Go repos)
uvx chatsbom collect --language go --min-stars 1000

# 2. Download dependency files
uvx chatsbom download --language go

# 3. Convert to standard SBOM format
uvx chatsbom convert --language go

# 4. Index SBOM data into database
uvx chatsbom index --language go

# 5. Show database statistics
uvx chatsbom status

# 6. Query dependencies
uvx chatsbom query gin --language go

# 7. Launch AI chat interface
uvx chatsbom chat

Architecture

ChatSBOM follows a clean, modular architecture with high cohesion and low coupling:

Command Flow

collect → download → convert → index → status/query/chat
   ↓         ↓          ↓         ↓
 .jsonl    files/    sbom.json  database

Core Modules

  • chatsbom.core.config: Centralized configuration management

    • Path conventions (data directories, file naming)
    • Database connection settings
    • GitHub API configuration
  • chatsbom.core.repository: Data access layer (Repository Pattern)

    • Abstracts all database operations
    • Uses generators for memory-efficient data streaming
    • Supports batch operations for large datasets
  • chatsbom.core.validation: Data validation utilities

    • Validates data flow between commands
    • Ensures data integrity
  • chatsbom.commands.*: CLI commands (7 commands)

    • Each command has a single responsibility
    • Decoupled through configuration and repository layers

Use Cases

Asking AI Agent to retrieve the top 10 projects using gin framework.

01 02

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

chatsbom-0.2.3.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

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

chatsbom-0.2.3-py3-none-any.whl (35.5 kB view details)

Uploaded Python 3

File details

Details for the file chatsbom-0.2.3.tar.gz.

File metadata

  • Download URL: chatsbom-0.2.3.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for chatsbom-0.2.3.tar.gz
Algorithm Hash digest
SHA256 22aa3493f1005838742776cb42cf300db11f8aac653fd6faf692a91bdd479701
MD5 05de240c4720d20061797c6d0a91e791
BLAKE2b-256 a2cfc5eb1305b57e73092196e1ff57e0bdbfe7899fe4d81217a36394d894c398

See more details on using hashes here.

File details

Details for the file chatsbom-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: chatsbom-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 35.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for chatsbom-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 960f79c130f1d2b95920198b76536ff83254c83caaf4d34907b052923aa1b52f
MD5 61da6ce33b394b4ff0d42b60a4bab04c
BLAKE2b-256 c19f92be151d002f986a5b2ce0509e9b3901f66f3d667530e982ed75edb9cd85

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