Skip to content
Development
Hook

Hooks

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

From plugin
oma
1.3k33 skills12 agents4 hooks3 MCP
Install
> /plugin marketplace add first-fluke/oh-my-agent
> /plugin install oma@oh-my-agent

Ships with oma. Installing the plugin gets these hooks.

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.

  • sh "${CLAUDE_PLUGIN_ROOT}/scripts/plugin-bootstrap.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.

  • bun "${CLAUDE_PLUGIN_ROOT}/.claude/hooks/keyword-detector.ts"bun "${CLAUDE_PLUGIN_ROOT}/.claude/hooks/state-boundary.ts"bun "${CLAUDE_PLUGIN_ROOT}/.claude/hooks/skill-injector.ts"

PreToolUse

  • MatchesBashbun "${CLAUDE_PLUGIN_ROOT}/.claude/hooks/test-filter.ts"

Stop

  • bun "${CLAUDE_PLUGIN_ROOT}/.claude/hooks/persistent-mode.ts"
Read hooks/hooks.json
Ships withoma

Agents narrate success. oh-my-agent checks the artifacts. Spawning parallel agents is the easy part. The hard part is knowing whether they actually did the work.

Get the whole plugin