or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

authentication.mdcli-commands.mdconfiguration.mderrors.mdformatters.mdindex.mdmodels.mdprogrammatic.mdscanning.md
tile.json

tessl/pypi-safety

Scan dependencies for known vulnerabilities and licenses.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/safety@3.6.x

To install, run

npx @tessl/cli install tessl/pypi-safety@3.6.0

index.mddocs/

Safety CLI

Safety CLI is a comprehensive vulnerability scanning tool for Python dependencies that helps developers identify and fix security vulnerabilities in their projects. It scans Python packages for known security vulnerabilities, licenses issues, and provides automated fixes.

Installation

pip install safety

Package Information

  • Package Name: safety
  • Version: 3.6.1
  • Entry Point: safety.cli:cli
  • Python Support: 3.8+
  • Homepage: https://safetycli.com
  • Documentation: https://docs.safetycli.com/safety-docs

Basic Usage

CLI Interface

# Scan current project for vulnerabilities
safety scan

# Legacy check command (deprecated but still available)
safety check

# Check for license issues
safety license

# Authenticate with Safety platform
safety auth login

# Get help
safety --help

Programmatic Access

# Import the main CLI function
from safety.cli import cli

# Import core models and utilities
from safety.models import (
    Vulnerability, CVE, Severity, Fix, 
    SafetyRequirement, Package, RequirementFile
)

# Import scanning functionality
from safety.scan.main import process_files
from safety.scan.finder import FileFinder

# Import formatters
from safety.formatters.json import JsonReport
from safety.formatters.text import TextReport

Core Capabilities

Vulnerability Scanning { .api }

Safety provides comprehensive vulnerability scanning capabilities for Python projects:

  • Project Scanning: Scan entire Python projects for vulnerabilities
  • System Scanning: Scan system-wide Python packages
  • Dependency Analysis: Deep analysis of direct and transitive dependencies
  • License Checking: Identify license compliance issues
  • Policy Enforcement: Apply organizational security policies

Primary Scanning Commands:

safety scan [OPTIONS] [TARGET]      # Scan project dependencies
safety system-scan [OPTIONS]       # Scan system packages  
safety check [OPTIONS] [FILES]     # Legacy vulnerability check
safety license [OPTIONS] [FILES]   # License compliance check

Authentication and Configuration { .api }

Safety integrates with the Safety platform for enhanced vulnerability data and organizational features:

  • Authentication: OAuth-based authentication with Safety platform
  • Organization Management: Multi-organization support
  • Policy Management: Centralized security policies
  • API Access: Programmatic access to Safety services

Authentication Commands:

safety auth login              # Authenticate with Safety platform
safety auth logout             # Sign out
safety auth status             # Check authentication status
safety auth register          # Register new account

Output and Reporting { .api }

Multiple output formats and reporting options:

  • Interactive Console: Rich terminal output with colors and formatting
  • JSON Output: Machine-readable structured data
  • Text Reports: Plain text vulnerability reports
  • HTML Reports: Web-viewable vulnerability reports
  • Custom Formatting: Extensible formatter system

Output Format Options:

--output json                  # JSON format
--output text                  # Plain text
--output html                  # HTML report
--save-as FILE                # Save report to file

Advanced Features { .api }

  • Auto-remediation: Automatic vulnerability fixes
  • Policy as Code: YAML-based security policies
  • CI/CD Integration: GitHub Actions and GitLab CI support
  • Proxy Support: Corporate proxy configuration
  • Telemetry: Optional usage analytics
  • Tool Integration: Extensible tool ecosystem

Sub-Documentation

Key Types and Models

Vulnerability Data { .api }

from safety.models import Vulnerability, CVE, Severity

# Core vulnerability information
class Vulnerability:
    vulnerability_id: str
    package_name: str
    vulnerable_spec: str
    advisory: str
    published_date: datetime
    fixed_versions: List[str]
    CVE: CVE
    severity: Severity

# CVE information  
class CVE:
    name: str
    cvssv2: Optional[float]
    cvssv3: Optional[float]

# Severity assessment
class Severity:
    source: str
    cvssv2: Optional[float] 
    cvssv3: Optional[float]

Package Information { .api }

from safety.models import Package, SafetyRequirement

# Package metadata
class Package:
    name: str
    version: str
    requirements: List[SafetyRequirement]

# Enhanced requirement with safety features
class SafetyRequirement(Requirement):
    raw: str                    # Original requirement line
    found: Optional[str]        # Where requirement was found
    
    def to_dict(self) -> Dict   # Convert to dictionary

Configuration Models { .api }

from safety_schemas.models import ConfigModel, Ecosystem, Stage

# Main configuration
class ConfigModel:
    telemetry_enabled: bool
    
# Supported ecosystems
class Ecosystem(Enum):
    PYTHON = "python"
    
# Development stages  
class Stage(Enum):
    DEVELOPMENT = "development"
    PRODUCTION = "production"

Quick Examples

Basic Vulnerability Scan

# Scan current directory
safety scan

# Scan specific path
safety scan /path/to/project

# Scan with JSON output
safety scan --output json

Authentication Workflow

# Login to Safety platform
safety auth login

# Check authentication status
safety auth status

# Scan with authenticated access
safety scan

Policy Enforcement

# Generate policy template
safety generate policy

# Scan with policy file
safety scan --policy-file .safety-policy.yml

# Generate installation policy
safety generate installation_policy

License Compliance

# Check licenses in requirements file
safety license --files requirements.txt

# Check with custom database
safety license --db /path/to/license_db

This documentation provides comprehensive coverage of Safety CLI's public API for developers who need to integrate vulnerability scanning into their workflows, whether through command-line usage or programmatic access.