Проблема: ИИ-агенты могут стереть проект за секунду
AI-кодинговые агенты, такие как Claude Code, Codex CLI, Gemini CLI и GitHub Copilot, становятся неотъемлемой частью рабочего процесса. Однако их способность выполнять системные команды несет критический риск: одна ошибочная команда вроде rm -rf ./src, git reset --hard или DROP TABLE users может уничтожить часы работы и не сохраненные изменения. Инструмент dcg (Destructive Command Guard) решает эту проблему, действуя как «предохранитель» на уровне хуков.
Техническая суть: SIMD-ускорение и нулевая задержка
В отличие от простых скриптов, dcg написан на Rust и использует SIMD-ускорение для фильтрации команд. Это обеспечивает задержку менее миллисекунды, что делает инструмент практически незаметным для пользователя, но эффективным для безопасности. Архитектура включает:
- Контекстную детекцию: инструмент различает данные и выполнение. Например,
grep "rm -rf"(поиск текста) разрешен, аrm -rf /(удаление) блокируется. - Сканирование heredoc: защита от встроенных скриптов, таких как
python -c "os.remove(...)". - 50+ пакетов безопасности: готовые профили для баз данных, Kubernetes, Docker, облаков (AWS/GCP/Azure) и Terraform.
Поддержка и интеграция
dcg поддерживает широкий спектр агентов, включая нативную интеграцию с Codex CLI (версия 0.125.0+), Claude Code, Gemini CLI, Cursor IDE, Hermes Agent и Grok (xAI). Для Codex реализован специальный протокол: при блокировке команда возвращается с кодом выхода 0 и минимальным JSON-ответом, что предотвращает ошибки в клиенте.
| Платформа/Агент | Метод интеграции | Особенности |
|---|---|---|
| Codex CLI | PreToolUse Bash hook | Нативная поддержка, строгий JSON-ответ, проверка целостности |
| Claude Code / Cursor | Совместимость с hook-слоем | Автоматическое обнаружение, настройка через ~/.claude/settings.json |
| Grok (xAI) | ~/.grok/hooks/dcg.json | Нативный хук или слой совместимости с Claude |
| Windows (native) | PowerShell installer | Блокировка del /s, rd /s, Remove-Item -Recurse -Force по умолчанию |
Гибкая настройка и обход блокировок
Инструмент позволяет тонко настраивать уровень доверия к разным агентам через файл ~/.config/dcg/config.toml. Можно задать trust_level (высокий/низкий), отключить или добавить пакеты правил, а также создать списки разрешенных команд (allowlist). Для случаев, когда блокировка ложная или команда действительно необходима, предусмотрены механизмы обхода:
- DCG_BYPASS=1: временное отключение защиты для одной команды.
- dcg allow-once: разовое разрешение с использованием кода из сообщения об ошибке.
- dcg explain: вывод подробного объяснения, почему команда была заблокирована.
Почему это важно
С ростом автономности AI-агентов вопрос безопасности их действий становится критическим. dcg предлагает не просто блокировку, а образовательный подход: пользователь видит четкое объяснение причины блокировки и рекомендацию безопасной альтернативы (например, использование git stash вместо git reset --hard). Это снижает риск человеческой ошибки и повышает доверие к использованию ИИ в продакшен-средах.
Источник: Github ↗
