[Bug] Hookify import error: No module named 'hookify'
Status Closed — not planned
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 11 comments · opened Dec 9, 2025 · closed Feb 28, 2026
Bug Description
I still see errror "Hookify import error: No module named 'hookify'" Want me to check if hookify is available on PyPI, or just disable the plugin?
⎿ Stop says: Hookify import error: No module named 'hookify'
Environment Info
- Platform: darwin
- Terminal: phpstorm
- Version: 2.0.62
- Feedback ID: 82218bb0-6cf1-4e06-8b47-cc2764366206
Errors
[{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/storm/.local/share/claude/versions/2.0.61 (expected in multi-process scenarios)\n at zh0 (/$bunfs/root/claude:2728:1620)\n at sCA (/$bunfs/root/claude:2726:35591)\n at async TJA (/$bunfs/root/claude:2728:3431)\n at processTicksAndRejections (native:7:39)","timestamp":"2025-12-09T04:47:45.795Z"},{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/storm/.local/share/claude/versions/2.0.62 (expected in multi-process scenarios)\n at zh0 (/$bunfs/root/claude:2728:1620)\n at sCA (/$bunfs/root/claude:2726:35591)\n at async V$7 (/$bunfs/root/claude:2726:37692)\n at async Ag (/$bunfs/root/claude:2728:236)\n at async <anonymous> (/$bunfs/root/claude:2728:13013)\n at processTicksAndRejections (native:7:39)","timestamp":"2025-12-09T04:47:54.975Z"},{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/storm/.local/share/claude/versions/2.0.62 (expected in multi-process scenarios)\n at zh0 (/$bunfs/root/claude:2728:1620)\n at sCA (/$bunfs/root/claude:2726:35591)\n at async V$7 (/$bunfs/root/claude:2726:37692)\n at async Ag (/$bunfs/root/claude:2728:236)\n at async <anonymous> (/$bunfs/root/claude:2728:13013)\n at processTicksAndRejections (native:7:39)","timestamp":"2025-12-09T04:48:01.894Z"},{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/storm/.local/share/claude/versions/2.0.62 (expected in multi-process scenarios)\n at zh0 (/$bunfs/root/claude:2728:1620)\n at sCA (/$bunfs/root/claude:2726:35591)\n at async V$7 (/$bunfs/root/claude:2726:37692)\n at async Ag (/$bunfs/root/claude:2728:236)\n at async <anonymous> (/$bunfs/root/claude:2728:13013)\n at processTicksAndRejections (native:7:39)","timestamp":"2025-12-09T05:09:08.711Z"},{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/storm/.local/share/claude/versions/2.0.62 (expected in multi-process scenarios)\n at zh0 (/$bunfs/root/claude:2728:1620)\n at sCA (/$bunfs/root/claude:2726:35591)\n at async V$7 (unknown)\n at async Ag (unknown)\n at unknown\n at processTicksAndRejections (native:7:39)","timestamp":"2025-12-09T05:09:21.214Z"},{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/storm/.local/share/claude/versions/2.0.62 (expected in multi-process scenarios)\n at zh0 (/$bunfs/root/claude:2728:1620)\n at sCA (/$bunfs/root/claude:2726:35591)\n at async V$7 (/$bunfs/root/claude:2726:37692)\n at async Ag (/$bunfs/root/claude:2728:236)\n at async <anonymous> (/$bunfs/root/claude:2728:13013)\n at processTicksAndRejections (native:7:39)","timestamp":"2025-12-09T05:10:02.588Z"},{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/storm/.local/share/claude/versions/2.0.62 (expected in multi-process scenarios)\n at zh0 (/$bunfs/root/claude:2728:1620)\n at sCA (/$bunfs/root/claude:2726:35591)\n at async V$7 (/$bunfs/root/claude:2726:37692)\n at async Ag (/$bunfs/root/claude:2728:236)\n at async <anonymous> (/$bunfs/root/claude:2728:13013)\n at processTicksAndRejections (native:7:39)","timestamp":"2025-12-09T05:10:22.212Z"},{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/storm/.local/share/claude/versions/2.0.62 (expected in multi-process scenarios)\n at zh0 (/$bunfs/root/claude:2728:1620)\n at sCA (/$bunfs/root/claude:2726:35591)\n at async V$7 (/$bunfs/root/claude:2726:37692)\n at async Ag (/$bunfs/root/claude:2728:236)\n at async <anonymous> (/$bunfs/root/claude:2728:13013)\n at processTicksAndRejections (native:7:39)","timestamp":"2025-12-09T05:11:06.361Z"}]
11 Comments
Found 2 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Similar Issue on Windows + miniconda — Resolved
I had the same
"No module named 'hookify'"error on Windows with miniconda. Here's what happened and how I fixed it:My Experience
/plugin install hookify@claude-code-plugins``
``Plugin hook error: Python was not found; run without arguments to install from the Microsoft Store...
python3command wasn't working — miniconda only providespython.exe, notpython3.exe, and Windows App Execution Alias was intercepting the commandpython3by creating a copy:``
bash
``cp /c/Users/$USER/miniconda3/python.exe /c/Users/$USER/miniconda3/python3.exe
"Hookify import error: No module named 'hookify'"python3wasn't available at install timeSteps to Resolve
1. Ensure
python3works first:2. Then reinstall hookify plugin:
⚠️ Important: Reinstalling alone won't help if
python3is still broken. You must fixpython3first, then reinstall.Why This Works
When
python3is missing during initial installation, the plugin setup fails silently, resulting in an incomplete directory structure. Reinstalling after fixingpython3creates the correct structure with ahookify/subdirectory that enables the Python imports to work.I recommend trying this approach — it resolved the issue completely for me without modifying any plugin files.
I'm also getting this on every tool use after updating to the most recent claude.
@olafurns7 What platform are you on?
If you're on Windows with miniconda/Anaconda, check my comment above — fixing
python3and reinstalling the plugin resolved it for me.If you're on macOS/Linux, first check if
python3 --versionworks. If it does, try reinstalling the plugin:and still
But found the error with Claude, and it's working ok now (a temporary workaround):
I'm on macos, python version was fine, doing the uninstall/install didn't work.
This comment from a different duplicate thread of this problem, fixes it:
https://github.com/anthropics/claude-code/issues/13426#issuecomment-3632217611
Root Cause Analysis
This is a packaging bug, not a user environment issue. The plugin works with
--plugin-dirbut fails with marketplace installation.Technical Cause
The hook scripts (e.g.,
hooks/stop.py) do:Problem: The import
from hookify.core.*expects a directory namedhookify/insys.path, but marketplace installation creates a hash-named subdirectory:When
parent_dir(.../hookify/) is added tosys.path, Python looks for.../hookify/hookify/core/which doesn't exist.Why --plugin-dir Works
Reproduction (100% reliable)
User Workaround
This creates
hookify/ → ab2b6d0cad88, so Python can findhookify/core/.Suggested Fixes
Option A (plugin-side): Change imports to use
PLUGIN_ROOTdirectly:Option B (Claude Code-side): Create the package symlink during marketplace installation:
---
Confirmed on Linux (WSL2), and based on other reports also affects macOS and Windows. This affects all marketplace installations of hookify.
This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.
I had the exact same problem, however for me it said flat out "python was not found" for the userpromptsubmit script.. Issue for that is because these overpaid dipshits STILL CAN'T AFTER __MONTHS__, vibecode their hooks.json garbage to NOT pass python3... which literally doesn't god damn exist if you opted it like that, if you're on windows, and especially if you also have python just natively installed, and not as some trash sub-packaged within the sub-package within the sub-package within the sub-framework within the framework of some random garbage. And the issue to fix that is to.. simply remove the number 3, from python for every command in hooks.json (MAKE SURE YOU DO IT FOR ALL THE VERSIONS INSTALLED IN THE CACHE, because for some dumbass reason, there's always at least two of them, and you can't even tell which is actually newer / the one being used because BOTH are marked as the exact same date and time under "date modified"????????), and shocker shocker, suddenly hookify starts working again lol, and to figure it out which or what or if that is the cause, as the user ppf said above, literally just run python3 --version in your average terminal, if it reports some "not found" garbage exactly the same as you see if you attempt to run the hookify plugin with claude --verbose enabled, then there you go, run python --version, and if that almost certainly works, then issue confirmed lol. I wouldn't be shocked if this exact same cause is for all the other countless hookify errors that are still constantly reported after I repeat, months, or at the very least, have a single, line, of god damn, code, added, as a condition, for people, who didn't, install, and set their python, up, to use, the python3 argument.... GENUINELY incredible.
Closing for now — inactive for too long. Please open a new issue if this is still relevant.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.