SSH remote passes local plugin paths and MCP configs to remote server, causing hang
Bug Description
When connecting to a remote server via SSH, Claude Code passes local macOS plugin paths and MCP server configurations to the remote ccd-cli process. These paths don't exist on the remote machine, causing it to hang indefinitely until the client times out with "Failed to load session".
Root Cause
The remote ccd-cli process is invoked with local paths and configs:
--plugin-dir /Users/<user>/.claude/plugins/cache/claude-plugins-official/pyright-lsp/1.0.0
--plugin-dir /Users/<user>/.claude/plugins/cache/claude-hud/claude-hud/0.0.1
--plugin-dir /Users/<user>/.claude/plugins/cache/claude-plugins-official/ralph-wiggum/15b07b46dab3
--plugin-dir /Users/<user>/.claude/plugins/cache/claude-plugins-official/swift-lsp/1.0.0
--mcp-config {"mcpServers":{"Claude in Chrome":{"type":"sdk","name":"Claude in Chrome"},"mcp-registry":{"type":"sdk","name":"mcp-registry"}}}
These /Users/<user>/... paths don't exist on the remote Linux server, and the MCP servers (Claude in Chrome, mcp-registry) aren't available remotely.
The ccd-cli process consumes ~280MB RAM, opens a socket to the API, but hangs indefinitely — presumably failing to load the non-existent plugins. Eventually the client times out and shows "Failed to load session".
Steps to Reproduce
- Install plugins and/or MCP servers locally (e.g., pyright-lsp, claude-hud, Claude in Chrome)
- Set up an SSH connection to a remote Linux server
- Connect via Claude Code SSH
- Observe
ccd-clion the remote server being passed local plugin paths via--plugin-dir
Expected Behavior
The SSH remote session should either:
- Not pass local plugin paths/MCP configs to the remote machine
- Resolve/sync plugins to the remote before launching
- Gracefully skip missing plugins instead of hanging
Environment
- Local: macOS (Darwin 25.2.0), Claude Code 2.1.42
- Remote: Ubuntu 18.04, x86_64
Related
- #25661 (SSH connection ignores Identity File setting)
This issue has 7 comments on GitHub. Read the full discussion on GitHub ↗