Stats
Actions
Tags
Blocks tool calls until security, version, and drift guards pass. Runs coherence checks on stop, context canary after tool use, and memory reflection. Executes bash and Python scripts.
6 events · 17 hooks
Safety 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 "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/check-console-log.js"*node "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-compact.js"Bashnode -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=i.tool_input?.command||'';if(process.platform!=='win32'&&/(npm run dev\b|pnpm( run)? dev\b|yarn dev\b|bun run dev\b)/.test(cmd)){console.error('[Hook] BLOCKED: Dev server must run in tmux for log access');console.error('[Hook] Use: tmux new-session -d -s dev \"npm run dev\"');console.error('[Hook] Then: tmux attach -t dev');process.exit(2)}}catch{}console.log(d)})"Bashnode -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=i.tool_input?.command||'';if(process.platform!=='win32'&&!process.env.TMUX&&/(npm (install|test)|pnpm (install|test)|yarn (install|test)?|bun (install|test)|cargo build|make\b|docker\b|pytest|vitest|playwright)/.test(cmd)){console.error('[Hook] Consider running in tmux for session persistence');console.error('[Hook] tmux new -s dev | tmux attach -t dev')}}catch{}console.log(d)})"Bashnode -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=i.tool_input?.command||'';if(/git push/.test(cmd)){console.error('[Hook] Review changes before push...');console.error('[Hook] Continuing with push (remove this hook to add interactive review)')}}catch{}console.log(d)})"Writenode "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/doc-file-warning.js"Edit|Writenode "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/suggest-compact.js"*${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh10ms*node "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/session-end.js"*node "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/evaluate-session.js"Bashnode -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=i.tool_input?.command||'';if(/gh pr create/.test(cmd)){const out=i.tool_output?.output||'';const m=out.match(/https:\/\/github.com\/[^/]+\/[^/]+\/pull\/\d+/);if(m){console.error('[Hook] PR created: '+m[0]);const repo=m[0].replace(/https:\/\/github.com\/([^/]+\/[^/]+)\/pull\/\d+/,'$1');const pr=m[0].replace(/.+\/pull\/(\d+)/,'$1');console.error('[Hook] To review: gh pr review '+pr+' --repo '+repo)}}}catch{}console.log(d)})"Bashnode -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=i.tool_input?.command||'';if(/(npm run build|pnpm build|yarn build)/.test(cmd)){console.error('[Hook] Build completed - async analysis running in background')}}catch{}console.log(d)})"30msEditnode "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/post-edit-format.js"Editnode "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/post-edit-typecheck.js"Editnode "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/post-edit-console-warn.js"*${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh10ms*node "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/session-start.js"npx claudepluginhub fabio29t/everything-claude20plugins reuse this hooks config
First indexed Feb 1, 2026
Showing the 6 earliest of 20 plugins