A command-line tool to download VSCode extensions from the Visual Studio Marketplace.
This project was created to solve the issue of installing certain VSCode Marketplace extensions in Windsurf and Cursor. The majority of the code was generated by Windsurf itself, with my involvement in requirements specification, architectural discussions, optimization suggestions, and validation work.
The development process was remarkably efficient - within an hour, we had a fully functional, robust implementation with comprehensive features. The resulting code is stable, well-structured, and includes everything from platform-specific downloads to recursive dependency resolution. The speed and quality of the development process, powered by Windsurf's code generation capabilities, was truly remarkable.
- Automatically detects system platform (Windows/macOS/Linux)
- Supports both ARM and x64 architectures
- Downloads platform-specific extension versions when available
- Shows download progress with a progress bar
- Optional recursive dependency downloading
- Avoids duplicate downloads
- Generates organized filenames with publisher, extension ID and version
- Robust download with automatic retry mechanism
- File integrity verification
- Optional automatic installation in Windsurf or Cursor
- Clone this repository
- Install dependencies:
pip install -r requirements.txt
Run the script and follow the prompts:
python vsix-tool.py
The script will ask for:
- A VSCode Marketplace URL
- Whether to download dependencies
- Whether to install the downloaded extensions in an IDE (Windsurf or Cursor)
Example marketplace URLs:
- https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
- https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide
Enter VSCode Marketplace URL: https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide
Download dependencies? (y/N): y
Detected platform: darwin-arm64
Analyzing dependencies...
Querying extension: platformio.platformio-ide
Found dependencies: ['ms-vscode.cpptools']
Querying extension: ms-vscode.cpptools
Found 2 extension(s) to download
Downloading [1/2]: ms-vscode.cpptools
Downloading 01-ms-vscode-cpptools-1.24.1.vsix: 100%|██████████| 77.9M/77.9M [00:19<00:00, 4.04MiB/s]
Successfully downloaded: downloads/01-ms-vscode-cpptools-1.24.1.vsix
Downloading [2/2]: platformio.platformio-ide
Downloading 02-platformio-platformio-ide-3.3.4.vsix: 100%|██████████| 3.23M/3.23M [00:01<00:00, 2.65MiB/s]
Successfully downloaded: downloads/02-platformio-platformio-ide-3.3.4.vsix
Install extensions in an IDE? (y/N): y
Select IDE:
1. Windsurf
2. Cursor
Enter choice (1/2): 2
Installing extensions in Cursor...
Installing 01-ms-vscode-cpptools-1.24.1.vsix...
Successfully installed
Installing 02-platformio-platformio-ide-3.3.4.vsix...
Successfully installed
All extensions installed successfully!
Automatically detects your system platform and architecture to download the correct version:
- Windows: win32-x64, win32-arm64
- macOS: darwin-x64, darwin-arm64
- Linux: linux-x64, linux-arm64, linux-armhf
When enabled, automatically:
- Reads the extension manifest
- Identifies required dependencies
- Downloads all dependencies recursively
- Prevents duplicate downloads
Downloaded files are stored in the downloads
subdirectory with a consistent naming format:
{index}-{publisher}-{extension_id}-{version}.vsix
Example:
01-ms-vscode-cpptools-1.24.1.vsix
02-platformio-platformio-ide-3.3.4.vsix
The numeric prefix indicates the installation order, ensuring dependencies are installed first.