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.8.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.8-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: chatsbom-0.2.8.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.8.tar.gz
Algorithm Hash digest
SHA256 34b3fac18e1a3f11a2351aff99c08a656ec6059c5cd05bd68a8acca63bd34b82
MD5 f50463cecf9ba30bc769f35ca82468c2
BLAKE2b-256 8e14e45829b787725de4b67a20bfbb3287e7f6f54e16b3112f9375db7396da0a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chatsbom-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 36.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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 4f684acda26aaca72092bad97413587d1d3cd7a782325194114e1b7756909f0a
MD5 f9bc7aeff23fd1a28d13f7eda13f0e6f
BLAKE2b-256 bdff55a2ab5af5013d799585635357a8f7aed4300da62ca87e64cb56011b35cd

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