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.5.tar.gz (295.7 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.5-py3-none-any.whl (176.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vibeguard_cli-1.1.5.tar.gz
  • Upload date:
  • Size: 295.7 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.5.tar.gz
Algorithm Hash digest
SHA256 20c16289e15399beb6d52329cefc93afe34bb3b129c44f1dc287b242970972b8
MD5 cdf96c51b67d5745dccf8b66546d3edc
BLAKE2b-256 ed56d4dc71abbdd9552548dab788cd69c580e4b760111ad1cd946bd6f0851aad

See more details on using hashes here.

Provenance

The following attestation bundles were made for vibeguard_cli-1.1.5.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.5-py3-none-any.whl.

File metadata

  • Download URL: vibeguard_cli-1.1.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 359e37253a6012b6de6475c26172f2619915042da4c7143ef656365338cf0f39
MD5 fb69ab4392daf85ba718703924d08272
BLAKE2b-256 226f7da280fe605a50ebabc7d4e028d64b650ee3f40fda57ecb1549997aa465c

See more details on using hashes here.

Provenance

The following attestation bundles were made for vibeguard_cli-1.1.5-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