Feature Request: Configurable Plan File Storage Path & Plan Templates
Problem Statement
Currently, Claude Code stores plan files in ~/.claude/plans/ (user-level directory). This makes it difficult to:
- Version control plans alongside project code
- Share plans with team members via git
- Reference past plans for specific projects
- Standardize plan formats across a team
Proposed Solution
Option 1: Configurable Plan Path
Add a setting in .claude/settings.json to specify plan storage location:
{
"planPath": ".claude/plans/"
}
Option 2: Auto-detect Project Plans Directory
Automatically use .claude/plans/ if it exists in the project root, falling back to ~/.claude/plans/ otherwise (similar to how .claude/commands/ works for project-scoped commands).
Additional Feature: Plan Templates
Support a template file (.claude/plan-template.md) that Claude uses as a starting structure when creating new plans. This would help teams standardize plan documentation formats.
Use Cases
- Teams wanting to track planning decisions in version control
- Projects requiring consistent plan documentation formats
- Developers working on multiple projects who want project-specific plan history
- Code review workflows where plans need to be visible to reviewers
Current Workaround
Currently requires manual copying of plan files from ~/.claude/plans/ to the project directory after plan mode exits.
Consistency with Existing Features
This would be consistent with how other Claude Code features work:
- Commands:
.claude/commands/(project) vs~/.claude/commands/(user) - Skills:
.claude/skills/(project-scoped) - Settings:
.claude/settings.json(project) vs~/.claude/settings.json(user)
Plans should follow the same pattern for consistency.
---
Thank you for considering this enhancement!
14 Comments
To add another use case:
At current API limits: it is nice to plan work in one session and execute on it in another.
This would be super useful. I’m doing my best to keep each Claude Code project atomic, but it keeps putting plan files in ~/.claude, which means they drift out of sync with the project’s instructions. I try to use a PLAN.md in the repo root, but I spend way too much time fighting Claude to keep plan items there instead of in ~/.claude.
I’m also switching between multiple machines (work and personal), which makes the sync problem even worse.
Workaround for loading existing plans into new sessions:
I found a workflow that works:
plan modeNote: This creates a duplicate file in ~/.claude/plans/ since Claude Code always generates a new random filename per session.
However, the core issue remains: I was thinking that /plan should accept an optional path argument to load existing plans without duplication. Also, as the ticket describes, if we can configure a directory and load plans, that would be ideal.
Something like:
<path>→ load specified plan as session plan+1 for this feature! I'd like to add a specific pain point I'm experiencing:
The Confusion/Duplicate Files Problem
When working on multi-phase features, I ask Claude to create phase-specific plan documents during plan mode. This causes:
~/.claude/plans/(plan mode default).claude/plans/My Use Case: Multi-Phase Planning
For complex features (e.g., RevenueCat subscriptions), I need hierarchical plans:
subscription-system-main.mdsubscription-phase-1-database.md,subscription-phase-2-revenuecat.md, etc.These plans must:
Support for Option 1
I strongly support Option 1 (configurable
plansDirin.claude/settings.json):.claude/skills/patternThe current workaround wastes valuable context tokens on file management instead of development work.
I just started working with Claude Code since 3 days and this is what I currently miss the most in order to separate planning from implementation while being able to commit a plan/spec for other users to see and comment on.
I started to use the plan mode more recently, and it's very annoying that the plans are not project-scoped. It would be nice if it was implemented properly.
I love this enhancement submission for relocating the plans folder into the repo. Though this feature request is still open, support for a planDirectory field has recently been added to settings. (https://code.claude.com/docs/en/settings#available-settings)
In order to support capturing additional information about the plan, I use a skill to put metadata in the plan itself, called plan_writer. I have instructions in CLAUDE.md to utilize this skill. I've attached the plan_writer skill, the instructions added to CLAUDE.md and the plan I used for migrating existing plans.
Note: I migrated all of the plans from my ~/.claude/plans folder but you could extend the migration plan to let you choose which ones to migrate.
Plan Writer Skill goes in skills/plan-writer/SKILL.md
CLAUDE-plan-writing-snippet.md
plan-writer-skill-implementation-and-migration.md
+1, I need
.claude/plans/I suggest we close this ticket because, for example, I am currently using the latest version (
v2.1.62), and everything is working as intended. I have the following settings in Claude Code Settings for the project ("plansDirectory": "./.claude/plans"in.claude/settings.json), and the plans are being placed within the project.I believe the bug no longer exists.
+1 on project-local storage and templates. The missing piece beyond path config is that plans also need identity and status tracking — right now a new planning cycle silently overwrites the old plan with no archive, no reference, nothing. See #29445 for a proposal that covers storage, naming, lifecycle, and cross-session chaining as a coherent unit.
Real-world use case: Plan files as persistent lifecycle documents
We run a monorepo with 10+ applications and use plan files as the primary lifecycle document for every work cycle — not ephemeral scratch. Our plan files track:
The hardcoded
~/.claude/plans/path means these documents aren't version-controlled alongside the code they describe. We built a PostToolUse hook bridge that auto-copies native plan files to a git-trackedplans/{branch-slug}/plan.mddirectory, but this is a workaround for what should be a first-class feature.What we'd use: A
planPathsetting in.claude/settings.json(Option 1 in this issue) pointing to a project-relative directory. The auto-detect pattern (Option 2) would also work — it's consistent with how.claude/commands/already behaves.The consistency argument is strong: Commands, skills, and settings all support project-scoped paths. Plans are the obvious missing piece.
Related: #21131 (overwrite-on-pivot destroys plan history), #30668 (boolean flag for project-relative storage), #30438 (first-class plan system)
It seems like you’re describing something that’s already been implemented. Please read my message above.
Saving plans in a local project directory already works. I’ve personally been using it for at least a week. And that option is already available.
Yeah, this is implemented: https://code.claude.com/docs/en/settings
| Setting | Description | Example |
|---|---|---|
|
plansDirectory| Customize where plan files are stored. Path is relative to project root. Default:~/.claude/plans|"./plans"|Which I didn't realize until I went through the whole cycle of wanting this for weeks, finally mustering the energy to spend 30sec searching for it, and arriving here.
Until configurable plan paths and templates are supported:
Workaround 1 — Use a skill as a plan template:
Invoke with
/plan-templateto get a structured plan.Workaround 2 — Custom plan location via CLAUDE.md:
Workaround 3 — PostToolUse hook to relocate plans: