backup-before-edit — хук для Claude Code: бэкап файлов перед правкой
Хук Claude делает копию файла с меткой времени перед каждой правкой. Пригодится, когда агент переписывает код и хочется откатиться.
npx claude-code-templates@latest --hook pre-tool/backup-before-editЧто делает backup-before-edit
Хук вешается на событие PreToolUse с матчером Edit. Перед тем как Claude возьмётся за файл, команда проверяет, существует ли он, и копирует его рядом в filename.backup.timestamp, где timestamp — это date +%s. Новые файлы не трогает: копировать нечего.
Ошибки копирования подавлены через 2>/dev/null || true, поэтому хук не заблокирует правку, даже если с путём что-то не так. Это удобно, но и означает, что о неудачном бэкапе вы не узнаете. Если файл большой или лежит на медленном диске, копия перед каждой правкой добавит задержку — это повод проверить, сколько места занимают бэкапы в рабочей папке.
Установка идёт через npx claude-code-templates@latest --hook pre-tool/backup-before-edit, настройка прописывается в .claude/settings.json. Восстановление ручное: находите нужный .backup.<timestamp> и возвращаете его на место.
Какие задачи решает
- откатить файл после неудачной правки агента
- сохранить версию перед массовым рефакторингом
- подстраховаться при работе Claude с конфигами
- вернуть прежнее содержимое, если правка сломала сборку
Примеры запросов агенту
- Отрефактори модуль
parser.py, хук backup-before-edit сохранит копию перед правкой - Поправь
.claude/settings.json, бэкап создастся автоматически - Перепиши функцию
load_config, потом покажи, какие бэкапы появились
Как установить backup-before-edit
1Через claude-code-templates
npx claude-code-templates@latest --hook pre-tool/backup-before-edit2Вручную: положить файлы
.claude/settings.jsonБлок hooks: событие (PreToolUse, PostToolUse, Stop…) → команда. Личные — ~/.claude/settings.json
По шагам, с командами для каждой платформы: Хуки Claude Code: что это, где настраивать и как запретить опасную команду
Вопросы о backup-before-edit
Как установить backup-before-edit в Claude?
Выполните npx claude-code-templates@latest --hook pre-tool/backup-before-edit, затем проверьте запись в .claude/settings.json.
Что делает backup-before-edit?
Перед каждой правкой файла через Edit создаёт рядом копию с меткой времени в имени. Существующие файлы копирует, новые пропускает.
Как восстановить файл из бэкапа?
Найдите копию с нужным timestamp рядом с исходным файлом и скопируйте её обратно под исходным именем. Автоматического отката хук не делает.
Исходный текст
backup-before-edit.json · MIT
{
"description": "Create automatic backup of files before any Edit operation for safety. This hook creates a timestamped backup copy (filename.backup.timestamp) of any existing file before Claude modifies it. Provides a safety net to recover previous versions if needed. Only backs up existing files, includes error suppression to handle edge cases gracefully.",
"hooks": {
"PreToolUse": [
{
"matcher": "Edit",
"hooks": [
{
"type": "command",
"command": "if [[ -f \"$CLAUDE_TOOL_FILE_PATH\" ]]; then cp \"$CLAUDE_TOOL_FILE_PATH\" \"$CLAUDE_TOOL_FILE_PATH.backup.$(date +%s)\" 2>/dev/null || true; fi"
}
]
}
]
}
}
© davila7 · MIT · davila7/claude-code-templates