Skip to content

Conversation

@jpvelez
Copy link

@jpvelez jpvelez commented Jan 9, 2026

Summary

Fixes #258

Extensions defined in devcontainer.json are now correctly installed when using DevPod with Cursor IDE.

Problem

Cursor installs its server binary to platform-specific subdirectories:

  • Linux AMD64: ~/.cursor-server/bin/linux-x64/<commit>/bin/cursor-server
  • Linux ARM64: ~/.cursor-server/bin/linux-arm64/<commit>/bin/cursor-server
  • macOS Intel: ~/.cursor-server/bin/darwin-x64/<commit>/bin/cursor-server
  • macOS ARM: ~/.cursor-server/bin/darwin-arm64/<commit>/bin/cursor-server

DevPod's path detection in findServerBinaryPath() was only checking for the direct path ~/.cursor-server/bin/<commit>/bin/cursor-server, which doesn't exist.

This caused the async extension installation process to fail silently - the process would start, but couldn't locate the cursor-server binary to run --install-extension commands.

Solution

Updated the Cursor path detection logic in pkg/ide/vscode/vscode.go (lines 229-267) to:

  1. First try the direct path (for backwards compatibility)
  2. If that fails, check for platform-specific subdirectories
  3. Validate the binary works before returning the path

The fix tries the standard path first, then looks one level deeper for platform subdirectories if needed.

Testing

Tested on two platforms with different architectures:

AWS EC2 (Linux AMD64)

  • Platform: linux-x64
  • Extensions: Now install correctly ✅
  • Binary path: /root/.cursor-server/bin/linux-x64/<commit>/bin/cursor-server

macOS Docker (Linux ARM64 container)

  • Platform: linux-arm64
  • Extensions: Now install correctly ✅
  • Binary path: /root/.cursor-server/bin/linux-arm64/<commit>/bin/cursor-server

All 9 extensions from devcontainer.json now install automatically in both environments.

Impact

  • Scope: Only affects Cursor IDE flavor, no changes to VS Code/VS Code Insiders
  • Backwards compatible: Still checks original path first
  • Low risk: Validation step ensures binary works before returning path

Related

Similar logic may be needed for other IDE flavors (Positron, Codium, Windsurf, Antigravity) if they exhibit similar platform-specific installation patterns, but I haven't observed this issue with those IDEs yet.

…tection

Fixes skevetter#258

Cursor installs its server binary to platform-specific subdirectories:
- Linux AMD64: ~/.cursor-server/bin/linux-x64/<commit>/bin/cursor-server
- Linux ARM64: ~/.cursor-server/bin/linux-arm64/<commit>/bin/cursor-server
- macOS Intel: ~/.cursor-server/bin/darwin-x64/<commit>/bin/cursor-server
- macOS ARM: ~/.cursor-server/bin/darwin-arm64/<commit>/bin/cursor-server

DevPod's path detection logic in findServerBinaryPath() was only checking
for the direct path: ~/.cursor-server/bin/<commit>/bin/cursor-server

This caused the async extension installation process to fail silently
because it couldn't locate the cursor-server binary to run --install-extension
commands, even though the extensions were correctly defined in devcontainer.json.

This commit updates the Cursor path detection to:
1. First try the direct path (for backwards compatibility)
2. If that fails, check for platform-specific subdirectories
3. Validate the binary works before returning the path

Tested on:
- AWS EC2 (Linux AMD64) - linux-x64
- macOS Docker (Linux ARM64 container) - linux-arm64

Extensions now install correctly in both environments.
@skevetter
Copy link
Owner

Cursor installs its server binary to platform-specific subdirectories

Would you provide documentation for clarity?

Extensions defined in devcontainer.json are now correctly installed when using DevPod with Cursor IDE.

Is the Cursor IDE running correctly? Only the extensions installation is an issue? I would think if the wrong path is specified then the entire IDE would be nonfunctional.

@skevetter
Copy link
Owner

Would you link the .devcontainer.json you are testing to validate this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cursor IDE: Extensions from devcontainer.json not installing due to platform-specific path detection failure

2 participants