Plugin paths hardcoded to /root, breaks non-root users
Resolved 💬 3 comments Opened Jan 24, 2026 by Rolucious Closed Jan 29, 2026
Bug Description
When installing plugins as root, paths in known_marketplaces.json and installed_plugins.json are hardcoded to /root/.claude/... instead of using relative paths or $HOME. This breaks plugin access for non-root users even with proper symlinks set up.
Environment
- Claude Code version: 2.1.19
- OS: Unraid Linux 6.12.x
- Setup: Root installs plugins, non-root user (claude) runs Claude Code
- Both users have
~/.claudepointing to same shared location via symlinks
Steps to Reproduce
- As root, install plugins:
claude plugin install ralph-loop@claude-plugins-official - Switch to non-root user with
~/.claudesymlinked to shared location - Run
claude plugin list- plugins show as installed and enabled - Start Claude session, try
/ralph-loop - Result:
Unknown skill: ralph-loop
Root Cause
known_marketplaces.json contains:
{
"installLocation": "/root/.claude/plugins/marketplaces/claude-plugins-official"
}
Non-root user cannot access /root/, so plugin resolution fails silently.
Workaround
Manually edit known_marketplaces.json and installed_plugins.json to replace /root/.claude/ with absolute shared path, then reinstall plugins with --scope user.
Expected Behavior
Plugin configs should use:
- Relative paths, or
$HOMEexpansion at runtime, or- Store user-specific paths per-user rather than sharing hardcoded root paths
Impact
Makes multi-user plugin sharing impossible without manual config editing.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗