Add hook events for plan mode lifecycle (enter, propose, exit)
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
Currently there is no way to react programmatically to plan mode transitions. The hooks system has events for tool calls, session lifecycle, context management, and so on — but nothing for plan mode. When Claude enters plan mode, proposes a plan, or exits plan mode, no hook fires.
This makes it impossible to integrate plan mode into external workflow tools.
Proposed Solution
Three new hook events:
PlanModeEnter — fires when plan mode is activated (via Shift+Tab, /plan, or API). Should support additionalContext so we can also inject custom instructions at this moment.
PlanModePropose — fires when Claude finishes the plan and is ready for approval. The hook should receive the plan content so it can be forwarded to external systems.
PlanModeExit — fires when leaving plan mode (whether the plan was accepted, rejected, or cancelled). Should include the exit reason.
These would follow the same pattern as existing hooks — shell commands that receive JSON input via stdin and can return additionalContext or block the action.
Alternative Solutions
A new setting, something like planModePrompt in settings.json, that lets us define additional text that gets appended to the system message when plan mode is activated. "Entered plan mode....."
Priority
High - Significant impact on productivity
Feature Category
Configuration and settings
Use Case Example
My use case:
I use a kanban board to track all work that Claude does. Today I have to manually and remind myself to specifically ask to create tasks when entering plan mode, but this should be automatic. What I need is:
On plan mode enter → create a task in my board with the research topic, start the timer
On plan proposal → update the task with the proposed plan as a comment
On plan mode exit → mark the task as completed, stop the timer
This is exactly the kind of integration that hooks were made for, but the plan mode events do not exist.
Additional Context
Claude help me write a lot of the above, just to be transparent.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗