[FEATURE] Allow /reload-plugins to be invoked programmatically from slash commands / hooks
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
When building slash commands that switch between plugin profiles (e.g. /dev-mode frontend vs /dev-mode backend), the command can already call claude plugin enable / claude plugin disable via Bash. However, activating the changes in the current session requires a separate manual /reload-plugins step.
There is no way for a slash command, hook, or any other automated mechanism to trigger plugin reload programmatically. The /reload-plugins command is built-in and the SlashCommand tool explicitly excludes built-in commands, so it cannot be invoked as a tool call either.
The current workflow is unavoidably two steps:
/dev-mode backend— runsclaude plugin enable/disablevia Bash ✅- 2.
/reload-plugins— must be typed manually by the user ❌
This makes fully automated plugin-switching workflows impossible.
Proposed Solution
Allow /reload-plugins to be triggered from within a running Claude Code session without user interaction. A few possible approaches:
Option A: Allow the SlashCommand tool and Skill tool to invoke built-in commands like /reload-plugins, similar to how custom commands can invoke each other.
Option B: Expose a reloadPlugins allowed-tool permission (e.g. allowed-tools: ReloadPlugins) that slash commands can declare and call directly.
Option C: Add a CLI subcommand (claude plugin reload) that sends a reload signal to a running session, allowing external scripts and hooks to trigger it.
Alternative Solutions
_No response_
Priority
High - Significant impact on productivity
Feature Category
CLI commands and flags
Use Case Example
_No response_
Additional Context
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗