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 ~/.claude pointing to same shared location via symlinks

Steps to Reproduce

  1. As root, install plugins: claude plugin install ralph-loop@claude-plugins-official
  2. Switch to non-root user with ~/.claude symlinked to shared location
  3. Run claude plugin list - plugins show as installed and enabled
  4. Start Claude session, try /ralph-loop
  5. 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
  • $HOME expansion 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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗