К основному содержанию
хук

ai-bash-guard — хук для Claude Code: блокирует опасные команды

Перед выполнением bash-команды AI-агент проверяет её на деструктивные паттерны — рекурсивные удаления, force push в защищённые ветки, drop таблиц, утечки учётных данных — и блокирует выполнение с объяснением.

Установить в Claude Code · Через claude-code-templates Все способы и платформы ↓
npx claude-code-templates@latest --hook security/ai-bash-guard
Открыть на GitHub

Что делает ai-bash-guard

Хук работает через PreToolUse с типом agent: это единственный паттерн, который может заблокировать выполнение инструмента через AI-рассуждение. Перед тем как bash-команда попадёт в терминал, Claude Haiku оценивает её по набору правил: запрещены rm -rf вне /tmp, git push --force в main/master/develop/production, DROP TABLE и DELETE без WHERE в production-базах, команды, пишущие переменные с KEY, TOKEN, SECRET или PASSWORD в файлы или по сети, а также dd, shred и mkfs на реальных устройствах.

Если команда совпадает с одним из этих паттернов, хук возвращает deny с объяснением, что попробовать вместо этого. Всё остальное проходит: удаления в /tmp, force push в личные ветки, DROP TABLE в тестовых базах. Timeout составляет 20 секунд, модель — Haiku.

Какие задачи решает

  • Заблокировать рекурсивное удаление файлов вне временных папок
  • Предотвратить force push в основные ветки репозитория
  • Остановить удаление или очистку production-таблиц без условия
  • Помешать случайной отправке учётных данных в файлы или сеть
  • Предупредить о попытке перезаписи диска через dd, shred или mkfs

Примеры запросов агенту

  • Напиши скрипт, который удаляет старые логи с помощью rm -rf /var/logs/* — хук остановит команду и предложит альтернативу
  • Попробуй сделать force push в основную ветку — хук заблокирует и объяснит, как пушить в личную ветку
  • Запусти DROP TABLE users в production-базе — хук перехватит и пусть переходишь в тестовое окружение

Как установить ai-bash-guard

1Через claude-code-templates

npx claude-code-templates@latest --hook security/ai-bash-guard

2Вручную: положить файлы

.claude/settings.json

Блок hooks: событие (PreToolUse, PostToolUse, Stop…) → команда. Личные — ~/.claude/settings.json

По шагам, с командами для каждой платформы: Хуки Claude Code: что это, где настраивать и как запретить опасную команду

Вопросы о ai-bash-guard

Как установить ai-bash-guard в Claude Code?

Запусти npx claude-code-templates@latest --hook security/ai-bash-guard, затем отредактируй .claude/settings.json для интеграции хука.

Что блокирует ai-bash-guard?

Рекурсивное удаление вне /tmp, force push в защищённые ветки (main, master, develop, production), DROP TABLE и DELETE без WHERE в production-базах, команды, пишущие ключи и токены в файлы, dd и mkfs на реальных устройствах.

Какие команды хук всегда пропускает?

Удаления в /tmp, force push в личные feature-ветки, DROP TABLE в test, dev или local базах, любые другие bash-команды, которые не совпадают с опасными паттернами.

Исходный текст

ai-bash-guard.json · MIT
{
  "description": "AI-powered bash command security guard. Before any Bash command runs, a lightweight Claude subagent evaluates it for destructive or irreversible patterns — recursive deletes, force pushes to protected branches, database drops, and credential exposure — and blocks execution with a clear explanation if flagged. Uses PreToolUse with type:agent, which is the only hook pattern that can block tool execution via AI reasoning.",
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "agent",
            "prompt": "You are a security guard for a developer's terminal. Evaluate the bash command provided in the tool input for destructive or irreversible risk.\n\nDENY the command if it matches ANY of these patterns:\n- Recursive deletion outside /tmp: rm -rf on non-temporary paths\n- Force push to protected branches: git push --force or -f targeting main, master, develop, or production\n- Destructive database operations without a WHERE clause: DROP TABLE, TRUNCATE, DELETE on production-named databases\n- Credential exposure: commands that write environment variables containing KEY, TOKEN, SECRET, or PASSWORD to files or network destinations\n- Disk-level destruction: dd, shred, or mkfs targeting non-loop devices\n\nALLOW everything else, including rm on /tmp, force pushes to personal feature branches, and DROP TABLE in databases named test, dev, or local.\n\nRespond ONLY with a JSON object in exactly this format:\n\nIf DENYING:\n{\"hookSpecificOutput\": {\"hookEventName\": \"PreToolUse\", \"permissionDecision\": \"deny\", \"permissionDecisionReason\": \"<one sentence: what is dangerous and what to do instead>\"}}\n\nIf ALLOWING:\n{\"hookSpecificOutput\": {\"hookEventName\": \"PreToolUse\", \"permissionDecision\": \"allow\"}}",
            "timeout": 20,
            "model": "haiku"
          }
        ]
      }
    ]
  }
}

© davila7 · MIT · davila7/claude-code-templates

Похожие хуки

Все хуки по теме «Безопасность» →

Из того же набора740

Весь набор →
desktop-notification-on-stop Хук показывает уведомление на рабочем столе, когда Claude Code заканчивает ответ. Пригодится, если вы переключаетесь в другое окно и ждёте продолжения. 211установок tdd-gate Хук блокирует правку production-файлов, пока рядом нет теста. Пригодится, если хотите удержать TDD в работе с агентом. 192установок debug-window Открывает окно с живым хвостом лога отладки, когда Claude запущен с флагом --debug или -d, и закрывает его по концу сессии. 189установок console-log-cleaner Хук ищет вызовы console. при редактировании JavaScript- и TypeScript-файлов в production-ветках. Помогает заметить отладочный вывод до слияния изменений. 165установок change-logger Хук пишет каждое изменение файла в CSV: время, инструмент, путь, действие и детали. Пригодится, когда готовишь демо и нужно показать, что именно агент трогал. 163установок edit-audit-log Хук записывает в проектный журнал путь каждого файла, изменённого инструментом Edit, и время правки. Пригодится, если нужно проследить изменения между сессиями. 103установок doordash-group-checkout-gate Хук перепроверяет аллергены в момент оформления группового заказа DoorDash через dd-cli и блокирует оплату, если находит опасное совпадение. 24установок doordash-allergy-checkout-gate Хук проверяет корзину DoorDash перед переходом к оформлению и блокирует команду при совпадении с аллергенами или устаревшей проверке. Это дополнительная защита от ошибок агента, не медицинская гарантия. 23установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой