Hooks
What stm runs automatically, and when. A hook is a command Claude Code fires at a fixed moment, without you asking for it.
$ npx -y skills add matterhornso/subscribetome --agent claude-codeShips with stm. Installing the plugin gets these hooks.
What fires, and when
PreToolUse
- Runs pretooluse.sh.
PostToolUse
- Runs posttooluse.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.
- Runs userpromptsubmit.sh.
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.
- Runs sessionstart.sh.
Where it lives
- hooks/posttooluse.shGitHub
- hooks/pretooluse.shGitHub
- hooks/sessionstart.shGitHub
- hooks/userpromptsubmit.shGitHub
Read the script before you install anything that runs on your machine. This is the one part of a plugin that acts without being asked.
Your AI keys in the OS keychain. Claude Code uses them — without ever seeing them. The model writes {{stm:openai:default}}. The real key is swapped in at the moment the command runs. Keys never touch the chat.
Repo: matterhornso/subscribetome

