← Volver a Docs

Inicio rapido

Requisitos previos

  • Python 3.12 o superior
  • pip (incluido con Python)
  • git (opcional, necesario para --changed-only)

Instalacion

Desde PyPI

pip install vigil-ai-cli

Desde el codigo fuente (desarrollo)

git clone https://github.com/org/vigil.git
cd vigil
python3.12 -m venv .venv
source .venv/bin/activate    # Linux/macOS
# .venv\Scripts\activate     # Windows
pip install -e ".[dev]"

Verificar la instalacion

vigil --version
# vigil, version 0.2.0

Primer scan

Ejecuta vigil sobre el directorio de tu proyecto:

vigil scan src/

Ejemplo de salida cuando no hay problemas:

  vigil v0.2.0 — scanned 42 files

  No findings.

  -------------------------------------------------
  42 files scanned in 0.5s
  0 findings

Ejemplo de salida con hallazgos:

  vigil v0.2.0 — scanned 42 files

  X CRITICAL  DEP-001  requirements.txt:14
    Package 'python-jwt-utils' does not exist in pypi.
    This is likely a hallucinated dependency from an AI agent.
    -> Suggestion: Remove 'python-jwt-utils' and find the correct package name.

  X HIGH      AUTH-005  src/main.py:8
    CORS configured with '*' allowing requests from any origin.
    -> Suggestion: Restrict CORS to specific trusted origins.

  -------------------------------------------------
  42 files scanned in 1.2s
  2 findings: 1 critical, 1 high
  analyzers: dependency, auth

Conceptos basicos

Que es un finding

Un finding es un hallazgo de seguridad detectado por vigil. Cada finding tiene:

  • rule_id: Identificador unico de la regla (ej. DEP-001, AUTH-005)
  • severity: Nivel de severidad (critical, high, medium, low, info)
  • message: Descripcion del problema encontrado
  • location: Archivo y linea donde se detecto
  • suggestion: Recomendacion concreta para corregirlo

Niveles de severidad

NivelSignificadoExit code
criticalDebe corregirse antes de merge. Riesgo de seguridad inmediato.1
highDeberia corregirse antes de merge. Riesgo significativo.1
mediumDeberia corregirse, no necesariamente antes de merge.0*
lowInformativo, buena practica.0*
infoSolo informativo, no es un problema.0*

*Por defecto, vigil falla (exit code 1) con findings high o superiores. Esto se puede cambiar con --fail-on.

Categorias

vigil organiza sus reglas en categorias:

CategoriaPrefijoQue detecta
Dependency HallucinationDEP-Paquetes que no existen, typosquatting, paquetes sospechosamente nuevos
Auth & PermissionAUTH-Endpoints sin auth, CORS abierto, JWT inseguro, cookies sin flags
Secrets & CredentialsSEC-Secrets placeholder, credenciales hardcodeadas, connection strings
Test QualityTEST-Tests sin asserts, asserts triviales, tests skipped sin razon

Exit codes

CodigoSignificado
0No hay findings por encima del threshold
1Se encontraron findings por encima del threshold
2Error de ejecucion (config invalida, error de red, etc.)

Que esta activo ahora

En la version actual (v0.2.0), el Dependency Analyzer esta completamente funcional:

  • Detecta paquetes que no existen en PyPI/npm (slopsquatting)
  • Detecta nombres similares a paquetes populares (typosquatting)
  • Verifica que las versiones pinneadas existan
  • Detecta paquetes sospechosamente nuevos
  • Detecta paquetes sin repositorio fuente
# Verificar dependencias del proyecto
vigil deps

# Solo checks estaticos (sin HTTP)
vigil deps --offline

Los analyzers de Auth, Secrets y Test Quality se estan implementando y estaran disponibles en versiones futuras.

Siguientes pasos

  • Genera un archivo de configuracion: vigil init
  • Explora todas las reglas: vigil rules
  • Analiza solo dependencias: vigil deps --verify
  • Analiza solo calidad de tests: vigil tests tests/
  • Integra vigil en tu CI/CD: ver Integracion CI/CD
  • Consulta los analyzers activos: ver Analizadores
  • Consulta la referencia CLI completa: ver Referencia CLI