Event Hooks
Community

contextune

6 events · 16 hooks

Install
1
Install the plugin
$
npx claudepluginhub Shakes-tzd/contextune --plugin contextune

Want just this hook?

Then install: npx claudepluginhub u/[userId]/[slug]

Risk Indicators
Matches all tools
Source

Defined in hooks/hooks.json

Configuration
{
  "PreCompact": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/context_preserver.py",
          "timeout": 2000,
          "description": "Automatically preserve working context to scratch_pad.md"
        },
        {
          "type": "command",
          "command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/compact_start.js",
          "timeout": 1000,
          "description": "Track context compaction for measuring context preservation"
        }
      ],
      "matcher": "*"
    }
  ],
  "PreToolUse": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/pre_tool_use_state_sync.py",
          "timeout": 1000,
          "description": "State sync - check if files changed externally before Edit/Write (~300 tokens only when needed)"
        },
        {
          "type": "command",
          "command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/pre_tool_use_git_advisor.py",
          "timeout": 1000,
          "description": "Git workflow advisor - suggests scripts for multi-tool workflows (93-97% token reduction)"
        },
        {
          "type": "command",
          "command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/tool_router.py",
          "timeout": 2000,
          "description": "Intelligent tool routing for cost optimization"
        }
      ],
      "matcher": "*"
    }
  ],
  "SessionEnd": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/session_end_recorder.py",
          "timeout": 2000,
          "description": "Record session metadata for next session's git context (~100 tokens write only)"
        },
        {
          "type": "command",
          "command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/session_end_extractor.py",
          "timeout": 5000,
          "description": "Extract completed work to .plans/ and decisions.yaml (zero conversation overhead)"
        }
      ],
      "matcher": "*"
    }
  ],
  "PostToolUse": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/contextune_plan_tracker.py",
          "timeout": 3000,
          "description": "Auto-create HtmlGraph track from /ctx:plan"
        },
        {
          "type": "command",
          "command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/contextune_execute_tracker.py",
          "timeout": 3000,
          "description": "Auto-create HtmlGraph features from /ctx:execute tasks"
        },
        {
          "type": "command",
          "command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/tool_cost_tracker.py",
          "timeout": 2000,
          "description": "Track tool costs and optimization opportunities"
        }
      ],
      "matcher": "*"
    }
  ],
  "SessionStart": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/session_start_git_context.py",
          "timeout": 2000,
          "description": "Git-powered context injection - differential updates since last session (~1-2K tokens)"
        },
        {
          "type": "command",
          "command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/context_restorer.js",
          "timeout": 2000,
          "description": "Restore working context from scratch_pad.md (DRY context transfer)"
        },
        {
          "type": "command",
          "command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/session_start.js",
          "timeout": 1000,
          "description": "Display Contextune commands (zero context overhead)"
        },
        {
          "type": "command",
          "command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/version_checker.js",
          "timeout": 3000,
          "description": "Check for plugin updates (once per day)"
        }
      ],
      "matcher": "*"
    }
  ],
  "UserPromptSubmit": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/context_injector.js",
          "timeout": 1000,
          "description": "Inject current context for grounded research"
        },
        {
          "type": "command",
          "command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/user_prompt_submit.py",
          "timeout": 5000,
          "description": "SlashSense intent detection"
        }
      ],
      "matcher": "*"
    }
  ]
}
Summary
{
  "riskFlags": {
    "touchesBash": false,
    "matchAllTools": true,
    "touchesFileWrites": false
  },
  "typeStats": {
    "command": 16
  },
  "eventStats": {
    "PreCompact": 2,
    "PreToolUse": 3,
    "SessionEnd": 2,
    "PostToolUse": 3,
    "SessionStart": 4,
    "UserPromptSubmit": 2
  },
  "originCounts": {
    "absolutePaths": 0,
    "pluginScripts": 16,
    "projectScripts": 0
  },
  "timeoutStats": {
    "commandsWithoutTimeout": 0
  }
}
Stats
Stars4
Forks0
Last CommitDec 23, 2025

Similar Hooks