Stats
Actions
Tags
Help us improve
Share bugs, ideas, or general feedback.
From pbr
Validates and potentially blocks unsafe PreToolUse calls for Bash, Write/Edit, Read, Task, and skills. Auto-continues on Stop, preserves state on PreCompact. Executes Node.js scripts, touches bash and file writes.
14 events · 24 hooks
npx claudepluginhub sienklogic/plan-build-runSafety signals detected in this hook configuration
Where this hook configuration is defined
Defined in hooks/hooks.json
Event handlers and matchers — expand Raw Configuration for the full JSON
node -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" auto-continue.jsnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js context-budget-checkReadnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" block-skill-self-read.jsBashnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" pre-bash-dispatch.jsWrite|Editnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" pre-write-dispatch.jsTasknode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" validate-task.jsSkillnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" validate-skill-args.jsEnterPlanModenode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" intercept-plan-mode.jsnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js session-cleanupWrite|Editnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" post-write-dispatch.jsTasknode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js check-subagent-outputBashnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" post-bash-triage.jsReadnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" track-context-budget.jsWrite|Edit|Bash|Tasknode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" context-bridge.jsnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js check-config-changenode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" progress-tracker.jsnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js log-subagentnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js event-handlernode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js log-subagent-startnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js task-completednode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js worktree-createnode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js worktree-removenode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js instructions-loadednode -e "var r=process.env.CLAUDE_PLUGIN_ROOT||'',m=r.match(/^\/([a-zA-Z])\/(.*)/);if(m)r=m[1]+String.fromCharCode(58)+String.fromCharCode(92)+m[2];require(require('path').resolve(r,'scripts','run-hook.js'))" hook-server-client.js log-tool-failureShare bugs, ideas, or general feedback.