Skip to main content

AI security team in a CLI. Find, plan, fix, and verify vulnerabilities — free, local, no signup.

Project description

Scout

AI security team in a CLI. Find vulnerabilities before hackers do — free, local, no signup.

Python 3.10+ License: MIT PyPI


Why Scout?

AI coding assistants write insecure code constantly — hardcoded secrets, SQL injection, missing auth. Solo developers ship it because they don't have a security team.

Scout is that team. Static analysis catches 80% of real issues instantly. No API keys, no config, no cost.

Install

pip install scout-security

Usage

# Scan a project (static analysis, no AI needed)
scout scan ./my-project

# With AI confirmation (optional — reduces false positives)
scout scan ./my-project --model ollama       # Free, local
scout scan ./my-project --model anthropic    # Requires ANTHROPIC_API_KEY in .env
scout scan ./my-project --model openai       # Requires OPENAI_API_KEY in .env

Output Formats

One scan, three views — choose with --format (-f):

# Layer 1 — human-readable Markdown report (default)
scout scan ./my-app
scout scan ./my-app -o security-report.md

# Layer 2 — ready-to-paste prompts for your own AI (Cursor, Claude, Copilot…)
scout scan ./my-app --format ai-prompt          # writes security-prompts.md
scout scan ./my-app --format ai-prompt -o prompts.md

# Layer 3 — machine-readable JSON for piping into agentic tooling / CI
scout scan ./my-app --format json               # prints JSON to stdout
scout scan ./my-app --format json -o report.json
scout scan ./my-app --format json | jq '.findings[]'

The same engine powers all three — Scout finds the problem; your own AI (which already knows your codebase) applies the fix.

What It Finds

Scanner Detects Severity
secrets AWS keys, GitHub tokens, Stripe keys, DB URLs, private keys, passwords CRITICAL
injection SQL injection, command injection, eval(), XSS CRITICAL
headers Missing helmet, wildcard CORS, no CSP HIGH
deps Known vulnerabilities in pip/npm packages HIGH

Example Output

$ scout scan ./my-app

Scout v0.1.0 scanning: ./my-app

  Scanning 47 files...

Found 6 issues:

  🔴 2 critical
  🟠 3 high
  🟡 1 medium

Report written to: ./my-app/security-report.md

The report includes:

  • Every vulnerability explained in plain English
  • Severity ratings with context (why it's dangerous)
  • Exact fix instructions for each issue
  • Phased remediation plan (zero-risk fixes first)

AI Providers (Optional)

Provider Setup Cost
None (default) Nothing — works out of the box Free
Ollama (local) ollama pull llama3 Free
Anthropic Set ANTHROPIC_API_KEY in .env ~$0.01/scan
OpenAI Set OPENAI_API_KEY in .env ~$0.01/scan

Add a Custom Scanner

from scout.scanners import register_scanner
from scout.scanners.base import BaseScanner
from scout.models import Finding
from pathlib import Path

@register_scanner
class MyScanner(BaseScanner):
    name = "my-scanner"
    description = "Detects my custom pattern"

    def scan_file(self, file_path: Path, content: str) -> list[Finding]:
        findings = []
        # detection logic here
        return findings

Add one import in scout/scanners/__init__.py → done.

Development

git clone https://github.com/tejaswirajgit/Scout.git
cd Scout
pip install -e ".[dev,ai]"
pytest
ruff check scout/ tests/

Documentation

Full docs and interactive guide: https://tejaswirajgit.github.io/Scout/

License

MIT — free forever.

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

scout_security-0.1.2.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

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

scout_security-0.1.2-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: scout_security-0.1.2.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for scout_security-0.1.2.tar.gz
Algorithm Hash digest
SHA256 1119d93fd704b79024343f1620ae0fda54a7b7cf072c7fbcb67e9b36e67929c8
MD5 cd40105fa661ee48b923660b3b47bf87
BLAKE2b-256 22366e780ea3b9a6d06376714f94a67f2340e1df9a3abf320b834ea58aa3779b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: scout_security-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for scout_security-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b74e034d97d1203a676e53f006d711adaf46fc07fcb24d155b517ce2a34b156a
MD5 a1a3178dba609a654c08603532463783
BLAKE2b-256 20f78a97613da7035a3b33b7b66d1a8b828d55a4d0f6600ee75fee6e0c4cf97d

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