claude-code - 💡(How to fix) Fix [Feature Request] Document Claude Code plugin runtime constraints across CLI, desktop, web, and IDE surfaces

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

[{"error":"AxiosError: Request failed with status code 403\n at Cn (/$bunfs/root/src/entrypoints/cli.js:115:1194)\n at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:120:12716)\n at emit (node:events:92:22)\n at endReadableNT (internal:streams/readable:865:50)\n at processTicksAndRejections (native:7:39)\n at request (/$bunfs/root/src/entrypoints/cli.js:122:2467)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-05-08T08:33:56.778Z"},{"error":"RangeError: path should be a path.relative()d string, but got ".."\n at QY1 (/$bunfs/root/src/entrypoints/cli.js:445:15084)\n at z6H (/$bunfs/root/src/entrypoints/cli.js:445:15259)\n at test (/$bunfs/root/src/entrypoints/cli.js:445:15801)\n at af (/$bunfs/root/src/entrypoints/cli.js:8723:8631)\n at U4 (/$bunfs/root/src/entrypoints/cli.js:831:25706)\n at g4_ (/$bunfs/root/src/entrypoints/cli.js:831:28670)\n at z85 (/$bunfs/root/src/entrypoints/cli.js:2660:2480)\n at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:2660:2977)\n at D85 (/$bunfs/root/src/entrypoints/cli.js:2660:4357)\n at at_ (/$bunfs/root/src/entrypoints/cli.js:2660:6434)","timestamp":"2026-05-08T09:53:08.571Z"},{"error":"Error: Request was aborted.\n at makeRequest (/$bunfs/root/src/entrypoints/cli.js:50:3448)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-05-09T04:18:59.055Z"}]

Code Example

[{"error":"AxiosError: Request failed with status code 403\n    at Cn (/$bunfs/root/src/entrypoints/cli.js:115:1194)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:120:12716)\n    at emit (node:events:92:22)\n    at endReadableNT (internal:streams/readable:865:50)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/src/entrypoints/cli.js:122:2467)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-05-08T08:33:56.778Z"},{"error":"RangeError: path should be a `path.relative()`d string, but got \"..\"\n    at QY1 (/$bunfs/root/src/entrypoints/cli.js:445:15084)\n    at z6H (/$bunfs/root/src/entrypoints/cli.js:445:15259)\n    at _test (/$bunfs/root/src/entrypoints/cli.js:445:15801)\n    at af (/$bunfs/root/src/entrypoints/cli.js:8723:8631)\n    at U4_ (/$bunfs/root/src/entrypoints/cli.js:831:25706)\n    at g4_ (/$bunfs/root/src/entrypoints/cli.js:831:28670)\n    at z85 (/$bunfs/root/src/entrypoints/cli.js:2660:2480)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:2660:2977)\n    at D85 (/$bunfs/root/src/entrypoints/cli.js:2660:4357)\n    at at_ (/$bunfs/root/src/entrypoints/cli.js:2660:6434)","timestamp":"2026-05-08T09:53:08.571Z"},{"error":"Error: Request was aborted.\n    at makeRequest (/$bunfs/root/src/entrypoints/cli.js:50:3448)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-05-09T04:18:59.055Z"}]
RAW_BUFFERClick to expand / collapse

Bug Description Doc gap: plugin runtime constraints by Claude Code surface


Building a Claude Code plugin (Mycelium — product-thinking framework, ~50 skills, hooks on PreToolUse/PostToolUse/Stop/SessionStart/PostToolUseFailure, heavy Edit/Write to user project filesystem). The plugin install flow is documented well, but I can't tell from the public docs whether the runtime behaves identically across the four Claude Code surfaces — terminal CLI, desktop app (Mac/Windows), web app (claude.ai/code), IDE extensions (VS Code, JetBrains).

Three specific gaps:

  1. Plugin cache location by surface. Docs mention ~/.claude/plugins/cache/... for the terminal CLI. Where does the cache live on desktop? In the web app (browser-side or server-side)? Inside an IDE extension? ${CLAUDE_PLUGIN_ROOT} resolution presumably handles this, but I'd like to confirm.
  2. Filesystem access in the web app. Plugins that write to the user's project (canvas state, decision logs, configuration) need Edit/Write parity. Does the web app have the same filesystem permissions as the terminal CLI, or are there constraints I should design around (e.g., sandboxed scratch space, no project mutation)?
  3. Hook firing parity. Do PreToolUse, PostToolUse, PostToolUseFailure, SessionStart, Stop fire identically in the desktop app and IDE extensions? My plugin's reflexion loop fails-open if hooks don't fire, but it'd be good to know up front whether to recommend a specific surface for full functionality.

Telling a user "install this plugin" is much weaker if I have to caveat "experience varies by surface, please test in yours." Either explicit per-surface documentation, or a single line stating "plugin behavior is identical across all surfaces" (if that's the case), would let plugin authors give users a clean recommendation.

— Håvard Bartnes, github.com/haabe/mycelium

Environment Info

  • Platform: darwin
  • Terminal: iTerm.app
  • Version: 2.1.123
  • Feedback ID: b1589519-5b0b-472b-bf97-f6315fb33454

Errors

[{"error":"AxiosError: Request failed with status code 403\n    at Cn (/$bunfs/root/src/entrypoints/cli.js:115:1194)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:120:12716)\n    at emit (node:events:92:22)\n    at endReadableNT (internal:streams/readable:865:50)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/src/entrypoints/cli.js:122:2467)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-05-08T08:33:56.778Z"},{"error":"RangeError: path should be a `path.relative()`d string, but got \"..\"\n    at QY1 (/$bunfs/root/src/entrypoints/cli.js:445:15084)\n    at z6H (/$bunfs/root/src/entrypoints/cli.js:445:15259)\n    at _test (/$bunfs/root/src/entrypoints/cli.js:445:15801)\n    at af (/$bunfs/root/src/entrypoints/cli.js:8723:8631)\n    at U4_ (/$bunfs/root/src/entrypoints/cli.js:831:25706)\n    at g4_ (/$bunfs/root/src/entrypoints/cli.js:831:28670)\n    at z85 (/$bunfs/root/src/entrypoints/cli.js:2660:2480)\n    at <anonymous> (/$bunfs/root/src/entrypoints/cli.js:2660:2977)\n    at D85 (/$bunfs/root/src/entrypoints/cli.js:2660:4357)\n    at at_ (/$bunfs/root/src/entrypoints/cli.js:2660:6434)","timestamp":"2026-05-08T09:53:08.571Z"},{"error":"Error: Request was aborted.\n    at makeRequest (/$bunfs/root/src/entrypoints/cli.js:50:3448)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-05-09T04:18:59.055Z"}]

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING