Hookify plugin: Python import error due to incorrect path configuration
Resolved 💬 3 comments Opened Dec 30, 2025 by erudenko Closed Jan 3, 2026
Bug Description
The hookify plugin fails with No module named 'hookify' error on every tool use (PreToolUse, PostToolUse).
Error Message
PostToolUse:Read says: Hookify import error: No module named 'hookify'
PreToolUse:TodoWrite says: Hookify import error: No module named 'hookify'
PostToolUse:TodoWrite says: Hookify import error: No module named 'hookify'
Root Cause
The Python hooks in hooks/pretooluse.py (and others) configure the path incorrectly:
PLUGIN_ROOT = os.environ.get('CLAUDE_PLUGIN_ROOT')
if PLUGIN_ROOT:
parent_dir = os.path.dirname(PLUGIN_ROOT) # Gets .../hookify/
sys.path.insert(0, parent_dir)
from hookify.core.config_loader import load_rules # Fails!
Directory structure:
.claude/plugins/cache/claude-code-plugins/hookify/
└── 0.1.0/ ← PLUGIN_ROOT points here
├── core/
│ ├── __init__.py
│ ├── config_loader.py
│ └── rule_engine.py
└── hooks/
└── pretooluse.py
What happens:
PLUGIN_ROOT=.../hookify/0.1.0/parent_dir=.../hookify/(added to sys.path)- Python tries to import
hookify.core.config_loader - Python looks for
.../hookify/hookify/core/config_loader.py← DOESN'T EXIST - The actual file is at
.../hookify/0.1.0/core/config_loader.py
Workaround
Create a symlink so Python can find the module:
ln -s "/Users/$USER/.claude/plugins/cache/claude-code-plugins/hookify/0.1.0" \
"/Users/$USER/.claude/plugins/cache/claude-code-plugins/hookify/hookify"
Suggested Fix
Either:
- Change directory structure so
PLUGIN_ROOTis namedhookifyinstead of version number - Or fix the imports to use relative imports or correct path calculation:
# Option A: Add PLUGIN_ROOT itself and use relative imports
sys.path.insert(0, PLUGIN_ROOT)
from core.config_loader import load_rules
# Option B: Create the correct path mapping
# The parent is .../hookify/, so we need hookify/hookify → hookify/0.1.0
Environment
- Claude Code version: Latest
- Hookify plugin version: 0.1.0
- Python version: 3.14.2
- OS: macOS (Darwin 25.2.0)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗