/plugin marketplace add yeachan-heo/oh-my-claudecode/plugin install oh-my-claudecode@omcDefined in hooks/hooks.json
{
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/persistent-mode.cjs\"",
"timeout": 5
}
],
"matcher": "*"
}
],
"PreCompact": [
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/pre-compact.mjs\"",
"timeout": 10
},
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/project-memory-precompact.mjs\"",
"timeout": 5
}
],
"matcher": "*"
}
],
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/pre-tool-enforcer.mjs\"",
"timeout": 3
}
],
"matcher": "*"
}
],
"SessionEnd": [
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/session-end.mjs\"",
"timeout": 10
}
],
"matcher": "*"
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/post-tool-verifier.mjs\"",
"timeout": 3
},
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/project-memory-posttool.mjs\"",
"timeout": 3
}
],
"matcher": "*"
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/session-start.mjs\"",
"timeout": 5
},
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/project-memory-session.mjs\"",
"timeout": 5
}
],
"matcher": "*"
},
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/setup-init.mjs\"",
"timeout": 30
}
],
"matcher": "init"
},
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/setup-maintenance.mjs\"",
"timeout": 60
}
],
"matcher": "maintenance"
}
],
"SubagentStop": [
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/subagent-tracker.mjs\" stop",
"timeout": 5
}
],
"matcher": "*"
}
],
"SubagentStart": [
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/subagent-tracker.mjs\" start",
"timeout": 3
}
],
"matcher": "*"
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/keyword-detector.mjs\"",
"timeout": 5
},
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/skill-injector.mjs\"",
"timeout": 3
}
],
"matcher": "*"
}
],
"PermissionRequest": [
{
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/permission-handler.mjs\"",
"timeout": 5
}
],
"matcher": "Bash"
}
]
}{
"riskFlags": {
"touchesBash": true,
"matchAllTools": true,
"touchesFileWrites": false
},
"typeStats": {
"command": 16
},
"eventStats": {
"Stop": 1,
"PreCompact": 2,
"PreToolUse": 1,
"SessionEnd": 1,
"PostToolUse": 2,
"SessionStart": 4,
"SubagentStop": 1,
"SubagentStart": 1,
"UserPromptSubmit": 2,
"PermissionRequest": 1
},
"originCounts": {
"absolutePaths": 0,
"pluginScripts": 16,
"projectScripts": 0
},
"timeoutStats": {
"commandsWithoutTimeout": 0
}
}