claude plugin install succeeds but fails to persist plugin to installed_plugins.json for local directory marketplaces
Description
When installing a plugin from a local directory marketplace, the claude plugin install command reports success but fails to write the plugin entry to ~/.claude/plugins/installed_plugins.json. This causes the plugin's slash commands to not load in new sessions.
Environment
- Claude Code version: 2.0.54
- OS: Linux (Arch Linux 6.17.8)
- Shell: Bash
Steps to Reproduce
- Create a local marketplace with a plugin containing slash commands:
````
my-marketplace/
├── .claude-plugin/
│ └── marketplace.json
└── plugins/
└── my-plugin/
├── .claude-plugin/
│ └── plugin.json
└── commands/
└── my-command.md
- Add the marketplace as a local directory:
``bash``
claude plugin marketplace add /path/to/my-marketplace
- Install a plugin from the marketplace:
``bash``
claude plugin install my-plugin
- Observe: Command reports
✔ Successfully installed plugin: my-plugin@my-marketplace
- Check
~/.claude/plugins/installed_plugins.json- the plugin entry is NOT added
- Start a new Claude session - the plugin's slash commands are not available
Expected Behavior
The plugin entry should be written to installed_plugins.json and slash commands should load in new sessions.
Actual Behavior
- Install command reports success
- Plugin entry is NOT written to
installed_plugins.json - Slash commands don't load in new sessions
claude plugin uninstallsays "Plugin not found in installed plugins"
Additional Context
claude plugin validate <plugin-path>passes validationclaude plugin marketplace updatesucceeds- Plugins installed from the same marketplace previously (before recent updates) still work
- GitHub-sourced marketplace plugins install correctly
- The marketplace is correctly configured with
source: "directory"inknown_marketplaces.json
Workaround
Manually add the plugin entry to ~/.claude/plugins/installed_plugins.json:
{
"my-plugin@my-marketplace": {
"version": "1.0.0",
"installedAt": "2025-11-26T12:00:00.000Z",
"lastUpdated": "2025-11-26T12:00:00.000Z",
"installPath": "/path/to/my-marketplace/plugins/my-plugin",
"gitCommitSha": "<current-commit>",
"isLocal": true
}
}This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗