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 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 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/<plugin>/
,Both plugins are MIT-licensed and install in one command:
/plugin marketplace add absep98/earshot
/plugin marketplace add absep98/waypoint
Repos: github.com/absep98/earshot · github.com/absep98/waypoint
Happy to answer questions about the hook lifecycle or plugin structure in the comments.