À propos du projet

dcg (Destructive Command Guard) est un hook haute performance pour agents IA de codage qui intercepte les commandes destructives avant leur exécution, les bloquant avec des explications claires et des alternatives plus sûres. Il protège contre des opérations catastrophiques comme `git reset --hard`, `rm -rf ./src`, ou `DROP TABLE users` qui pourraient détruire des heures de travail non validé. **Agents pris en charge :** 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 (limité), et Continue (détection uniquement). **Fonctionnalités clés :** - Protection zéro configuration pour les commandes dangereuses git/système de fichiers dès le départ - Plus de 50 packs de sécurité modulaires couvrant bases de données, Kubernetes, Docker, AWS/GCP/Azure, Terraform, CI/CD, gestion des secrets, et plus - Latence inférieure à la milliseconde grâce au filtrage accéléré par SIMD - Analyse des scripts heredoc/en ligne (détecte `python -c "os.remove(...)"` et les scripts shell intégrés) - Détection intelligente du contexte (ne bloque pas `grep "rm -rf"` mais bloque `rm -rf /`) - Sortie terminal riche avec panneaux de refus, contexte de règle et suggestions sur stderr - Flux sûrs pour agents : sortie hook lisible par machine sur stdout, interface riche sur stderr - Support natif Codex avec refus JSON minimal sur stdout - Dégradation gracieuse pour CI, pipes et terminaux simples - Mode scan pour hooks pre-commit et intégration CI - Politique de défaillance bornée avec résultats explicites de révision/blocage - Mode explication (`dcg explain "commande"`) montrant pourquoi quelque chose est bloqué **Installation :** Installation rapide via script curl (Linux, macOS, Windows WSL) ou installateur PowerShell pour Windows natif. Détection automatique de la plateforme, téléchargement du bon binaire et configuration des hooks des agents pris en charge. **Configuration :** Utilise une config TOML à `~/.config/dcg/config.toml`. Les packs peuvent être activés/désactivés par catégorie ou par ID de pack individuel. Des profils spécifiques aux agents permettent différents niveaux de confiance, listes blanches et ensembles de packs par agent. **Protection par défaut (sans config) :** `core.filesystem` (rm récursif dangereux), `core.git` (commandes git destructives) et `system.disk` (mkfs, dd-vers-périphérique, fdisk, etc.) sont toujours activés. Sur Windows, les packs `windows.filesystem` et `windows.system` sont également activés par défaut. **Échappatoires :** Variable d'environnement `DCG_BYPASS=1` pour contournement d'une commande, `dcg allow-once <code>` pour approbation unique, entrées de liste blanche permanentes, ou suppression complète du hook. **Origines :** Commencé comme script Python par Jeffrey Emanuel, porté en Rust par Darin Gordon avec optimisations de performance, puis considérablement étendu avec le système de packs modulaires, l'analyse heredoc, l'architecture à trois niveaux, la classification de contexte, les listes blanches, le mode scan et le double moteur regex. **Catégories de packs incluent :** stockage (S3, GCS, MinIO, Azure Blob), distant (rsync, scp, ssh), base de données (PostgreSQL, MySQL, MongoDB, Redis, SQLite, Snowflake, Supabase, Databricks, BigQuery), conteneurs (Docker, Compose, Podman), Kubernetes (kubectl, helm, kustomize), cloud (AWS, Azure, GCP), CDN (Cloudflare Workers, CloudFront, Fastly), passerelle API (Apigee, AWS, Kong), infrastructure (Ansible, Atmos, Pulumi, Terraform), système (disque, permissions, services), CI/CD (CircleCI, GitHub Actions, GitLab CI, Jenkins), et gestion des secrets (AWS Secrets, Doppler, Infisical, 1Password, Vault, plus le pack secret_disclosure optionnel).