npx claudepluginhub thunderconch/tkm --plugin tkmDefined in hooks/hooks.json
TOKENMON_HOOK_MODE=1 "${CLAUDE_PLUGIN_ROOT}/bin/tsx-resolve.sh" "${CLAUDE_PLUGIN_ROOT}/src/hooks/stop.ts"TOKENMON_HOOK_MODE=1 "${CLAUDE_PLUGIN_ROOT}/bin/tsx-resolve.sh" "${CLAUDE_PLUGIN_ROOT}/src/hooks/post-tool-use.ts"diff -q "${CLAUDE_PLUGIN_ROOT}/package.json" "${CLAUDE_PLUGIN_DATA}/package.json" >/dev/null 2>&1 || (cd "${CLAUDE_PLUGIN_ROOT}" && npm install --no-audit --no-fund 2>/dev/null && cp "${CLAUDE_PLUGIN_ROOT}/package.json" "${CLAUDE_PLUGIN_DATA}/package.json") || trueTOKENMON_HOOK_MODE=1 "${CLAUDE_PLUGIN_ROOT}/bin/tsx-resolve.sh" "${CLAUDE_PLUGIN_ROOT}/src/hooks/session-start.ts"TOKENMON_HOOK_MODE=1 "${CLAUDE_PLUGIN_ROOT}/bin/tsx-resolve.sh" "${CLAUDE_PLUGIN_ROOT}/src/hooks/subagent-stop.ts"TOKENMON_HOOK_MODE=1 "${CLAUDE_PLUGIN_ROOT}/bin/tsx-resolve.sh" "${CLAUDE_PLUGIN_ROOT}/src/hooks/subagent-start.ts"TOKENMON_HOOK_MODE=1 "${CLAUDE_PLUGIN_ROOT}/bin/tsx-resolve.sh" "${CLAUDE_PLUGIN_ROOT}/src/hooks/permission.ts"TOKENMON_HOOK_MODE=1 "${CLAUDE_PLUGIN_ROOT}/bin/tsx-resolve.sh" "${CLAUDE_PLUGIN_ROOT}/src/hooks/tool-fail.ts"Executes TypeScript hooks via tsx for token monitoring on 7 Claude Code events: SessionStart, Stop, PostToolUse, SubagentStart/Stop, PermissionRequest, PostToolUseFailure. Runs npm install on SessionStart if package.json changed.
Share bugs, ideas, or general feedback.