Productivity
Hook
Hooks
What iterm2-tab-status runs automatically, and when. A hook is a command Claude Code fires at a fixed moment, without you asking for it.
What fires, and when
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.
${CLAUDE_PLUGIN_ROOT}/scripts/bootstrap.sh
Notification
- Matches
idle_prompt|permission_prompt${CLAUDE_PLUGIN_ROOT}/scripts/hook.sh
PreToolUse
- Matches
AskUserQuestion${CLAUDE_PLUGIN_ROOT}/scripts/hook.sh
PostToolUse
- Matches
AskUserQuestion${CLAUDE_PLUGIN_ROOT}/scripts/hook.sh
PostToolUseFailure
- Matches
AskUserQuestion${CLAUDE_PLUGIN_ROOT}/scripts/hook.sh
Stop
${CLAUDE_PLUGIN_ROOT}/scripts/hook.sh
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.
${CLAUDE_PLUGIN_ROOT}/scripts/hook.sh
Ships withiterm2-tab-status
See what every Claude Code session is doing. Each iTerm2 tab shows a status prefix. โก running, ๐ค idle, or ๐ด needs attention (with flashing).
Get the whole plugin

