Plugins issues on Linux
Issues the maintainers labelled both platform:linux and area:plugins.
159 issues · 20 open · 139 resolved (87%) · first seen Oct 17, 2025
Is this getting better or worse?
This class of problem is converging. 43 new reports in the last 90 days vs 109 in the 90 before — -61%. The open backlog peaked at 40 in 2026-04 and sits at 20 today.
Derived by counting each matching issue from its creation date until it closed. First-party
computation over the anthropics/claude-code tracker — the trend is not published
anywhere upstream.
Which builds report this
106 of these reports name the Claude Code build they were running, spanning 67 releases. Heaviest reporters:
- Claude Code v2.1.81
- Claude Code v2.1.119
- Claude Code v2.1.83
- Claude Code v2.1.80
- Claude Code v2.1.228
- Claude Code v2.1.143
- Claude Code v2.1.126
- Claude Code v2.1.86
Report volume, not a defect count: an issue can mention a build without that build having caused the failure. Versions come from the version string in the bug-report template, matched against real published tags.
Do these get fixed?
Median time to close is 30 days across 139 closures. Of the 139 closures with a recorded reason, 29% were closed as completed and 99 as not-planned or duplicate. The most recent completed fix landed in 2026-08.
Workarounds reported by the community
66 of these issues post a workaround someone says worked. The highest-engagement ones:
- [BUG] Adding marketplace with custom SSH git url is not allowed
- …ome reports suggest it does), Option A is the most reliable workaround because it avoids entirely while still using the correct port under the hood.
Found in the thread of #9740 · still open - [BUG] Plugin paths hardcoded with absolute paths fail across environments
- …, the plugins cannot be loaded within the Docker container. As a workaround, I created a symlink to the host's home directory inside the container. However, when I add a plugin within the Docker container, it doesn't wor…
Found in the description of #31388 · still open - Plugin manager doesn't preserve execute permissions on shell scripts
- …ty scripts referenced by plugins - - Session start handlers Workaround Manually fix permissions after plugin updates: Impact - Hooks fail silently or with errors on every session - Users must manually fix permissions aft…
Found in the description of #38901 · resolved - Ralph Loop plugin: stop-hook.sh missing execute permission on Linux
- …marketplace plugin ( ), not just third-party marketplaces. Workaround Expected Fix The plugin should either: 1. Ship files with the execute bit set in the repository ( ) 2. Or have the plugin installer set on hook scrip…
Found in the description of #38686 · resolved - [BUG] Discord plugin shows connected under --channels but does not receive gateway messages on Linux
- …channel cache becoming stale, not an access config problem. Workaround : reconnect from the Claude Code REPL restores functionality immediately. Suggested fix : - Force-fetch the channel (bypass cache) when is falsy: - O…
Found in the thread of #36837 · resolved
Excerpts are quoted from the linked issue so you can judge relevance before opening it. Threads that only ask for a workaround, or report that there is none, are excluded. These are community suggestions, not official guidance from Anthropic — read the full thread before applying one.
Matching issues 1–100
Ranked by community engagement (reactions weighted over comments).
- [Bug] Skill plugin scripts fail on first execution with relative path resolution
- [BUG] Adding marketplace with custom SSH git url is not allowed
- [BUG] Plugin paths hardcoded with absolute paths fail across environments
- [BUG] Enterprise-managed marketplaces in project enabledPlugins are orphaned on first run; only install after a restart
- [BUG] Plugin symlinks not dereferenced when copying to cache
- /reload-plugins doesn't rebuild slash-command index
- Use Linux system keychain (libsecret) for sensitive plugin credentials
- Plugin manager doesn't preserve execute permissions on shell scripts
- Ralph Loop plugin: stop-hook.sh missing execute permission on Linux
- [BUG] Discord plugin shows connected under --channels but does not receive gateway messages on Linux
- Telegram plugin: zombie bun processes consume 100% CPU after session close
- [BUG] Plugin-namespaced agent definitions not injected for teammates (works for subagents and .claude/agents/)
- pyright-lsp plugin: `venvPath`/`venv` in `[tool.pyright]` not honored, producing `reportMissingImports` false positives
- [BUG] LSP client does not respond to client/registerCapability, blocking servers that use dynamic registration
- [BUG] Marketplace update fires unconditional `ssh -T git@github.com` probe despite CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1
- [Bug] Plugin paths stored as absolute paths break cross-environment usage (devcontainers, multi-user setups)
- Telegram channel plugin MCP server not spawned with --channels in v2.1.101
- headersHelper does not expand ${CLAUDE_PLUGIN_ROOT} or set it as env var
- Channels feature silently disabled by tengu_harbor flag — breaks Telegram plugin for Max subscribers
- [BUG] skills and plugins share the same /plugin install surface
- telegram plugin: infinite CPU loop on EPIPE (broken pipe causes uncaughtException storm)
- plugin marketplace update fetches new version but doesn't update installed_plugins.json
- Settings-driven plugin auto-install (enabledPlugins) writes installed_plugins.json without populating plugins/cache/
- LSP plugin installation ignores CLAUDE_CONFIG_DIR, uses hardcoded ~/.claude/
- [BUG] Telegram plugin's MCP server hijacked by other Claude Code sessions, ignoring `--channels`
- [BUG] Development channel allowlist is ignored for local installed plugin channels
- [BUG] Hooks from non-enabled marketplace plugins still fire during SessionStart
- Plugin deployment strips execute bit from hook shell scripts
- Plugin cache strips execute permission from hook scripts
- Channels plugin spawns but notifications silently dropped - tengu_harbor flag blocking (VPS + native binary)
- [BUG] Claude defaults to `.claude` despite having set `CLAUDE_CONFIG_DIR`
- [Bug] Skill listing context budget exceeded with truncated descriptions
- Skill tool feedback loop: getPromptForCommand body re-injected as isMeta after every model-invoked Skill call
- Channels (Telegram) silently disabled by tengu_harbor feature flag — paying Max subscriber locked out
- Marketplace schema validation: 10 invalid entries in claude-plugins-official reject entire marketplace
- [BUG] --channels ignored after v2.1.195 update (plugin:telegram@claude-plugins-official)
- [Bug] Security-guidance plugin bypasses subscription billing and uses expensive model without warning
- [BUG] claude process leaks to 74 GB virtual memory, causing full system OOM freeze
- [BUG] /plugin update never detects new versions for npm-sourced plugins — lockfile not refreshed
- Channel notification handler stops surfacing inbound messages after ~2-3h (Docker/Linux)
- Telegram plugin: zombie bun processes cause 409 Conflict — process.ppid cached in bun runtime
- Plugin marketplace directory deleted during failed auto-update, breaking all plugins from that marketplace
- Telegram channel plugin: inbound messages not delivered to conversation (outbound works)
- [BUG] Hook runner fails with "Permission denied" when plugin shell scripts lack execute bit
- `--dangerously-skip-permissions` does not bypass plugin file edit confirmation prompt
- Channels research preview: org shows "not currently available" despite admin toggle enabled
- [Bug] Skills with same name from different sources not properly namespaced in slash commands
- Slack MCP plugin OAuth fails with "Please specify client_id" despite client_id being sent correctly
- Subagent tools field does not support MCP wildcards or server-prefix shortcuts (re-opens #17928)
- Plugin configuration dialog exits when input contains the letter 'n'
- Session startup context overhead consumes ~20% of context window before first user message
- Plugin update loses executable permission on .sh hook files
- ralph-loop plugin: stop-hook.sh Permission denied — /bin/sh is dash on Ubuntu
- Telegram channel plugin: inbound notifications/claude/channel ignored by Claude Code
- Telegram channel plugin: --channels flag stalls SSH terminal session
- Telegram plugin: MCP connection drops after first inbound message
- [Feature Request] Remove unsolicited plugin installation suggestions from status bar
- claude plugin update <name> fails with "Plugin not found" for bare plugin names — only name@marketplace works (regression, ~Aug 5)
- [BUG] FleetView: marketplace plugin agents (plugin:agent) fail to load
- Long-running `--continue` channels sessions degrade into reply-tool omission (responses stop reaching the channel)
- /mcp reconnect after config-hash-stale spawns literal unexpanded ${CLAUDE_PLUGIN_ROOT} → -32000
- [BUG] /plugin list returns empty output for plugins installed from third-party marketplace
- claude -p in SDK mode auto-spawns Discord plugin when DISCORD_BOT_TOKEN present (phantom listener)
- [BUG] pluginRoot in marketplace is not respected when installing plugin
- [BUG] Project-scope `enabledPlugins` is silently ignored when Claude Code is launched from a subdirectory
- Plugin skills loaded twice: from marketplace clone and installed cache
- [Bug] Organization marketplace not appearing in plugin list after admin console deployment
- claude plugin list shows all project-scoped installs globally, not just current project
- --channels flag prints "Listening for channel messages from …" but does not spawn the channel plugin process (v2.1.126)
- PostToolUse prompt hooks fail on Vertex AI backend with 'output_config: Extra inputs are not permitted'
- Telegram channel plugin: bun server.ts processes consume ~80% CPU when idle
- [BUG] pyright-lsp plugin changes cwd, breaking Kitty new-tab
- Plugin marketplace install strips execute permissions from .sh files
- [BUG] Learning output style plugin lose execute permission on reload
- Telegram plugin: inbound channel notifications not delivered to session
- Telegram plugin: notifications/claude/channel not delivered to client (node/npx tsx runtime)
- [BUG] MCP channel notifications not delivered to session (Discord/Telegram plugins)
- [BUG] Systemic inconsistency: git-subdir source type supported by runtime and used in official marketplace, but rejected by schema validator
- [BUG] ssh:// git URLs rejected by plugin marketplace URL validator
- Telegram MCP plugin: channel notifications not surfaced in conversation
- [BUG] Plugin installPath uses hardcoded absolute home directory, breaks in containers
- [BUG] External plugins registered twice — duplicate MCP tool namespaces (mcp__github__* and mcp__plugin_github_github__*)
- hookify plugin: broken Python imports — ModuleNotFoundError on every hook execution
- [BUG] marketplace plugin fails with 'Executable not found' on fresh runners (v2.1.53)
- Plugins fail to load in VS Code Dev Containers: marketplace cache uses Windows host path inside Linux container
- /plugin install writes to ~/.claude instead of respecting $CLAUDE_CONFIG_DIR
- Telegram channel: incoming messages sometimes fail to submit into the TUI, silently lost (not just at startup)
- telegram plugin: bun server.ts leaks at 100% CPU on every MCP disconnect
- [BUG] claude_design MCP server injected dynamically but endpoint returns 404
- `claude plugin list --json` truncates stdout at 64 KB when piped and breaks VS Code plugin manager "available" list
- Remote plugin cache (~/.claude/remote/plugins) grows unbounded: stale .in_use dead-PID locks starve the GC + non-deterministic materialization
- Plugin marketplace `git checkout` uses process CWD as work-tree — leaks plugin tree into the caller's directory
- rust-analyzer-lsp plugin: all LSP operations return internal error when rust-analyzer rustup proxy is present but component not installed
- [BUG] All official plugin slash commands (/) unavailable — plugin.json missing commands/skills fields
- [Bug] Slash-command dropdown collapses namespaced plugin skills to single entry
- [BUG] Plugin skill count issue
- [BUG] --channels: plugin process exits before Bun.serve starts when launched by Claude Code (fakechat / stdio transport)
- Plugin-registered MCP servers don't expose tools to the AI (tools visible in `claude mcp list` but not callable)
- [BUG] `!` preprocessing in slash-command bodies fails in TUI but works in `claude -p` (with `model:` + `context: fork`)
- [Feature Request] Support relative/portable paths in plugin manifest installPath for cross-environment ~/.claude sharing