[Feature Request] Add Option to Save Incremental Plan Progress

Status Fixed / completed
Maintainer reply None cached
Activity 6 comments · opened Sep 18, 2025 · closed Nov 27, 2025

Description
In plan mode (activated by shift+tab),
claude-code should offer another option to write down the plan, instead of starting coding or continue planning. It's often the case that the agentic loop of "plan -> code -> test" will run out of context quickly.

Unless we have setup an appropriate subagent to execute a plan, this scenario will occur quite frequently, especially with complex tasks and large codebase. Interrupting an agentic loop in the middle when context is running out is not necessarily better either.

An option to write down a plan should be given to the user to incentivize writing down incremental progress of a session. Loading a session from the history by resuming only loads the whole conversation in a session, it doesn't provide a granular recording.

Another option: Writing in memory is probably not suitable either, as we don't always need to load up all the written down plans and progress for each session.

Environment Info

  • Platform: darwin
  • Terminal: ghostty
  • Version: 1.0.117
  • Feedback ID: 475aae6e-f4c3-4a72-a3ba-670e40bf3f3d

Errors

[{"error":"Error: Language not supported while highlighting code, falling back to markdown: \n    at Bz (/$bunfs/root/claude:1655:1192)\n    at <anonymous> (/$bunfs/root/claude:1655:2177)\n    at map (native:1:11)\n    at Bz (/$bunfs/root/claude:1655:2149)\n    at map (native:1:11)\n    at Bz (/$bunfs/root/claude:1655:2054)\n    at map (native:1:11)\n    at S7 (/$bunfs/root/claude:1655:905)\n    at n4W (/$bunfs/root/claude:3304:13729)\n    at aq (/$bunfs/root/claude:47:19415)","timestamp":"2025-09-17T08:41:23.778Z"},{"error":"Error: Language not supported while highlighting code, falling back to markdown: \n    at Bz (/$bunfs/root/claude:1655:1192)\n    at <anonymous> (/$bunfs/root/claude:1655:2177)\n    at map (native:1:11)\n    at Bz (/$bunfs/root/claude:1655:2149)\n    at map (native:1:11)\n    at Bz (/$bunfs/root/claude:1655:2054)\n    at map (native:1:11)\n    at S7 (/$bunfs/root/claude:1655:905)\n    at n4W (/$bunfs/root/claude:3304:13729)\n    at aq (/$bunfs/root/claude:47:19415)","timestamp":"2025-09-17T08:41:24.075Z"},{"error":"Error: Language not supported while highlighting code, falling back to markdown: \n    at Bz (/$bunfs/root/claude:1655:1192)\n    at <anonymous> (/$bunfs/root/claude:1655:2177)\n    at map (native:1:11)\n    at Bz (/$bunfs/root/claude:1655:2149)\n    at map (native:1:11)\n    at Bz (/$bunfs/root/claude:1655:2054)\n    at map (native:1:11)\n    at S7 (/$bunfs/root/claude:1655:905)\n    at bR0 (/$bunfs/root/claude:1803:41539)\n    at aq (/$bunfs/root/claude:47:19415)","timestamp":"2025-09-17T08:43:11.525Z"},{"error":"Error: Failed to fetch version from stable: Error: ECONNREFUSED\n    at TC9 (/$bunfs/root/claude:2875:16304)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-09-17T11:00:01.539Z"},{"error":"Error: Failed to fetch version from stable: Error: ECONNREFUSED\n    at TC9 (/$bunfs/root/claude:2875:16304)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-09-17T11:57:34.924Z"},{"error":"Error: Failed to fetch version from stable: AxiosError: timeout of 30000ms exceeded\n    at TC9 (/$bunfs/root/claude:2875:16304)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-09-18T02:28:47.072Z"},{"error":"Error: EISDIR: illegal operation on a directory, read\n    at readFileSync (unknown)\n    at GdG (/$bunfs/root/claude:3568:9434)\n    at call (/$bunfs/root/claude:1665:981)\n    at MT9 (/$bunfs/root/claude:3292:18664)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-09-18T03:05:16.707Z"}]

View original on GitHub ↗

6 Comments

github-actions[bot] · 1 year ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/6207
  2. https://github.com/anthropics/claude-code/issues/6829
  3. https://github.com/anthropics/claude-code/issues/7708

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

jessearmand · 1 year ago
Found 3 possible duplicate issues: 1. Persistent Plan Storage for Claude Code Workflows #6207 2. [[BUG] Plan gets lost if user doesn't respond within a certain amount of time, has to be recreated #6829](https://github.com/anthropics/claude-code/issues/6829) 3. [[FEATURE] Allow claude to save important context for a session and avoid auto compacting that #7708](https://github.com/anthropics/claude-code/issues/7708)

Each of those issues are slightly different, what I suggest is to consolidate all these different feedback and workflows to something that's more developer friendly, and more automated.

I know that memory can be used, but during planning, that doesn't seem what a developer would think of doing. Memory could only be saved during various checkpoints where Claude is giving a response, and waiting for the user. The agentic loop itself need to recognize where to save a checkpoint

coygeek · 1 year ago

Hey, this is a fantastic feature request, and something I've run into myself. The tension between creating a comprehensive plan and the limits of the context window is a real challenge, especially on large, unfamiliar codebases. Your point about resume not being granular enough and CLAUDE.md not being suitable for temporary plans is spot on.

While we wait for an official feature from the Anthropic team, I've been experimenting with some workarounds using Claude Code's existing extensibility features. Maybe one of these could help you in the meantime?

Potential Workaround using Custom Slash Commands

You could create a custom slash command to quickly save the plan to a file. This is more manual than your suggestion but gives you direct control.

  1. Create a script to save the plan:

First, create a simple shell script in your project, for example, at .claude/scripts/save_plan.sh. Make sure it's executable (chmod +x .claude/scripts/save_plan.sh).

``bash
# .claude/scripts/save_plan.sh
#!/bin/bash
# Saves the provided plan text to a file, overwriting the previous one.
echo "$1" > ./.claude/current_plan.md
echo "✅ Plan saved to ./.claude/current_plan.md"
``

  1. Create the custom slash command:

Now, create the command file at .claude/commands/save-plan.md. This command will execute the script using Claude's Bash tool.

```markdown
---
description: "Saves the current plan to .claude/current_plan.md"
allowed-tools: Bash(*)
argument-hint: [plan text to save]
---
!
./.claude/scripts/save_plan.sh "$ARGUMENTS"
```

  1. How to use it:

When Claude generates a plan you want to save, you can copy the plan text from the terminal and then run:

``
> /save-plan <paste the plan here>
``

This gives you a quick way to checkpoint a plan. To load it back into context later, you could just @-mention the file: Continue with the plan in @.claude/current_plan.md.

More Automated Approach with Hooks

For your idea about making the agentic loop itself "smarter," you might be able to achieve something similar with Hooks. Specifically, the Stop hook runs every time Claude finishes responding and waits for your input.

You could write a script for a Stop hook that:

  1. Receives the path to the current session's transcript file (transcript_path).
  2. Reads the last message from that JSONL file.
  3. If the message content looks like a plan (e.g., it contains certain keywords or formatting), it automatically saves that part of the transcript to a dedicated plan.md file.

This is more complex to set up but gets closer to your idea of automated, incremental checkpointing without manual user intervention.

Anyway, just some ideas from another user. I definitely think your core request for a built-in "save plan progress" feature would be a huge improvement to the plan mode workflow! I'm giving this issue a thumbs up.

jessearmand · 1 year ago

Using the Stop hook event I think is what I'm looking for.

Slash command will only work if I choose "continue planning", which is just a few keystrokes away from me asking Claude to write down a plan.

Then, what I would do next is to add a slash command to load the plans from the given directory

jessearmand · 10 months ago

I think the latest plan mode with Opus 4.5 have addressed this issue, closing.

github-actions[bot] · 10 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.