Skip to main content

Unified security scanner orchestrator for local repos

Project description

VibeGuard CLI

PyPI version Python License: MIT

Unified security scanner orchestrator for local repositories.

Run multiple security scanners with one command, get normalized findings, a security score, and AI-powered fix suggestions.

Features

  • One Command: Run multiple security scanners with vibeguard scan .
  • Normalized Output: Unified findings schema across all scanners
  • Score & Grade: Get a security score (0-100) and letter grade
  • Multiple Output Formats: Terminal, JSON, SARIF, HTML reports
  • Badge Generator: Embed security badges in your README
  • CI-Friendly: Exit codes for automation and threshold checks

Installation

From PyPI (Recommended)

pip install vibeguard-cli

From Source

git clone https://github.com/vibeguard/vibeguard-cli.git
cd vibeguard-cli
pip install -e ".[dev]"

Verify Installation

vibeguard --version
vibeguard doctor

Quick Start

# Check your environment
vibeguard doctor

# Initialize in your project
vibeguard init

# Run a security scan
vibeguard scan .

# Generate SARIF for GitHub Code Scanning
vibeguard scan . --output sarif > results.sarif

# Generate HTML report
vibeguard scan . --output html > report.html

# Generate a badge
vibeguard scan . --badge badge.svg

Commands

Command Description Tier
vibeguard doctor Check environment and scanner availability Free
vibeguard init Initialize VibeGuard in a directory Free
vibeguard scan [path] Run security scanners on a codebase Free
vibeguard report [path] Generate reports from cached scan Free
vibeguard fix [id] Generate copy-paste prompt for LLM Free
vibeguard baseline Manage baselines for regression detection Free
vibeguard patch [id] Generate unified diff via LLM (BYOK) Pro
vibeguard apply <patch> Apply patch with git safety checks Pro
vibeguard live <url> DAST scan on running application Experimental

Output Formats

VibeGuard supports multiple output formats:

Format Flag Description
terminal --output terminal Rich terminal output (default)
json --output json JSON scan results
sarif --output sarif SARIF 2.1.0 for GitHub Code Scanning
html --output html Standalone HTML report

Generate Badge

vibeguard scan . --badge badge.svg

Embed in README:

![Security Score](./badge.svg)

Scanner Packs

Core Pack (Default)

  • Semgrep (SAST multi-language)
  • Gitleaks (secrets detection)
  • Trivy (dependencies/container/IaC)
  • Bandit (Python SAST)
  • TruffleHog v3 (secrets detection)

Ecosystem Pack (Auto-Detected)

  • npm-audit (JavaScript/Node.js)
  • pip-audit (Python)
  • cargo-audit (Rust)

Differentiation Pack

  • Checkov (Infrastructure as Code)
  • Dockle (Container best practices)
  • Nuclei (DAST templates)

Scoring

  • Base: 100 points
  • Deductions: Critical (-20), High (-10), Medium (-5), Low (-2)
  • Category Cap: Max 50 points per category
  • Grades: A+ (≥95), A (≥85), B (≥70), C (≥50), D (≥30), F (<30)

Exit Codes

For CI/CD integration:

Code Meaning
0 Success, no findings
1 Success, findings detected
2 Scan error (partial scan)
3 No cached scan (report command)
4 Configuration error
5 Invalid path
10 Score below threshold

CI Integration Example

# GitHub Actions
- name: Run VibeGuard
  run: |
    pip install vibeguard-cli
    vibeguard scan . --output sarif > results.sarif
  continue-on-error: true

- name: Upload SARIF
  uses: github/codeql-action/upload-sarif@v2
  with:
    sarif_file: results.sarif

Threshold Enforcement

# Exit with code 10 if score is below 80
vibeguard scan . --threshold 80

Pro Features (BYOK)

VibeGuard Pro features use your own LLM API keys (Bring Your Own Key):

# Configure your API key (encrypted locally)
vibeguard keys set openai sk-...

# Generate a patch for a finding
vibeguard patch <finding-id>

# Apply the patch safely
vibeguard apply .vibeguard/patches/<finding-id>.patch

Supported providers: OpenAI, Anthropic, Google, Azure, Mistral, Groq

Contributing

Contributions are welcome! See CONTRIBUTING_SCANNERS.md for adding new scanners.

License

MIT - see LICENSE for details.

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

vibeguard_cli-1.1.3.tar.gz (267.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vibeguard_cli-1.1.3-py3-none-any.whl (176.9 kB view details)

Uploaded Python 3

File details

Details for the file vibeguard_cli-1.1.3.tar.gz.

File metadata

  • Download URL: vibeguard_cli-1.1.3.tar.gz
  • Upload date:
  • Size: 267.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vibeguard_cli-1.1.3.tar.gz
Algorithm Hash digest
SHA256 3b915f732920b1f4f6ddf707d539e7e60f9110c02014adf23e4c1bf658a73f27
MD5 1f00bda3cb5369dededd1575b8ff8dba
BLAKE2b-256 00b0b3c04d96444891efd854467811890679b49c2683e5c00371c773865e59a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for vibeguard_cli-1.1.3.tar.gz:

Publisher: publish.yml on faheem91/vibeguard-cli-2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vibeguard_cli-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: vibeguard_cli-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 176.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vibeguard_cli-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dab0cd7378bdd2b9d09f37ad7f0b3a6cea31f610c0604a1c256fb8628548ee1d
MD5 ea334553ed9c4ebe3c32b6ac9b87793c
BLAKE2b-256 365c44c0f846659d8784aeb043e1d3ade9ae6068d599e9457d89a31e3334c2b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for vibeguard_cli-1.1.3-py3-none-any.whl:

Publisher: publish.yml on faheem91/vibeguard-cli-2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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