A command-line utility that downloads and installs .vsix extensions into Visual Studio Code and Cursor
- Search for extensions in the Visual Studio Code marketplace
- Install extensions to Visual Studio Code or Cursor
- Automatic system architecture detection
- Table display for search results
- Support for custom marketplace URLs
brew tap beeltec/vsix
brew install vsixcargo install vsix# Clone the repository
git clone https://github.com/beeltec/vsix.git
cd vsix
# Build the project
cargo build --release
# The binary will be available at ./target/release/vsixPrebuilt binaries are available from the releases page for:
- macOS (Intel and Apple Silicon)
- Linux (x86_64)
- Windows (x86_64)
vsix search python
# Sort by name
vsix search rust --sort name
# Limit results
vsix search python --limit 10
# Reverse sort order
vsix search vscode --sort downloads --reverse# Install to VSCode (default)
vsix install ms-python.python
# Install to Cursor
vsix install ms-python.python --cursorvsix --marketplace https://custom.marketplace.com search rust- Rust 1.88 or higher
- Cargo
# Run all tests
cargo test
# Run tests with output
cargo test -- --nocapture
# Run specific test
cargo test test_architecture_detection# Development build
cargo build
# Release build (optimized)
cargo build --release
# Run directly with cargo
cargo run -- search python# Format code
cargo fmt
# Run linter
cargo clippy
# Fix warnings
cargo fixsrc/
├── domain/ # Core business logic and domain model
│ ├── entities.rs # Extension entity
│ ├── errors.rs # Domain-specific errors
│ ├── installation_strategy.rs # Installation strategy pattern
│ ├── repositories.rs # Repository trait definitions
│ ├── sort.rs # Sorting functionality
│ └── value_objects.rs # Architecture detection
├── application/ # Application layer - use cases
│ ├── install_use_case.rs # Improved installation use case
│ ├── services.rs # Application service facade
│ └── use_cases.rs # Search and legacy install use cases
├── infrastructure/ # External service implementations
│ ├── file_system.rs # File system operations
│ ├── installation_service.rs # Installation detection and execution
│ ├── marketplace_client.rs # VSCode marketplace API client
│ └── marketplace_tests.rs # Integration tests for marketplace
├── presentation/ # User interface layer
│ ├── cli.rs # CLI argument parsing
│ └── display.rs # Output formatting and tables
├── lib.rs # Library entry point
└── main.rs # Application entry point
This project follows Domain-Driven Design (DDD) principles with a clean architecture:
- Domain Layer: Contains business logic, entities, and domain services
- Application Layer: Orchestrates use cases and coordinates domain objects
- Infrastructure Layer: Implements external service integrations
- Presentation Layer: Handles user interaction and display
The architecture emphasizes:
- Separation of Concerns: Each layer has a specific responsibility
- Dependency Inversion: Domain and application layers don't depend on infrastructure
- SOLID Principles: Single responsibility, open/closed, and interface segregation
- Test-Driven Development: Comprehensive test coverage at all layers
Contributions are welcome! Please feel free to submit a Pull Request.
- Follow Rust best practices and idioms
- Write tests for new functionality
- Ensure all tests pass before submitting PR
- Follow the existing code structure (DDD architecture)
- Update documentation when needed
This application was developed with assistance from Claude Code, an AI coding assistant. Claude Code helped with code implementation, testing, documentation, and CI/CD pipeline setup.
This project is licensed under the MIT License - see the LICENSE file for details.