[FEATURE] ExitPlanMode should include the plan file in its input (SDK/stream-json)

Resolved 💬 4 comments Opened Dec 17, 2025 by josevalim Closed Feb 27, 2026

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

Today the SDK (and stream-json) does not include the plan mode file on the tool call input, here is a minimum reproducer:

$ claude --output-format "stream-json" --permission-mode plan -p "create a simple plan with a paragraph of lorem ipsum" --verbose
{"type":"system","subtype":"init","cwd":"/Users/jose/Work/ts","session_id":"fd7a759e-93a8-499d-807e-3778664ab73e","tools":["Task","TaskOutput","Bash","Glob","Grep","ExitPlanMode","Read","Edit","Write","NotebookEdit","WebFetch","TodoWrite","WebSearch","KillShell","Skill","SlashCommand","EnterPlanMode"],"mcp_servers":[],"model":"claude-sonnet-4-5-20250929","permissionMode":"plan","slash_commands":["compact","context","cost","init","pr-comments","release-notes","review","security-review"],"apiKeySource":"none","claude_code_version":"2.0.70","output_style":"default","agents":["general-purpose","statusline-setup","Explore","Plan"],"skills":[],"plugins":[],"uuid":"f1c4afa7-a0b4-4964-b40a-3f9e37ea0600"}
{"type":"assistant","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_01PV54kvryqizTzjaFcusdVL","type":"message","role":"assistant","content":[{"type":"text","text":"I'll create a simple plan with a paragraph of lorem ipsum as requested."}],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":3,"cache_creation_input_tokens":4663,"cache_read_input_tokens":13976,"cache_creation":{"ephemeral_5m_input_tokens":4663,"ephemeral_1h_input_tokens":0},"output_tokens":7,"service_tier":"standard"},"context_management":null},"parent_tool_use_id":null,"session_id":"fd7a759e-93a8-499d-807e-3778664ab73e","uuid":"63499e70-d22d-4791-bc58-6c52e7999152"}
{"type":"assistant","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_01PV54kvryqizTzjaFcusdVL","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01JYvX3Dy5i4coXaB7kHy6a1","name":"Write","input":{"file_path":"/Users/jose/.claude/plans/fuzzy-forging-simon.md","content":"# Simple Plan\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n"}}],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":3,"cache_creation_input_tokens":4663,"cache_read_input_tokens":13976,"cache_creation":{"ephemeral_5m_input_tokens":4663,"ephemeral_1h_input_tokens":0},"output_tokens":242,"service_tier":"standard"},"context_management":null},"parent_tool_use_id":null,"session_id":"fd7a759e-93a8-499d-807e-3778664ab73e","uuid":"3bb6e24b-0da4-4b63-ae05-659583c222ec"}
{"type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01JYvX3Dy5i4coXaB7kHy6a1","type":"tool_result","content":"File created successfully at: /Users/jose/.claude/plans/fuzzy-forging-simon.md"}]},"parent_tool_use_id":null,"session_id":"fd7a759e-93a8-499d-807e-3778664ab73e","uuid":"8547a047-95db-4eaf-bcbc-843b84caea8a","tool_use_result":{"type":"create","filePath":"/Users/jose/.claude/plans/fuzzy-forging-simon.md","content":"# Simple Plan\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n","structuredPatch":[],"originalFile":null}}
{"type":"assistant","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_01PaPzQNRL1RWb3KutLi53zh","type":"message","role":"assistant","content":[{"type":"text","text":"I've created a simple plan file with a paragraph of lorem ipsum text. The plan is now ready for your review."}],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":6,"cache_creation_input_tokens":274,"cache_read_input_tokens":18639,"cache_creation":{"ephemeral_5m_input_tokens":274,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"},"context_management":null},"parent_tool_use_id":null,"session_id":"fd7a759e-93a8-499d-807e-3778664ab73e","uuid":"479f61f4-8ad1-4310-b0f1-6e679315c8ef"}
{"type":"assistant","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_01PaPzQNRL1RWb3KutLi53zh","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01636xD1wSH5WKqnVWvE1hGs","name":"ExitPlanMode","input":{"launchSwarm":false,"plan":"# Simple Plan\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n"}}],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":6,"cache_creation_input_tokens":274,"cache_read_input_tokens":18639,"cache_creation":{"ephemeral_5m_input_tokens":274,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"},"context_management":null},"parent_tool_use_id":null,"session_id":"fd7a759e-93a8-499d-807e-3778664ab73e","uuid":"bbd3d643-deff-416c-ba80-55c206c86b83"}
{"type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit plan mode?","is_error":true,"tool_use_id":"toolu_01636xD1wSH5WKqnVWvE1hGs"}]},"parent_tool_use_id":null,"session_id":"fd7a759e-93a8-499d-807e-3778664ab73e","uuid":"6dc98783-d018-468c-8d22-13d0299761c4","tool_use_result":"Error: Exit plan mode?"}
{"type":"result","subtype":"success","is_error":false,"duration_ms":11330,"duration_api_ms":20755,"num_turns":3,"result":"","session_id":"fd7a759e-93a8-499d-807e-3778664ab73e","total_cost_usd":0.04976315,"usage":{"input_tokens":16,"cache_creation_input_tokens":5043,"cache_read_input_tokens":51528,"output_tokens":327,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":5043}},"modelUsage":{"claude-haiku-4-5-20251001":{"inputTokens":1359,"outputTokens":142,"cacheReadInputTokens":0,"cacheCreationInputTokens":0,"webSearchRequests":0,"costUSD":0.002069,"contextWindow":200000},"claude-sonnet-4-5-20250929":{"inputTokens":19,"outputTokens":513,"cacheReadInputTokens":51528,"cacheCreationInputTokens":6529,"webSearchRequests":0,"costUSD":0.04769415,"contextWindow":200000}},"permission_denials":[{"tool_name":"ExitPlanMode","tool_use_id":"toolu_01636xD1wSH5WKqnVWvE1hGs","tool_input":{"launchSwarm":false,"plan":"# Simple Plan\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n"}}],"uuid":"5863d88b-0a81-4046-ad26-be1566008501"}

As you can see, the tool input includes the plan, but not the file it is located at.

Proposed Solution

Include a "filePath" or similar as part of the tool call input. Note the "filePath" is included on a future tool call update, but only after the plan is approved.

Alternative Solutions

Today, we have to traverse previous edit/write calls to see if there is any .claude/plans/*.md involved, but that is not reliable if Claude ever decides to change how plan files are created/stored.

Priority

High - Significant impact on productivity

Feature Category

Developer tools/SDK

Use Case Example

This would be very useful for SDKs, as we would be able to automatically open up the file for editing.

Additional Context

_No response_

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗