Windows path conversion bug: CLAUDE_PLUGIN_ROOT incorrectly adds extra \c\ prefix for OMC plugins
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Claude Code 2.1.158 on Windows incorrectly converts plugin paths.
A plugin located at:
C:\Users\gg\.claude\plugins\marketplaces\omc
is attempted to be executed from:
C:\c\Users\gg\.claude\plugins\marketplaces\omc\scripts\run.cjs
Notice the extra \c\ inserted after the drive letter.
Error from Node.js:
Error: Cannot find module 'C:\c\Users\gg\.claude\plugins\marketplaces\omc\scripts\run.cjs'
at Function._resolveFilename (node:internal/modules/cjs/loader:1225:15)
at Function._load (node:internal/modules/cjs/loader:1055:27)
at Function.executeUserEntryPoint [as runMain]
code: 'MODULE_NOT_FOUND'
The file run.cjs exists in the correct directory.
What Should Happen?
Claude Code should normalize /c/Users/... to C:\Users\... without inserting the extra \c\.
Error Messages/Logs
Ran 4 stop hooks (ctrl+o to expand)
⎿ Stop hook error: Failed with non-blocking status code: node:internal/modules/cjs/loader:1228
throw err;
^
Error: Cannot find module 'C:\c\Users\gg\.claude\plugins\marketplaces\omc\scripts\run.cjs'
at Function._resolveFilename (node:internal/modules/cjs/loader:1225:15)
at Function._load (node:internal/modules/cjs/loader:1055:27)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:220:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:170:5)
at node:internal/main/run_main_module:36:49 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Node.js v22.14.0
⎿ Stop hook error: Failed with non-blocking status code: node:internal/modules/cjs/loader:1228
throw err;
^
Error: Cannot find module 'C:\c\Users\gg\.claude\plugins\marketplaces\omc\scripts\run.cjs'
at Function._resolveFilename (node:internal/modules/cjs/loader:1225:15)
at Function._load (node:internal/modules/cjs/loader:1055:27)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:220:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:170:5)
at node:internal/main/run_main_module:36:49 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Node.js v22.14.0
⎿ Stop hook error: Failed with non-blocking status code: node:internal/modules/cjs/loader:1228
throw err;
^
Error: Cannot find module 'C:\c\Users\gg\.claude\plugins\marketplaces\omc\scripts\run.cjs'
at Function._resolveFilename (node:internal/modules/cjs/loader:1225:15)
at Function._load (node:internal/modules/cjs/loader:1055:27)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:220:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:170:5)
at node:internal/main/run_main_module:36:49 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Node.js v22.14.0
Steps to Reproduce
1.Install OMC through the plugin marketplace.
2.Verify plugin files exist under C:\Users\<user>\.claude\plugins\marketplaces\omc.
3.Run any command that triggers the plugin.
4.Node.js fails to load run.cjs because Claude Code attempts to execute C:\c\Users\....
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.158
Platform
Other
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
Workaround: creating a symlink C:\c\Users → C:\Users allows the plugin to run.
C:\Users\gg\.claude\plugins\marketplaces\omc