I built two small Claude Code plugins this week - here's what I learned about hooks A Citrix software engineer built two open-source plugins for Claude Code that hook into the AI assistant's lifecycle events to improve long agentic sessions. The earshot plugin narrates spoken summaries of agent responses, while waypoint injects a persistent goal reminder into every prompt. Both plugins are MIT-licensed and available on GitHub. I use Claude Code daily as a Software Engineer at Citrix, and two small frictions kept showing up in long agentic sessions: Claude Code plugins can hook into lifecycle events Stop , Notification , UserPromptSubmit , etc. with a single command, so I built one plugin for each problem. earshot https://github.com/absep98/earshot hooks Stop and Notification . Instead of reading the agent's full response, it narrates a short spoken summary โ€” and by default says That "silent by default" behavior wasn't my first instinct โ€” it came from reading two peer-reviewed studies on blind and low-vision developers using AI coding tools. Both found the core problem was auditory overload, not silence. Developers already running a screen reader don't want a second voice narrating the same text. waypoint https://github.com/absep98/waypoint hooks UserPromptSubmit . You set a goal once: /goal-set Fix the login bug on the checkout page From then on, every prompt you send silently carries a one-line reminder of that goal as injected context โ€” until you clear it with /goal-done . No manual re-explaining 40 messages into a session that's drifted. $ /goal-status Active goal set 2h 15m ago : Fix the login bug on the checkout page ~/.claude/