Sobre el proyecto

dcg (Destructive Command Guard) es un hook de alto rendimiento para agentes de codificación con IA que intercepta comandos destructivos antes de que se ejecuten, bloqueándolos con explicaciones claras y alternativas más seguras. Protege contra operaciones catastróficas como `git reset --hard`, `rm -rf ./src` o `DROP TABLE users` que podrían destruir horas de trabajo no confirmado. **Agentes compatibles:** Claude Code, Codex CLI 0.125.0+, Gemini CLI, GitHub Copilot CLI, VS Code Copilot Chat, Cursor IDE, Hermes Agent, Posit Assistant, Grok (xAI), Antigravity CLI, OpenCode, Oh My Pi, Crush, Pi, Aider (limitado) y Continue (solo detección). **Características clave:** - Protección sin configuración para comandos peligrosos de git/sistema de archivos de forma predeterminada - Más de 50 paquetes de seguridad modulares que cubren bases de datos, Kubernetes, Docker, AWS/GCP/Azure, Terraform, CI/CD, gestión de secretos y más - Latencia de submilisegundos mediante filtrado acelerado por SIMD - Escaneo de scripts heredoc/en línea (detecta `python -c "os.remove(...)"` y scripts de shell incrustados) - Detección inteligente de contexto (no bloquea `grep "rm -rf"` pero bloquea `rm -rf /`) - Salida de terminal enriquecida con paneles de denegación, contexto de reglas y sugerencias en stderr - Flujos seguros para agentes: salida de hook legible por máquina en stdout, interfaz enriquecida en stderr - Soporte nativo de Codex con denegación JSON mínima en stdout - Degradación elegante para CI, tuberías y terminales simples - Modo de escaneo para hooks de pre-commit e integración con CI - Política de fallo acotada con resultados explícitos de revisión/bloqueo - Modo de explicación (`dcg explain "comando"`) que muestra por qué algo está bloqueado **Instalación:** Instalación rápida mediante script curl (Linux, macOS, Windows WSL) o instalador de PowerShell para Windows nativo. Detecta automáticamente la plataforma, descarga el binario correcto y configura los hooks de los agentes compatibles. **Configuración:** Usa configuración TOML en `~/.config/dcg/config.toml`. Los paquetes se pueden habilitar o deshabilitar por categoría o por ID de paquete individual. Los perfiles específicos de agente permiten diferentes niveles de confianza, listas de permitidos y conjuntos de paquetes por agente. **Protección predeterminada (sin configuración):** `core.filesystem` (rm recursivo peligroso), `core.git` (comandos git destructivos) y `system.disk` (mkfs, dd-a-dispositivo, fdisk, etc.) están siempre habilitados. En Windows, los paquetes `windows.filesystem` y `windows.system` también están activados por defecto. **Vías de escape:** Variable de entorno `DCG_BYPASS=1` para omisión de un solo comando, `dcg allow-once <código>` para aprobación única, entradas permanentes en la lista de permitidos o eliminación completa del hook. **Orígenes:** Comenzó como un script de Python de Jeffrey Emanuel, se portó a Rust por Darin Gordon con optimizaciones de rendimiento, y luego se expandió sustancialmente con el sistema de paquetes modulares, escaneo de heredoc, arquitectura de tres niveles, clasificación de contexto, listas de permitidos, modo de escaneo y motor de doble regex. **Las categorías de paquetes incluyen:** almacenamiento (S3, GCS, MinIO, Azure Blob), remoto (rsync, scp, ssh), base de datos (PostgreSQL, MySQL, MongoDB, Redis, SQLite, Snowflake, Supabase, Databricks, BigQuery), contenedores (Docker, Compose, Podman), Kubernetes (kubectl, helm, kustomize), nube (AWS, Azure, GCP), CDN (Cloudflare Workers, CloudFront, Fastly), puerta de enlace API (Apigee, AWS, Kong), infraestructura (Ansible, Atmos, Pulumi, Terraform), sistema (disco, permisos, servicios), CI/CD (CircleCI, GitHub Actions, GitLab CI, Jenkins) y gestión de secretos (AWS Secrets, Doppler, Infisical, 1Password, Vault, más el paquete opcional secret_disclosure).