UnoSDK is a powerful CLI tool for Windows that simplifies the installation and management of multiple software development kits (SDKs) from various providers. Think of it as SDKMAN for Windows - bringing the same ease of SDK management to Windows machines. Say goodbye to manual downloads, extractions, and environment variable configurations.
If you've used SDKMAN! on Linux or macOS and wished for something similar on Windows, UnoSDK is your answer. It provides a native Windows experience for managing multiple SDK versions without the complexity of manual installation and PATH management.
- 🚀 Multi-SDK Support: Manage Java, Node.js, Python, Flutter, Maven, Gradle, and Go installations from a single tool
- 🔄 Version Switching: Easily switch between different SDK versions
- 📦 Multiple Providers: Support for various distribution providers
- Java: Amazon Corretto, OpenJDK, GraalVM
- Node.js: Official Node.js distributions
- Python: Official Python distributions
- Flutter: Official Flutter SDK
- Maven: Apache Maven build tool
- Gradle: Gradle build automation tool
- Go: Official Go programming language
- 🔧 Automatic Environment Setup: Automatically configures PATH and environment variables
- 📋 Registry Management: Keeps track of all installed SDKs
- ⚡ Fast Downloads: Parallel downloads with progress tracking
- 🛡️ Verification: Ensures download integrity with checksum verification
| SDK Type | Providers | Description |
|---|---|---|
| Java | Amazon Corretto, OpenJDK, GraalVM | Java Development Kit |
| Node.js | nodejs | JavaScript runtime environment |
| Python | python | Python programming language |
| Flutter | flutter | Flutter SDK for mobile, web, and desktop apps |
| Maven | apache | Apache Maven build automation tool |
| Gradle | gradle | Gradle build automation tool |
| Go | golang | Go programming language |
- Windows OS (Windows 10 or later)
- PowerShell 5.1 or later
Automated Installation (Recommended):
Open PowerShell and run:
irm https://raw.githubusercontent.com/javaquery/unosdk/refs/heads/master/scripts/install.ps1 | iexThis will automatically:
- Download the latest release from GitHub
- Install to
%LOCALAPPDATA%\unosdk - Add unosdk to your PATH
- Replace existing installation if present
To reinstall/update unosdk:
Simply run the same command again. The script will detect the existing installation and replace it with the latest version.
- Go to the releases page
- Download the latest
unosdk.exebinary for Windows - Move the binary to a permanent location (e.g.,
C:\Program Files\unosdk\) - Add the directory to your system PATH:
# Open PowerShell and run:
$path = [Environment]::GetEnvironmentVariable('Path', 'User')
$newPath = $path + ';C:\Program Files\unosdk'
[Environment]::SetEnvironmentVariable('Path', $newPath, 'User')- Verify installation:
unosdk versionAfter installation, you can immediately start using UnoSDK:
# List available SDKs
unosdk list
# Install Java
unosdk install java amazoncorretto 21
# Install Node.js
unosdk install node nodejs latest# Display help
unosdk --help
# Show version
unosdk version
# List all available providers and versions
unosdk list
# List installed SDKs
unosdk list --installed# Install Amazon Corretto Java 21
unosdk install java amazoncorretto 21
# Install GraalVM
unosdk install java graalvm 23.1.2
# Install latest Node.js
unosdk install node nodejs latest
# Install specific Python version
unosdk install python python 3.11
# Install latest Flutter SDK
unosdk install flutter flutter latest
# Install specific Flutter version
unosdk install flutter flutter 3.27.2
# Install Apache Maven
unosdk install maven apache 3.9.9
# Install specific Maven version
unosdk install maven apache 3.8.8
# Install Gradle
unosdk install gradle gradle 8.12
# Install specific Gradle version
unosdk install gradle gradle 8.10
# Install Go
unosdk install go golang 1.23.5
# Install specific Go version
unosdk install go golang 1.22.10
# Install with custom path
unosdk install java openjdk 17 --path C:\SDKs\java
# Skip environment setup
unosdk install java amazoncorretto 21 --skip-env
# Set as default version
unosdk install java openjdk 21 --set-default# Switch to a different Java version
unosdk switch java openjdk 21
# Switch to a different Node.js version
unosdk switch node nodejs 20
# Switch to a different Gradle version
unosdk switch gradle gradle 8.12
# Switch to a different Go version
unosdk switch go golang 1.23.5# Uninstall specific version
unosdk uninstall java amazoncorretto 21
# Force uninstall (skip confirmation)
unosdk uninstall java openjdk 17 --force# Update the list of available SDKs
unosdk updateUnoSDK automatically manages configuration and keeps track of installed SDKs. All data is stored in:
%USERPROFILE%\.unosdk\
├── config.yaml # User configuration
├── registry.json # Installed SDKs registry
├── cache/ # Cached SDK metadata
└── sdks/ # Installed SDKs
By default, SDKs are installed to %USERPROFILE%\.unosdk\ directory:
C:\Users\<username>\.unosdk\
├── java\
│ ├── amazoncorretto\
│ │ ├── 11\
│ │ ├── 17\
│ │ └── 21\
│ └── openjdk\
│ └── 21\
├── node\
│ └── nodejs\
│ └── 20\
├── python\
│ └── python\
│ └── 3.11\
├── maven\
│ └── 3.9.9\
├── gradle\
│ └── 8.12\
└── go\
└── golang\
└── 1.23.5\
For example, Java Amazon Corretto 11 would be installed at:
C:\Users\<username>\.unosdk\java\amazoncorretto\11
You can customize the installation path using the --path flag when installing SDKs.
If you get "command not found" after installation, ensure:
- The directory containing
unosdk.exeis in your PATH - You've opened a new terminal window after modifying PATH
Run PowerShell or Command Prompt as Administrator when:
- Installing SDKs (to set environment variables)
- Switching between SDK versions
- First-time setup
- Verify the SDK is installed:
unosdk list --installed - Check environment variables are set correctly
- Open a new terminal to refresh environment variables
- Try switching to the SDK version:
unosdk switch <sdk-type> <provider> <version>
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Special thanks to all the SDK providers for making their distributions available.
Q: Do I need to manually configure environment variables?
A: No, UnoSDK automatically configures PATH and other necessary environment variables.
Q: Can I install multiple versions of the same SDK?
A: Yes, you can install multiple versions and switch between them using unosdk switch.
Q: Where are the SDKs installed?
A: By default in %USERPROFILE%\.unosdk\ (e.g., C:\Users\<username>\.unosdk\java\amazoncorretto\11), but you can specify a custom path with --path.
Q: Is internet connection required?
A: Yes, for downloading SDKs. After installation, SDKs work offline.
Q: Can I use this alongside other SDK managers?
A: Yes, but be aware of potential PATH conflicts. UnoSDK manages its own installations independently.
- Issues: Report bugs on GitHub Issues
- Discussions: Ask questions in GitHub Discussions
- Documentation: Visit the GitHub repository
This project is licensed under the MIT License - see the LICENSE file for details.
Interested in contributing to UnoSDK? Check out our development guide.
# Clone the repository
git clone https://github.com/javaquery/unosdk.git
cd unosdk
# Build the project (requires Go 1.21+)
.\scripts\build.ps1
# Run tests
go test ./...To update the version, simply edit pkg/version/version.go:
const Version = "1.2.0" // Change this lineThen build and release:
.\scripts\build.ps1
git commit -am "bump version to 1.2.0"
git tag v1.2.0
git push origin main --tags- cobra - CLI framework
- zap - Structured logging
- progressbar - Terminal progress bars
- grab - File downloading
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Made with ❤️ for the developer community