You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat: Add noReply option to command.execute.before hook #9306
The command.execute.before plugin hook allows modifying command parts before execution, but there's no way to skip the LLM invocation entirely. This is needed for plugins that want to handle slash commands directly without invoking the LLM.
Currently, the only workaround is throwing an error in the hook, which is hacky.
Proposed Solution
Add an optional noReply field to the hook output object. When set to true, the command flow passes noReply: true to prompt(), which skips the LLM loop.
Changes:
packages/plugin/src/index.ts - Add noReply?: boolean to hook output type
packages/opencode/src/session/prompt.ts - Pass hookOutput.noReply to prompt()
Use Case
Plugins can implement custom slash commands (e.g., /tty list) that execute shell commands or other logic and display results without LLM involvement.
Reacted by Arsham Shirvani, Spoon, Dan Smolsky, hugofqt, Nikolai Kolodziej, Herberto Graça and xxp741236
This issue might be a duplicate of existing issues. Please check:
[FEATURE]: Plugin Hook for Instant TUI Commands #5305: [FEATURE]: Plugin Hook for Instant TUI Commands - Essentially requests the same capability to skip LLM invocation for custom slash commands, but proposes a more comprehensive new hook system rather than adding a noReply flag
Activity
github-actions commentedon Jan 18, 2026
This issue might be a duplicate of existing issues. Please check:
Feel free to ignore if these don't fully address your specific case.
github-actions commentedon Mar 27, 2026
To stay organized issues are automatically closed after 90 days of no activity. If the issue is still relevant please open a new one.
fix(commands): mutate output.parts in place + document LLM-mediation gap
fix(commands): mutate output.parts in place + document LLM-mediation gap
fix(commands): mutate output.parts in place + document LLM-mediation gap
fix(commands): mutate output.parts in place + document LLM-mediation …
fix(cavekit): drop messages-transform hook, use synthetic part instead
fix: code-review-free non-blocking — output immediately, swarm in bac…