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 10000

# 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.6.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.6-py3-none-any.whl (35.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: chatsbom-0.2.6.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.6.tar.gz
Algorithm Hash digest
SHA256 324c5e9c72a1bec997774e965d534daa110aa97f47b99852503d22e33eb55513
MD5 52fd7d292d721e92a1b0200d84faa537
BLAKE2b-256 80eb9e7d1fdc3b7ececd3ae185ae33a98a7cd44ad2ce86b929d8e0c336d87e3f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chatsbom-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 35.6 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 bb2fb50aa72dc7a5205eddef491f3a7392156cf8662ac95cfecb1c9c72d90c1b
MD5 9820d22d78f666665f6f4141a5d0f503
BLAKE2b-256 1b29df22d4155f44428a943f1275f55a8149a6fb14366f314998258588b8cdcf

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