From win-hooks
Scans and repairs incompatible plugin hooks on Windows, including Python stub resolution, JSON encoding fixes, and wrapper recreation.
How this command is triggered — by the user, by Claude, or both
Slash command
/win-hooks:fix Optional plugin name to fix (omit for all plugins)This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# Fix Windows Plugin Hooks Manually trigger the win-hooks patcher to fix incompatible plugin hooks on Windows. ## Instructions ### Step 1: Find the win-hooks plugin install path Save the output path as PLUGIN_ROOT. ### Step 2: Run the patcher Replace `<PLUGIN_ROOT>` with the actual path from Step 1. This runs the full pipeline: 1. Best-effort `python.exe` → `python3.exe` copy (stub-aware) so bare `python3` hooks resolve 2. `find-incompatible` scans all installed plugins for incompatible hooks (including bare `python3` that resolves only to a Microsoft Store stub) 3. `apply-patche...
Manually trigger the win-hooks patcher to fix incompatible plugin hooks on Windows.
sed '1s/^\xEF\xBB\xBF//' ~/.claude/plugins/installed_plugins.json | awk '
/win-hooks/ { found=1 }
found && /"installPath"/ {
sub(/.*"installPath"[[:space:]]*:[[:space:]]*"/, "")
sub(/".*/, "")
print
exit
}
' | sed 's/[\\][\\]*/\//g'
Save the output path as PLUGIN_ROOT.
bash "<PLUGIN_ROOT>/hooks/patch-all"
Replace <PLUGIN_ROOT> with the actual path from Step 1.
This runs the full pipeline:
python.exe → python3.exe copy (stub-aware) so bare python3 hooks resolvefind-incompatible scans all installed plugins for incompatible hooks (including bare python3 that resolves only to a Microsoft Store stub)apply-patches creates wrappers, patches hooks.json (with BOM/CRLF sanitization + JSON validation); bare-python3 hooks get a wrapper with the absolute path of a real python baked in (resolved by a functional probe at patch time)fix-backslash-paths + fix-bare-commands repair settings.json hook commandsverify --fix auto-repairs encoding issues (BOM in JSON and scripts, CRLF), repairs broken wrappers (bogus $PLUGIN_ROOT/<interpreter> targets), recreates missing wrappers (referenced by hooks.json but absent — passthrough or regenerated from .bak), and disables recursive wrappersRun the scanner to confirm no issues remain:
bash "<PLUGIN_ROOT>/scripts/find-incompatible"
bash "<PLUGIN_ROOT>/scripts/verify"
Present the results as a table showing each plugin and its status. Empty output from both means all plugins are now compatible and healthy.
$ARGUMENTS specifies a plugin nameFilter the output to show only that plugin's results. If the plugin was already patched (no results), report it as compatible.
npx claudepluginhub lilmgenius/win-hooks --plugin win-hooks/update-pluginsAudits plugin.json registrations against actual disk contents, detecting missing or stale entries. Also runs structure validation, modernization checks, and triggers quality review.
/reinstall-all-pluginsUninstalls and reinstalls all Claude Code plugins to resolve cache corruption, version mismatches, or stale hook paths. Supports --list-only, --generate-script, and --dry-run modes.
/audit-hook-wiringValidates every hook entry in ~/.claude/settings.json against the Claude Code spec — checks event names, file existence, executability, and matcher syntax. Optionally repairs common issues with --fix.
/plan-doctorDiagnoses silent failures in planning-with-files: plan resolution, hook injection, path canonicalization, attestation, install surfaces, and hook latency. Reports PASS/WARN/FAIL with remediation advice.
/validateValidates a plugin's structure, frontmatter, and best practices with optional auto-fix. Accepts plugin path and --fix, --dry-run, --strict flags.
/update-pluginUpdates plugins from the marketplace interactively with version detection, automatic backup, verification, and rollback on failure. Supports --check-only, --yes, --json, and other flags.