Skip to main content

GardWatch

GardWatch 🛡️

GardWatch is a powerful CLI tool designed to secure your software supply chain by analyzing dependencies for trust, security risks, and quality signals. It goes beyond simple vulnerability scanning by evaluating the "health" and "trustworthiness" of a package using a composite scoring system.

Key Features

  • Multi-Ecosystem Support: Analyzes packages from PyPI (Python), npm (JavaScript), Go, Cargo (Rust), Maven (Java), and NuGet (.NET).
  • Trust Scoring Engine: Assigns a score (0-100) based on multiple factors:
    • Malware Detection: Checks against known malicious package databases.
    • Age & Maturity: Rewards established packages, flags suspicious "brand new" uploads.
    • downloads Popularity: Context-aware scoring based on download counts (identifies critical infrastructure vs. obscure packages).
    • Security Best Practices: Integrates OpenSSF Scorecard data.
    • Metadata Quality: Checks for valid repository links, descriptions, and consistent versioning.
    • Threat Detection: Identifies typosquatting, namespace squatting, and homoglyph attacks.
  • Deep Code Scan: Optional feature to download and scan the source code of a package for suspicious patterns (e.g., obfuscated code, network calls).
  • Broad Input Support: Parses requirements.txt, package.json, Pipfile, go.mod, Cargo.toml, pom.xml, *.csproj, and CycloneDX SBOMs.

Installation

GardWatch requires Python 3.12+.

Option 1: Install via pip (Recommended)

# Install from source
pip install git+https://github.com/GarderaSecurity/gardwatch.git

# Or clone and install locally
git clone https://github.com/GarderaSecurity/gardwatch.git
cd gardwatch
pip install .

# For development installation (editable)
pip install -e .

Option 2: Using Pipenv (Development)

# Clone the repository
git clone https://github.com/GarderaSecurity/gardwatch.git
cd gardwatch

# Install dependencies
pipenv install

Usage

1. Analyze Dependency Files

Scan your project's dependency files to get a full health report.

# Analyze a Python requirements file
gardwatch analyze requirements.txt

# Analyze a Node.js package.json
gardwatch analyze package.json

# Analyze multiple files
gardwatch analyze requirements.txt package.json Cargo.toml

Options:

  • --deep: Enable deep source code scanning (downloads packages to temp dir).
  • --sbom: Force treating the input file as a CycloneDX SBOM.
  • --verbose: Enable debug logging (useful for troubleshooting network issues).

2. Quick Package Scan

Check a single package before you install it.

# Check a PyPI package
gardwatch scan requests --pypi

# Check an npm package
gardwatch scan react --npm

# Check a Rust crate
gardwatch scan serde --cargo

Supported Flags: --pypi, --npm, --go, --cargo, --maven, --nuget.

How It Works

GardWatch aggregates data from multiple sources, including deps.dev, pypistats.org, npmjs.org, and ecosystem-specific registries. It applies a set of heuristic checks to generate a report:

Check Impact Description
Malware ⛔ CRITICAL Immediate failure if package matches known malware.
Typosquatting ⛔ CRITICAL Flags names deceptively similar to popular packages.
Age +20 pts Mature packages (>1 year) gain trust. Very young packages may be penalized.
Downloads +30 pts High download counts indicate community vetting and popularity.
Security Score +20 pts High OpenSSF Scorecard rating (e.g., Code Review, Branch Protection).
Repository +10 pts Links to a valid source code repository.

🛡️ License

MIT

Metadata

Release files for gardwatch 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gardwatch 0.1.2
File Size Uploaded
gardwatch-0.1.2.tar.gz 29.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gardwatch 0.1.2
File Interpreter ABI Platform
gardwatch-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 63.5 kB

Release files / gardwatch-0.1.2.tar.gz

Download URL gardwatch-0.1.2.tar.gz
Size 29.9 kB
Tags Source
SHA-256 checksum
How to use checksums
db0fa7feee2800e8898772873e9b139cc39baec24efc613835a6acf7126438ed
BLAKE2b-256 checksum
How to use checksums
7d07684c907bc53fe94fcbb2ee2ef7b68d3ce1b8d16f6230ae09301db01dc2fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.

Transparency log

Release files / gardwatch-0.1.2-py3-none-any.whl

Download URL gardwatch-0.1.2-py3-none-any.whl
Size 33.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
695513b5159c04f273556d4f47f59c82a7e9496600ec11a675312e88314912a6
BLAKE2b-256 checksum
How to use checksums
ece7da1ca912c402ac56c7fe863e1c2457401e03e838c80f39541a1567753d50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page