К основному содержанию
команда официальный · Anthropic

hookify — команда для Claude Code: что делает и как установить

Создаёт правила хуков для Claude Code из замечаний в чате или прямых указаний. Предотвращает опасные команды терминала и нежелательные правки.

Установить в Claude Code · Через маркетплейс плагинов Все способы и платформы ↓
/plugin install hookify@claude-plugins-official
Открыть на GitHub

Что делает hookify

Команда находит проблемные действия в недавнем диалоге или принимает конкретный запрет через аргумент. Если вызвать её без параметров, субагент conversation-analyzer сканирует последние 20–30 сообщений. Он ищет фразы недовольства, отмены правок и прямые просьбы прекратить нежелательные вызовы вроде rm -rf.

Затем hookify задаёт вопросы через AskUserQuestion. Вы выбираете до четырёх найденных сценариев, определяете тип реакции (warn для предупреждения или block для запрета) и корректируете регулярное выражение в синтаксисе Python. Для каждого подтверждённого сценария генерируется отдельный файл .claude/hookify.{rule-name}.local.md.

Файлы сохраняются в папку .claude текущего проекта. Перезапускать сессию Claude Code не требуется. Правила начинают действовать сразу при следующем вызове любого инструмента.

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

  • запретить выполнение разрушительных команд Bash вроде rm -rf
  • блокировать появление нежелательных конструкций вроде console.log в коде
  • автоматически извлекать повторяющиеся ошибки из истории диалога
  • настроить предупреждения перед редактированием файлов .env

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

  • /hookify
  • /hookify Don't use rm -rf without asking me first
  • /hookify Запрети добавлять console.log в файлы проекта

Как установить hookify

1Через маркетплейс плагинов

/plugin install hookify@claude-plugins-official

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

.claude/commands/hookify.md

Вызов — /hookify. Для всех проектов — ~/.claude/commands/

Вопросы о hookify

Как установить hookify в Claude Code?

Выполните команду /plugin install hookify@claude-plugins-official в Claude Code. Также можно сохранить файл по пути .claude/commands/hookify.md.

Что делает hookify?

Команда сканирует историю переписки на наличие ошибок или принимает указание пользователя, после чего создаёт файлы локальных хуков. Они перехватывают вызовы терминала и правку файлов.

Нужно ли перезапускать Claude Code после создания правила?

Перезапуск не требуется. Сгенерированные правила активируются мгновенно и считываются при следующем обращении к инструментам.

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

hookify.md · Apache-2.0
---
description: Create hooks to prevent unwanted behaviors from conversation analysis or explicit instructions
argument-hint: Optional specific behavior to address
allowed-tools: ["Read", "Write", "AskUserQuestion", "Task", "Grep", "TodoWrite", "Skill"]
---

# Hookify - Create Hooks from Unwanted Behaviors

**FIRST: Load the hookify:writing-rules skill** using the Skill tool to understand rule file format and syntax.

Create hook rules to prevent problematic behaviors by analyzing the conversation or from explicit user instructions.

## Your Task

You will help the user create hookify rules to prevent unwanted behaviors. Follow these steps:

### Step 1: Gather Behavior Information

**If $ARGUMENTS is provided:**
- User has given specific instructions: `$ARGUMENTS`
- Still analyze recent conversation (last 10-15 user messages) for additional context
- Look for examples of the behavior happening

**If $ARGUMENTS is empty:**
- Launch the conversation-analyzer agent to find problematic behaviors
- Agent will scan user prompts for frustration signals
- Agent will return structured findings

**To analyze conversation:**
Use the Task tool to launch conversation-analyzer agent:
```
{
  "subagent_type": "general-purpose",
  "description": "Analyze conversation for unwanted behaviors",
  "prompt": "You are analyzing a Claude Code conversation to find behaviors the user wants to prevent.

Read user messages in the current conversation and identify:
1. Explicit requests to avoid something (\"don't do X\", \"stop doing Y\")
2. Corrections or reversions (user fixing Claude's actions)
3. Frustrated reactions (\"why did you do X?\", \"I didn't ask for that\")
4. Repeated issues (same problem multiple times)

For each issue found, extract:
- What tool was used (Bash, Edit, Write, etc.)
- Specific pattern or command
- Why it was problematic
- User's stated reason

Return findings as a structured list with:
- category: Type of issue
- tool: Which tool was involved
- pattern: Regex or literal pattern to match
- context: What happened
- severity: high/medium/low

Focus on the most recent issues (last 20-30 messages). Don't go back further unless explicitly asked."
}
```

### Step 2: Present Findings to User

After gathering behaviors (from arguments or agent), present to user using AskUserQuestion:

**Question 1: Which behaviors to hookify?**
- Header: "Create Rules"
- multiSelect: true
- Options: List each detected behavior (max 4)
  - Label: Short description (e.g., "Block rm -rf")
  - Description: Why it's problematic

**Question 2: For each selected behavior, ask about action:**
- "Should this block the operation or just warn?"
- Options:
  - "Just warn" (action: warn - shows message but allows)
  - "Block operation" (action: block - prevents execution)

**Question 3: Ask for example patterns:**
- "What patterns should trigger this rule?"
- Show detected patterns
- Allow user to refine or add more

### Step 3: Generate Rule Files

For each confirmed behavior, create a `.claude/hookify.{rule-name}.local.md` file:

**Rule naming convention:**
- Use kebab-case
- Be descriptive: `block-dangerous-rm`, `warn-console-log`, `require-tests-before-stop`
- Start with action verb: block, warn, prevent, require

**File format:**
```markdown
---
name: {rule-name}
enabled: true
event: {bash|file|stop|prompt|all}
pattern: {regex pattern}
action: {warn|block}
---

{Message to show Claude when rule triggers}
```

**Action values:**
- `warn`: Show message but allow operation (default)
- `block`: Prevent operation or stop session

**For more complex rules (multiple conditions):**
```markdown
---
name: {rule-name}
enabled: true
event: file
conditions:
  - field: file_path
    operator: regex_match
    pattern: \.env$
  - field: new_text
    operator: contains
    pattern: API_KEY
---

{Warning message}
```

### Step 4: Create Files and Confirm

**IMPORTANT**: Rule files must be created in the current working directory's `.claude/` folder, NOT the plugin directory.

Use the current working directory (where Claude Code was started) as the base path.

1. Check if `.claude/` directory exists in current working directory
   - If not, create it first with: `mkdir -p .claude`

2. Use Write tool to create each `.claude/hookify.{name}.local.md` file
   - Use relative path from current working directory: `.claude/hookify.{name}.local.md`
   - The path should resolve to the project's .claude directory, not the plugin's

3. Show user what was created:
   ```
   Created 3 hookify rules:
   - .claude/hookify.dangerous-rm.local.md
   - .claude/hookify.console-log.local.md
   - .claude/hookify.sensitive-files.local.md

   These rules will trigger on:
   - dangerous-rm: Bash commands matching "rm -rf"
   - console-log: Edits adding console.log statements
   - sensitive-files: Edits to .env or credentials files
   ```

4. Verify files were created in the correct location by listing them

5. Inform user: **"Rules are active immediately - no restart needed!"**

   The hookify hooks are already loaded and will read your new rules on the next tool use.

## Event Types Reference

- **bash**: Matches Bash tool commands
- **file**: Matches Edit, Write, MultiEdit tools
- **stop**: Matches when agent wants to stop (use for completion checks)
- **prompt**: Matches when user submits prompts
- **all**: Matches all events

## Pattern Writing Tips

**Bash patterns:**
- Match dangerous commands: `rm\s+-rf|chmod\s+777|dd\s+if=`
- Match specific tools: `npm\s+install\s+|pip\s+install`

**File patterns:**
- Match code patterns: `console\.log\(|eval\(|innerHTML\s*=`
- Match file paths: `\.env$|\.git/|node_modules/`

**Stop patterns:**
- Check for missing steps: (check transcript or completion criteria)

## Example Workflow

**User says**: "/hookify Don't use rm -rf without asking me first"

**Your response**:
1. Analyze: User wants to prevent rm -rf commands
2. Ask: "Should I block this command or just warn you?"
3. User selects: "Just warn"
4. Create `.claude/hookify.dangerous-rm.local.md`:
   ```markdown
   ---
   name: warn-dangerous-rm
   enabled: true
   event: bash
   pattern: rm\s+-rf
   ---

   ⚠️ **Dangerous rm command detected**

   You requested to be warned before using rm -rf.
   Please verify the path is correct.
   ```
5. Confirm: "Created hookify rule. It's active immediately - try triggering it!"

## Important Notes

- **No restart needed**: Rules take effect immediately on the next tool use
- **File location**: Create files in project's `.claude/` directory (current working directory), NOT the plugin's .claude/
- **Regex syntax**: Use Python regex syntax (raw strings, no need to escape in YAML)
- **Action types**: Rules can `warn` (default) or `block` operations
- **Testing**: Test rules immediately after creating them

## Troubleshooting

**If rule file creation fails:**
1. Check current working directory with pwd
2. Ensure `.claude/` directory exists (create with mkdir if needed)
3. Use absolute path if needed: `{cwd}/.claude/hookify.{name}.local.md`
4. Verify file was created with Glob or ls

**If rule doesn't trigger after creation:**
1. Verify file is in project `.claude/` not plugin `.claude/`
2. Check file with Read tool to ensure pattern is correct
3. Test pattern with: `python3 -c "import re; print(re.search(r'pattern', 'test text'))"`
4. Verify `enabled: true` in frontmatter
5. Remember: Rules work immediately, no restart needed

**If blocking seems too strict:**
1. Change `action: block` to `action: warn` in the rule file
2. Or adjust the pattern to be more specific
3. Changes take effect on next tool use

Use TodoWrite to track your progress through the steps.

© Anthropic · Apache-2.0 · anthropics/claude-plugins-official

Похожие слэш-команды

Все слэш-команды по теме «Настройка агента: память, контекст, субагенты» →

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

Весь набор →
skill-reviewer Субагент проверяет структуру и описания скиллов Claude Code перед публикацией. Он находит ошибки в триггерах, разгружает основной файл и следит за стандартами. ★ 44 635звёзд репо plugin-validator Субагент проверяет структуру плагина Claude: манифест, команды, агентов, скиллы, хуки и MCP-серверы. Пригодится перед публикацией. ★ 44 635звёзд репо agent-creator Субагент, который собирает готовую конфигурацию агента по описанию задачи. Пригодится, когда нужно добавить в плагин автономного агента, а формулировать system prompt вручную лень. ★ 44 635звёзд репо math-proof-judge Субагент, который ведёт доказательство трудной математической задачи по шагам: планирует вопросы, читает ответы и собирает proof.md. ★ 44 635звёзд репо help Показывает, как устроен плагин hookify и как создавать правила-хуки. Пригодится, если вы уже поставили hookify и не помните синтаксис. ★ 44 635звёзд репо conversation-analyzer Субагент находит в истории диалога ошибки Claude Code и раздражение пользователя, чтобы превратить проблемные действия в блокирующие или предупреждающие хуки. ★ 44 635звёзд репо maker-setup Команда подключает Cardputer-Adv к рабочему процессу Code-with-Claude: скачивает репозиторий, прошивает устройство и ставит приложения Claude Buddy. ★ 44 635звёзд репо commit-push-pr Автоматически переключает ветку с main, делает коммит изменений, отправляет их на origin и оформляет pull request через GitHub CLI. ★ 44 635звёзд репо

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

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