[FEATURE] Persistent in-place plugin loading (no cache)
Status Fixed / completed
Maintainer reply ✓ Yes — bcherny
Workaround ✓ Mentioned in description ↑
Activity 3 comments · opened Jan 12, 2026 · closed Aug 17, 2026
💡 Likely answer: A maintainer (bcherny, collaborator)
responded on this thread — see the highlighted reply below.
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 developing plugins with feedback loops that modify their own source code (e.g., self-improving plugins, learning systems), the current caching behavior breaks the workflow:
- Plugins installed via
claude plugin installare copied to cache (~/.claude/plugins/cache/) - Any edits made by the plugin go to the cached copy, not the original source
- Changes are lost on reinstall/update
The --plugin-dir flag solves this by loading plugins in-place without caching, but it's session-only and must be specified every time.
Current Workarounds:
- Use
--plugin-direvery session (tedious, requires alias/wrapper) - Manually symlink cache directories to source (fragile, breaks on update)
- Store mutable state outside the plugin (requires restructuring)
Proposed Solution
Add a persistent way to load plugins in-place.
Option A: pluginDirs in settings.json
{
"pluginDirs": [
"/path/to/my-plugins"
]
}
Alternative Solutions
Option B: Per-plugin cache: false option
{
"plugins": {
"my-plugin@my-marketplace": {
"cache": false
}
}
}
Option C: --plugin-dir equivalent in settings
{
"defaultPluginDirs": [
"/path/to/dev-plugins"
]
}
Priority
High - Significant impact on productivity
Feature Category
Plugin system
Use Case Example
- Self-improving plugins: Sessions edit plugin source for continuous improvement
- Plugin development: Rapid iteration without reinstalling
- Shared team plugins: Single source of truth on network drive
- Local marketplaces: Development workflows where source = runtime
Additional Context
The --plugin-dir flag already implements the desired behavior—this request is simply to make it persistent via configuration.
3 Comments
Adding a JSON config value for
--plugin-dirwould also solve my main problem; that I cannot use my own plugin from source from the VSCode extension. I am forced to use the CLI UI.Should I just leave this additional point here, or should I create a new issue.
Hi
Any news regarding this feature request?
It's very important one
Persistent in-place plugin loading is available now, two ways:
.claude-plugin/plugin.json(scaffold withclaude plugin init my-plugin). It loads every session asmy-plugin@skills-dir, in place, no cache copy — edits the plugin makes to itself stick. (v2.1.157)commandsource with"mode": "link"; the printed directory is used in place instead of copied. (v2.1.229)Changelog: https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
Docs: https://code.claude.com/docs/en/plugins-reference#skills-directory-plugins
🤖 Generated with Claude Code