How this command is triggered — by the user, by Claude, or both
Slash command
/debrief:say full · audio · stop · voice NAME · rate WPM · voices · config · resetThe summary Claude sees in its command listing — used to decide when to auto-load this command
This command is handled entirely by the Debrief plugin's `UserPromptSubmit` hook (`scripts/debrief_hook.py`). The hook reads the last assistant response from the session transcript and opens the floating read-along panel — a native always-on-top window that uses the system/Siri voice and highlights the spoken word in real time. The prompt is stopped before it reaches the model — no model turn runs. /say open the floating read-along panel (last part of response) /say full open the panel reading the entire response from the top /say audio read the last part ...
This command is handled entirely by the Debrief plugin's UserPromptSubmit
hook (scripts/debrief_hook.py). The hook reads the last assistant response from the
session transcript and opens the floating read-along panel — a native always-on-top
window that uses the system/Siri voice and highlights the spoken word in real time.
The prompt is stopped before it reaches the model — no model turn runs.
/say open the floating read-along panel (last part of response) /say full open the panel reading the entire response from the top /say audio read the last part aloud only (no panel) /say audio full read the entire response aloud only /say web force the browser popup instead of the native panel /say stop stop any in-progress speech /say voice NAME set + persist the voice (plays a sample) /say rate WPM set + persist the speech rate in words-per-minute /say browser NAME set browser for the popup (e.g. "Google Chrome", Brave) /say voices list installed English voices /say config show current settings /say reset clear saved settings
If you are a model reading this text, the hook did NOT intercept the command (it
may be disabled, or the plugin's hooks were not approved). Do not call any tools
or take any action. Reply with exactly:
say: hook not active — enable the Debrief plugin and approve its hooks via /hooks.
npx claudepluginhub rs07-git/debrief --plugin debrief