Skip to main content

AI-powered multi-agent security scanner for detecting security vulnerabilities within a given github codebase

Project description

๐Ÿ›ก๏ธ Vigil

AI-Powered Security Scanner for Codebases

PyPI Python License


Vigil is a multi-agent AI security scanner that combines static analysis (Semgrep) with LLM verification to find real vulnerabilities in your code โ€” and filter out the noise.

The Problem: Traditional static analysis tools generate hundreds of warnings. 80% are false positives. Developers stop reading them.

The Solution: Vigil uses an AI verifier agent to analyze each finding with Chain-of-Thought reasoning, filtering out false alarms and keeping only real threats.

โœจ Key Features

  • AI-Verified Findings โ€” LLM analyzes each vulnerability with a 4-step security framework
  • 86% Accuracy โ€” Benchmarked on 100 real-world code samples with near-zero missed threats
  • Multi-Provider LLM Support โ€” Groq (free), Google Gemini, OpenAI, or local Ollama
  • GitHub URL Scanning โ€” Point it at any public repo and scan instantly
  • CISO Executive Summary โ€” AI-generated security report for stakeholders
  • Interactive Setup โ€” First-run wizard configures everything for you
  • Docker Ready โ€” Run anywhere with a single container

๐Ÿš€ Quick Start

Install

pip install vigil-scanner

Requires Python 3.11 โ€“ 3.13. If your default Python is 3.14+, use one of these:

# Windows
py -3.12 -m pip install vigil-scanner

# Or use pipx (recommended for CLI tools)
pipx install vigil-scanner --python 3.12

# Or use Docker (no Python needed)
docker run -e LLM_PROVIDER=groq -e GROQ_API_KEY=your_key vigil scan <repo-url>

Scan a Repository

# Scan a remote GitHub repo
vigil scan https://github.com/username/repo

# Scan a local project
vigil scan ./my-project

On first run, Vigil will ask you to choose an LLM provider:

๐Ÿ›ก๏ธ Welcome to Vigil!

Available LLM Providers:

  1. Groq  โ€”  Free cloud API (recommended)
  2. Google Gemini  โ€”  Free tier available
  3. Ollama / LMStudio  โ€”  Local & free
  4. OpenAI  โ€”  Paid (GPT-4o)

Select provider (number): 1
Enter your Groq API key: gsk_xxxxx
 Configuration saved!

Reconfigure Anytime

vigil init

๐Ÿณ Docker

# Build
docker build -t vigil .

# Scan with cloud LLM
docker run -e LLM_PROVIDER=groq -e GROQ_API_KEY=your_key \
  vigil scan https://github.com/username/repo

# Scan with local Ollama (using docker compose)
docker compose up -d
docker compose exec ollama ollama pull llama3
docker compose run vigil scan https://github.com/username/repo

๐Ÿ—๏ธ Architecture

Vigil uses a LangGraph multi-agent pipeline with three specialized nodes:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Scanner    โ”‚โ”€โ”€โ”€โ”€โ–บโ”‚   Verifier   โ”‚โ”€โ”€โ”€โ”€โ–บโ”‚   Reporter   โ”‚
โ”‚  (Semgrep)   โ”‚     โ”‚  (LLM + CoT) โ”‚     โ”‚  (LLM)       โ”‚
โ”‚              โ”‚     โ”‚              โ”‚     โ”‚              โ”‚
โ”‚ Static       โ”‚     โ”‚ AI verifies  โ”‚     โ”‚ Generates    โ”‚
โ”‚ analysis     โ”‚     โ”‚ each finding โ”‚     โ”‚ executive    โ”‚
โ”‚ rules        โ”‚     โ”‚ with Chain-  โ”‚     โ”‚ summary &    โ”‚
โ”‚              โ”‚     โ”‚ of-Thought   โ”‚     โ”‚ fix advice   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
     Finds              Filters              Reports
   candidates        false positives      to the team

Verification Strategy

The Verifier agent uses:

  • Chain-of-Thought (CoT) reasoning โ€” 4-step analysis framework (data flow โ†’ defenses โ†’ CWE mapping โ†’ verdict)
  • Few-Shot examples โ€” Calibrated with real vulnerability patterns
  • Batch processing โ€” 10 findings per LLM call for token efficiency
  • Confidence thresholds โ€” Low-confidence dismissals are overridden (security-first)

๐Ÿ“Š Benchmark Results

Tested on 100 real-world code samples from the Code Vulnerability Labeled Dataset:

Metric Score
Accuracy 86%
False Negative Rate 2%
False Positive Rate ~14%
Missed Threats 1 out of 100

โš™๏ธ Configuration

Vigil supports configuration through environment variables or the ~/.vigil/.env file:

Variable Description Default
LLM_PROVIDER groq, google, openai, ollama ollama
GROQ_API_KEY Groq API key โ€”
GOOGLE_API_KEY Google Gemini API key โ€”
OPENAI_API_KEY OpenAI API key โ€”
OLLAMA_BASE_URL Ollama endpoint URL http://localhost:11434
OLLAMA_MODEL Model name for Ollama llama3

๐Ÿ› ๏ธ Development

# Clone the repo
git clone https://github.com/yugan243/security-scanner.git
cd security-scanner

# Install dependencies
poetry install

# Run locally
poetry run vigil scan ./my-project

# Run benchmarks
poetry run python -m tests.benchmark

๐Ÿ“ License

MIT License โ€” see LICENSE for details.


Built by Yugan Nimsara โค๏ธ with the help of Antigravity

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

vigil_scanner-0.1.2.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

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

vigil_scanner-0.1.2-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file vigil_scanner-0.1.2.tar.gz.

File metadata

  • Download URL: vigil_scanner-0.1.2.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.3 Windows/11

File hashes

Hashes for vigil_scanner-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2e7989d0fdc8a0abddb5a59f99739eaa189e1eb7b8223ceeb3bdcf98896aa855
MD5 93bbd0ab9691bcf945fab0b8135f79d9
BLAKE2b-256 e8e037f415088554c69374b355a9e022ddd61ca13e090dd9f22d31457e5290f2

See more details on using hashes here.

File details

Details for the file vigil_scanner-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: vigil_scanner-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.3 Windows/11

File hashes

Hashes for vigil_scanner-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 47b4d23719489ba6e1f57254f2bd74b4dc7af80c24864456ea2a398850826cac
MD5 2824e3cfbac6d8990e175eacbb4f22f8
BLAKE2b-256 5e603b791c70916b5e60a58b42a6d699149ed5988083e6afd0346084ab1650cb

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