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

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: chatsbom-0.2.2.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.2.tar.gz
Algorithm Hash digest
SHA256 fc012dd854fa784b3b6c80abb769ca2a5cc5514abc803b5de4efb1ce3684ca27
MD5 e2a1251f10f1f40f9cf36f9b4675c278
BLAKE2b-256 27aec2696fe8292386466da61ec17e04c00b52dc017267c9f6ba416bcf0464cd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chatsbom-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 35.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ce6eb48669fe0ff8dbb625f2e13fb4a01c7f5a91be97e846d403f8bf2a65734d
MD5 59d1b48e5a9f89f445869bfda5b1f7e6
BLAKE2b-256 e9225ba40183451865739d679659eac0d95b3b1fd8cc2e1fa07a409d5d7bb8f8

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