Skip to content
Development
Hook

Hooks

What claude-context-optimizer runs automatically, and when. A hook is a command Claude Code fires at a fixed moment, without you asking for it.

From plugin
claude-context-optimizer
11122 skills1 agent6 hooks
Install
> /plugin marketplace add egorfedorov/claude-context-optimizer
> /plugin install claude-context-optimizer@cco

Ships with claude-context-optimizer. Installing the plugin gets these hooks.

What fires, and when

PreToolUse

  • MatchesReadtest -f "${CLAUDE_PLUGIN_ROOT}/src/read-cache.js" || exit 0; node "${CLAUDE_PLUGIN_ROOT}/src/read-cache.js"test -f "${CLAUDE_PLUGIN_ROOT}/src/context-shield.js" || exit 0; node "${CLAUDE_PLUGIN_ROOT}/src/context-shield.js"

UserPromptSubmit

Fires before Claude sees each prompt you send. A plugin can use it to inject context, so the same instruction reaches the model every turn instead of only at session start.

  • test -f "${CLAUDE_PLUGIN_ROOT}/src/prompt-coach.js" || exit 0; node "${CLAUDE_PLUGIN_ROOT}/src/prompt-coach.js"

PostToolUse

  • MatchesEdit|Writetest -f "${CLAUDE_PLUGIN_ROOT}/src/read-cache.js" || exit 0; node "${CLAUDE_PLUGIN_ROOT}/src/read-cache.js"
  • MatchesBash|Read|Edit|Write|Glob|Grep|Agent|mcp__.*payload=$(cat); test -f "${CLAUDE_PLUGIN_ROOT}/src/tracker.js" && printf '%s' "$payload" | node "${CLAUDE_PLUGIN_ROOT}/src/tracker.js"; test -f "${CLAUDE_PLUGIN_ROOT}/src/budget.js" && printf '%s' "$payload" | node "${CLAUDE_PLUGIN_ROOT}/src/budget.js"; exit 0

PreCompact

  • test -f "${CLAUDE_PLUGIN_ROOT}/src/read-cache.js" || exit 0; node "${CLAUDE_PLUGIN_ROOT}/src/read-cache.js"test -f "${CLAUDE_PLUGIN_ROOT}/src/tracker.js" || exit 0; node "${CLAUDE_PLUGIN_ROOT}/src/tracker.js"

SessionStart

Fires once when a session begins, and again after a context compaction. It is where a plugin sets up its environment, or restores state the compaction dropped.

  • payload=$(cat); test -f "${CLAUDE_PLUGIN_ROOT}/src/tracker.js" && printf '%s' "$payload" | node "${CLAUDE_PLUGIN_ROOT}/src/tracker.js"; test -f "${CLAUDE_PLUGIN_ROOT}/src/tasks.js" && printf '%s' "$payload" | node "${CLAUDE_PLUGIN_ROOT}/src/tasks.js" rehydrate; exit 0

SessionEnd

  • payload=$(cat); test -f "${CLAUDE_PLUGIN_ROOT}/src/tracker.js" && printf '%s' "$payload" | node "${CLAUDE_PLUGIN_ROOT}/src/tracker.js"; test -f "${CLAUDE_PLUGIN_ROOT}/src/dashboard.js" && printf '%s' "$payload" | node "${CLAUDE_PLUGIN_ROOT}/src/dashboard.js" summary; exit 0
Read hooks/hooks.json
Ships withclaude-context-optimizer

Claude Code plugin that tracks token usage, identifies wasted context, and saves 30-50% on API costs. Heatmaps, ROI reports, budget alerts, efficiency scores, git-aware suggestions — all local, zero config.

Get the whole plugin
Stats
111
Stars
10
Forks
Active
Maintenance
JavaScript
Language
MIT
License
4h ago
Last commit
6mo ago
Created

Repo: egorfedorov/claude-context-optimizer