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

env-file-protection — хук для Claude Code: защита .env от записи

Хук блокирует вызовы Write к файлам .env*, чтобы агент случайно не перезаписал секреты. Ставится одной командой в настройки Claude.

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

Что делает env-file-protection

Хук висит на событии PreToolUse и срабатывает на инструмент Write. Если путь попадает под шаблон .env*, хук возвращает решение deny с причиной «Writing to .env files is blocked by hook». Запись не проходит.

Фильтрация идёт через поле if со значением Write(.env*). Процесс не запускается, пока шаблон не совпал, поэтому на обычных файлах хук ничего не делает и не тратит время. Внутри — одна команда echo, которая печатает JSON с решением для Claude.

Установка идёт через npx claude-code-templates@latest --hook security/env-file-protection, запись попадает в .claude/settings.json. Шаблон .env* покрывает и .env.local, и .env.production — если у вас есть файлы с таким именем, которые агент должен править, хук их тоже заблокирует. Это повод проверить список своих env-файлов до установки.

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

  • защитить .env от случайной перезаписи агентом
  • запретить запись в файлы с секретами без ручного подтверждения
  • отсечь вызовы Write к .env* до их выполнения
  • добавить проверку путей в настройки Claude без отдельного скрипта

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

  • настрой хук, чтобы Write не трогал .env
  • почему агент не может записать в .env.local?
  • добавь в .claude/settings.json блокировку записи в .env*

Как установить env-file-protection

1Через claude-code-templates

npx claude-code-templates@latest --hook security/env-file-protection

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

.claude/settings.json

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

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

Вопросы о env-file-protection

Как установить env-file-protection в Claude?

Выполните npx claude-code-templates@latest --hook security/env-file-protection, затем проверьте .claude/settings.json — конфигурация хука должна оказаться там.

Что делает env-file-protection?

Блокирует любой вызов инструмента Write, если путь совпадает с .env*. Вместо записи хук возвращает решение deny с пояснением.

Когда хук запускает процесс?

Только при совпадении шаблона Write(.env*). На остальных файлах фильтр по полю if не даёт запускать команду.

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

env-file-protection.json · MIT
{
  "description": "Prevent writing to .env files using the if condition for lightweight filtering. Blocks any Write tool call targeting .env* files, protecting secrets from accidental overwrites. Uses the if field to avoid spawning a process unless the file pattern matches.",
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "command",
            "if": "Write(.env*)",
            "command": "echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"permissionDecision\":\"deny\",\"permissionDecisionReason\":\"Writing to .env files is blocked by hook\"}}'"
          }
        ]
      }
    ]
  }
}

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

Похожие хуки

Всё по теме «Безопасность» →

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

Весь набор →
performance-audit Запускает аудит быстродействия кодовой базы: ищет медленные запросы к базе данных, оценивает сложность циклов и проверяет сборку. Помогает составить план оптимизаций. 661установок setup-development-environment Слэш-команда разворачивает окружение разработки: рантаймы, инструменты, сборку, линтеры и конфиги. Пригодится, когда проект только разворачивают на новой машине. 651установок performance-budget-guard Хук для Claude проверяет размер JS-бандла после сборки Next.js и не даёт выкатить сборку, которая вылезла за бюджет. 393установок vercel-environment-sync Хук проверяет переменные окружения после правки .env и подсказывает, как перенести их в Vercel. Пригодится, если локальные и деплойные значения расходятся. 363установок slack-notifications Отправляет сообщение в Slack, когда Claude закончил работу или завершился субагент. Пригодится, если вы уходите от терминала и хотите знать, что задача готова. 279установок discord-notifications Отправляет сообщение в Discord, когда Claude закончил работу или завершил субагента. Пригодится, если вы уходите от терминала и хотите знать, что задача готова. 217установок tdd-gate Хук блокирует правку production-файлов, пока рядом нет теста. Пригодится, если хотите удержать TDD в работе с агентом. 192установок debug-window Открывает окно с живым хвостом лога отладки, когда Claude запущен с флагом --debug или -d, и закрывает его по концу сессии. 189установок

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

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