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

format-python-files — хук для Claude Code: автоформат .py через black

Хук прогоняет black по каждому .py-файлу, который Claude изменил через Edit. Форматирование перестаёт быть отдельным шагом.

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

Что делает format-python-files

Хук вешается на событие PostToolUse с матчером Edit. После правки файла команда проверяет, что путь заканчивается на .py, и запускает black по этому файлу. Всё, что Claude записал в Python-файл, сразу приводится к одному виду.

Внутри одна строка: условие на расширение и вызов black "$CLAUDE_TOOL_FILE_PATH" с подавлением ошибок — 2>/dev/null || true. Поэтому отсутствие black не сломает сессию, но и форматирования не будет. Ставить его нужно заранее: pip install black.

Хук срабатывает только на Edit, а не на Write и не на правки через терминал. Если вы генерируете файлы другим инструментом, формат останется как есть — это повод проверить, каким инструментом вы обычно пишете код.

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

  • привести изменённый .py к единому стилю без ручного запуска black
  • убрать расхождения в отступах и кавычках после правок агента
  • не отвлекаться на форматирование во время длинной сессии
  • закрыть вопрос стиля до код-ревью

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

  • Поправь функцию парсинга в parser.py, чтобы она читала вложенные словари
  • Отрефактори utils.py и вынеси работу с датами в отдельную функцию
  • Исправь ошибку типов в models.py

Как установить format-python-files

1Через claude-code-templates

npx claude-code-templates@latest --hook post-tool/format-python-files

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

.claude/settings.json

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

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

Вопросы о format-python-files

Как установить format-python-files в Claude?

Выполните npx claude-code-templates@latest --hook post-tool/format-python-files, затем проверьте запись в .claude/settings.json.

Что делает format-python-files?

После каждой операции Edit запускает black по изменённому файлу, если у него расширение .py.

Что нужно для работы хука?

Установленный black: pip install black. Без него команда молча завершится, и файл останется неотформатированным.

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

format-python-files.json · MIT
{
  "description": "Automatically format Python files after any Edit operation using black formatter. This hook runs 'black' on any .py file that Claude modifies, ensuring consistent Python code formatting. Requires black to be installed ('pip install black'). The command includes error suppression (2>/dev/null || true) so it won't fail if black is not installed.",
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit",
        "hooks": [
          {
            "type": "command",
            "command": "if [[ \"$CLAUDE_TOOL_FILE_PATH\" == *.py ]]; then black \"$CLAUDE_TOOL_FILE_PATH\" 2>/dev/null || true; fi"
          }
        ]
      }
    ]
  }
}

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

Похожие хуки

Все хуки по теме «Настройка агента: память, контекст, субагенты» →
baoyu-format-markdown JimLiu Форматирует текст и Markdown: добавляет структуру, выделения и кодовые блоки. Подойдёт для подготовки статьи к чтению. CX Codex +1 28 100установок python-testing-patterns Seth Hobson Скилл помогает писать тесты Python с pytest, фикстурами и моками. Подходит для настройки тестового набора и отладки падающих проверок. CX Codex 36 943установок python-performance-optimization Seth Hobson Скилл помогает профилировать Python-код, находить узкие места CPU и памяти. Подходит, когда приложение медленно отвечает или тратит слишком много ресурсов. CX Codex 35 675установок editorconfig официальный github Создаёт .editorconfig после анализа структуры проекта и ваших правил оформления. Подходит, когда нужно закрепить единый стиль файлов. 10 960установок secrets-scanner официальный github Сканирует изменённые за сессию файлы на утёкшие ключи и пароли перед коммитом. Пригодится, когда агент правит код быстро и легко тащит в него токен. ★ 40 418звёзд репо

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

Весь набор →
competitive-intelligence-analyst Субагент для Claude, который собирает данные о конкурентах и рынке: профили компаний, SWOT, отраслевые тренды. Пригодится перед запуском продукта или при подготовке стратегии. 1 561установок flow-status Показывает, в какой ветке Git Flow вы находитесь, насколько она разошлась с remote и куда потом сольётся. 1 514установок web-accessibility-checker Субагент проверяет вёрстку на соответствие WCAG, разбирает семантику HTML и доступность с клавиатуры, а на выходе даёт отчёт с нарушениями. 1 438установок agent-expert Субагент, который помогает проектировать других агентов Claude: структура, границы экспертизы, промпты и примеры. 1 426установок supabase-schema-sync Команда сверяет локальную схему базы данных с удалённым проектом Supabase через MCP-сервер. Помогает быстро находить расхождения и готовить файлы миграций. 1 405установок init-project Разворачивает структуру нового проекта: каталоги, git, линтеры, тесты и CI. Пригодится, когда нужно начать с чистого листа без ручной возни. 1 382установок backup-before-edit Хук Claude делает копию файла с меткой времени перед каждой правкой. Пригодится, когда агент переписывает код и хочется откатиться. 1 328установок containerize-application Слэш-команда собирает Docker-конфигурацию под ваш проект: Dockerfile, .dockerignore, docker-compose и заготовки для Kubernetes. 1 200установок

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

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