Skills not loaded when using CLAUDE_CONFIG_DIR environment variable

Resolved 💬 3 comments Opened Jan 26, 2026 by sstraus Closed Jan 30, 2026

Description

When using the CLAUDE_CONFIG_DIR environment variable to specify a custom configuration directory, plugin skills are not loaded. Commands from the same plugin work correctly.

This breaks multi-account workflows where users need separate config directories for different accounts.

Steps to Reproduce

  1. Create a plugin with skills in skills/*/SKILL.md
  2. Install plugin in $CLAUDE_CONFIG_DIR/plugins/ (via symlink or copy)
  3. Register plugin in installed_plugins.json:

``json
"my-plugin@local": [{
"scope": "user",
"installPath": "/path/to/plugins/my-plugin",
"version": "1.0.0"
}]
``

  1. Enable plugin in settings.json:

``json
"enabledPlugins": {
"my-plugin@local": true
}
``

  1. Launch Claude Code: CLAUDE_CONFIG_DIR=/custom/config claude
  2. Try to invoke a skill from the plugin

Expected Behavior

Skills should load and be invocable, identical to using the default ~/.claude/ config.

Actual Behavior

  • Skills do not appear in / menu
  • Skills cannot be invoked
  • Commands from the same plugin DO work correctly

Configurations Tested (all failed for skills)

| Configuration | Skills | Commands |
|--------------|--------|----------|
| Symlink in plugins dir | ❌ | ✅ |
| Real copy (no symlink) | ❌ | ✅ |
| With --plugin-dir flag | ❌ | ✅ |
| Without --plugin-dir flag | ❌ | ✅ |
| Various installPath values | ❌ | ✅ |

Environment

  • OS: macOS Darwin 25.2.0
  • Date: 2026-01-26

Impact

This completely breaks the ability to use skills with multiple Claude Code accounts/configurations. The only workaround is to create command wrappers for every skill, which defeats the purpose of the skill system.

Workaround

Create command wrappers in commands/ that include the skill content. This is not ideal as it requires maintaining duplicate files.

View original on GitHub ↗

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