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.
> /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
- Matches
Readtest -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
- Matches
Edit|Writetest -f "${CLAUDE_PLUGIN_ROOT}/src/read-cache.js" || exit 0; node "${CLAUDE_PLUGIN_ROOT}/src/read-cache.js" - Matches
Bash|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
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.
Repo: egorfedorov/claude-context-optimizer

