Repository files navigation

UnoSDK

UnoSDK Logo

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.

Go VersionReleaseCILicense

Why UnoSDK?

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.

Features

  • 🚀 Multi-SDK Support: Manage Java, Node.js, Python, Flutter, Maven, Gradle, Go, C, and C++ 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
    • C: MinGW-w64 (GCC toolchain)
    • C++: MinGW-w64 (GCC/G++ toolchain)
  • 🔧 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

Supported SDKs

SDK TypeProvidersDescription
JavaAmazon Corretto, OpenJDK, GraalVMJava Development Kit
Node.jsnodejsJavaScript runtime environment
PythonpythonPython programming language
FlutterflutterFlutter SDK for mobile, web, and desktop apps
MavenapacheApache Maven build automation tool
GradlegradleGradle build automation tool
GogolangGo programming language
CmingwMinGW-w64 GCC toolchain
C++mingwMinGW-w64 GCC/G++ toolchain

Installation

Prerequisites

  • Windows OS (Windows 10 or later)
  • PowerShell 5.1 or later

Quick Installation

Automated Installation (Recommended):

Open PowerShell and run:

irm https://raw.githubusercontent.com/javaquery/unosdk/refs/heads/master/scripts/install.ps1 | iex

This 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.

Manual Installation

  1. Go to the releases page
  2. Download the latest unosdk.exe binary for Windows
  3. Move the binary to a permanent location (e.g., C:\Program Files\unosdk\)
  4. 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')
  1. Verify installation:
unosdk version

Quick Start

After 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

Usage

Basic Commands

# Display help
unosdk --help
# Show version
unosdk version
# List all available providers and versions
unosdk list
# List installed SDKs
unosdk list --installed

Install SDKs

# 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 C++ (MinGW-w64)
unosdk install cpp mingw 15.2.0
# Install specific MinGW version
unosdk install cpp mingw 14.2.0
# Install C (MinGW-w64)
unosdk install c mingw 15.2.0
# 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 Between Versions

# 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
# Switch to a different C++ (MinGW) version
unosdk switch cpp mingw 15.2.0
# Switch to a different C (MinGW) version
unosdk switch c mingw 15.2.0

Uninstall SDKs

# Uninstall specific version
unosdk uninstall java amazoncorretto 21
# Force uninstall (skip confirmation)
unosdk uninstall java openjdk 17 --force

Update SDK Registry

# Update the list of available SDKs
unosdk update

Configuration

UnoSDK 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\
├── c\
│ └── mingw\
│ └── 15.2.0\
│ └── mingw64\ # Contains bin/ (gcc), include/, lib/, etc.
└── cpp\
└── mingw\
└── 15.2.0\
└── mingw64\ # Contains bin/ (g++, gcc), include/, lib/, etc.

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.

Troubleshooting

Command Not Found

If you get "command not found" after installation, ensure:

  • The directory containing unosdk.exe is in your PATH
  • You've opened a new terminal window after modifying PATH

Permission Denied

Run PowerShell or Command Prompt as Administrator when:

  • Installing SDKs (to set environment variables)
  • Switching between SDK versions
  • First-time setup

SDK Not Working After Install

  1. Verify the SDK is installed: unosdk list --installed
  2. Check environment variables are set correctly
  3. Open a new terminal to refresh environment variables
  4. Try switching to the SDK version: unosdk switch <sdk-type> <provider> <version>

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Acknowledgments

Special thanks to all the SDK providers for making their distributions available.

FAQ

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.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.


For Contributors

Interested in contributing to UnoSDK? Check out our development guide.

Building from Source

# 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 ./...

Version Management

To update the version, simply edit pkg/version/version.go:

constVersion="1.2.0"// Change this line

Then 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

Dependencies

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made with ❤️ for the developer community

About

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.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

UnoSDK

UnoSDK Logo

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.

Go VersionReleaseCILicense

Why UnoSDK?

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.

Features

  • 🚀 Multi-SDK Support: Manage Java, Node.js, Python, Flutter, Maven, Gradle, Go, C, and C++ 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
    • C: MinGW-w64 (GCC toolchain)
    • C++: MinGW-w64 (GCC/G++ toolchain)
  • 🔧 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

Supported SDKs

SDK TypeProvidersDescription
JavaAmazon Corretto, OpenJDK, GraalVMJava Development Kit
Node.jsnodejsJavaScript runtime environment
PythonpythonPython programming language
FlutterflutterFlutter SDK for mobile, web, and desktop apps
MavenapacheApache Maven build automation tool
GradlegradleGradle build automation tool
GogolangGo programming language
CmingwMinGW-w64 GCC toolchain
C++mingwMinGW-w64 GCC/G++ toolchain

Installation

Prerequisites

  • Windows OS (Windows 10 or later)
  • PowerShell 5.1 or later

Quick Installation

Automated Installation (Recommended):

Open PowerShell and run:

irm https://raw.githubusercontent.com/javaquery/unosdk/refs/heads/master/scripts/install.ps1 | iex

This 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.

Manual Installation

  1. Go to the releases page
  2. Download the latest unosdk.exe binary for Windows
  3. Move the binary to a permanent location (e.g., C:\Program Files\unosdk\)
  4. 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')
  1. Verify installation:
unosdk version

Quick Start

After 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

Usage

Basic Commands

# Display help
unosdk --help
# Show version
unosdk version
# List all available providers and versions
unosdk list
# List installed SDKs
unosdk list --installed

Install SDKs

# 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 C++ (MinGW-w64)
unosdk install cpp mingw 15.2.0
# Install specific MinGW version
unosdk install cpp mingw 14.2.0
# Install C (MinGW-w64)
unosdk install c mingw 15.2.0
# 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 Between Versions

# 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
# Switch to a different C++ (MinGW) version
unosdk switch cpp mingw 15.2.0
# Switch to a different C (MinGW) version
unosdk switch c mingw 15.2.0

Uninstall SDKs

# Uninstall specific version
unosdk uninstall java amazoncorretto 21
# Force uninstall (skip confirmation)
unosdk uninstall java openjdk 17 --force

Update SDK Registry

# Update the list of available SDKs
unosdk update

Configuration

UnoSDK 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\
├── c\
│ └── mingw\
│ └── 15.2.0\
│ └── mingw64\ # Contains bin/ (gcc), include/, lib/, etc.
└── cpp\
└── mingw\
└── 15.2.0\
└── mingw64\ # Contains bin/ (g++, gcc), include/, lib/, etc.

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.

Troubleshooting

Command Not Found

If you get "command not found" after installation, ensure:

  • The directory containing unosdk.exe is in your PATH
  • You've opened a new terminal window after modifying PATH

Permission Denied

Run PowerShell or Command Prompt as Administrator when:

  • Installing SDKs (to set environment variables)
  • Switching between SDK versions
  • First-time setup

SDK Not Working After Install

  1. Verify the SDK is installed: unosdk list --installed
  2. Check environment variables are set correctly
  3. Open a new terminal to refresh environment variables
  4. Try switching to the SDK version: unosdk switch <sdk-type> <provider> <version>

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Acknowledgments

Special thanks to all the SDK providers for making their distributions available.

FAQ

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.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.


For Contributors

Interested in contributing to UnoSDK? Check out our development guide.

Building from Source

# 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 ./...

Version Management

To update the version, simply edit pkg/version/version.go:

constVersion="1.2.0"// Change this line

Then 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

Dependencies

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made with ❤️ for the developer community

About

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.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

UnoSDK

UnoSDK Logo

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.

Go VersionReleaseCILicense

Why UnoSDK?

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.

Features

  • 🚀 Multi-SDK Support: Manage Java, Node.js, Python, Flutter, Maven, Gradle, Go, C, and C++ 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
    • C: MinGW-w64 (GCC toolchain)
    • C++: MinGW-w64 (GCC/G++ toolchain)
  • 🔧 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

Supported SDKs

SDK TypeProvidersDescription
JavaAmazon Corretto, OpenJDK, GraalVMJava Development Kit
Node.jsnodejsJavaScript runtime environment
PythonpythonPython programming language
FlutterflutterFlutter SDK for mobile, web, and desktop apps
MavenapacheApache Maven build automation tool
GradlegradleGradle build automation tool
GogolangGo programming language
CmingwMinGW-w64 GCC toolchain
C++mingwMinGW-w64 GCC/G++ toolchain

Installation

Prerequisites

  • Windows OS (Windows 10 or later)
  • PowerShell 5.1 or later

Quick Installation

Automated Installation (Recommended):

Open PowerShell and run:

irm https://raw.githubusercontent.com/javaquery/unosdk/refs/heads/master/scripts/install.ps1 | iex

This 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.

Manual Installation

  1. Go to the releases page
  2. Download the latest unosdk.exe binary for Windows
  3. Move the binary to a permanent location (e.g., C:\Program Files\unosdk\)
  4. 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')
  1. Verify installation:
unosdk version

Quick Start

After 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

Usage

Basic Commands

# Display help
unosdk --help
# Show version
unosdk version
# List all available providers and versions
unosdk list
# List installed SDKs
unosdk list --installed

Install SDKs

# 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 C++ (MinGW-w64)
unosdk install cpp mingw 15.2.0
# Install specific MinGW version
unosdk install cpp mingw 14.2.0
# Install C (MinGW-w64)
unosdk install c mingw 15.2.0
# 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 Between Versions

# 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
# Switch to a different C++ (MinGW) version
unosdk switch cpp mingw 15.2.0
# Switch to a different C (MinGW) version
unosdk switch c mingw 15.2.0

Uninstall SDKs

# Uninstall specific version
unosdk uninstall java amazoncorretto 21
# Force uninstall (skip confirmation)
unosdk uninstall java openjdk 17 --force

Update SDK Registry

# Update the list of available SDKs
unosdk update

Configuration

UnoSDK 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\
├── c\
│ └── mingw\
│ └── 15.2.0\
│ └── mingw64\ # Contains bin/ (gcc), include/, lib/, etc.
└── cpp\
└── mingw\
└── 15.2.0\
└── mingw64\ # Contains bin/ (g++, gcc), include/, lib/, etc.

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.

Troubleshooting

Command Not Found

If you get "command not found" after installation, ensure:

  • The directory containing unosdk.exe is in your PATH
  • You've opened a new terminal window after modifying PATH

Permission Denied

Run PowerShell or Command Prompt as Administrator when:

  • Installing SDKs (to set environment variables)
  • Switching between SDK versions
  • First-time setup

SDK Not Working After Install

  1. Verify the SDK is installed: unosdk list --installed
  2. Check environment variables are set correctly
  3. Open a new terminal to refresh environment variables
  4. Try switching to the SDK version: unosdk switch <sdk-type> <provider> <version>

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Acknowledgments

Special thanks to all the SDK providers for making their distributions available.

FAQ

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.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.


For Contributors

Interested in contributing to UnoSDK? Check out our development guide.

Building from Source

# 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 ./...

Version Management

To update the version, simply edit pkg/version/version.go:

constVersion="1.2.0"// Change this line

Then 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

Dependencies

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made with ❤️ for the developer community

About

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.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

UnoSDK

UnoSDK Logo

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.

Go VersionReleaseCILicense

Why UnoSDK?

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.

Features

  • 🚀 Multi-SDK Support: Manage Java, Node.js, Python, Flutter, Maven, Gradle, Go, C, and C++ 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
    • C: MinGW-w64 (GCC toolchain)
    • C++: MinGW-w64 (GCC/G++ toolchain)
  • 🔧 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

Supported SDKs

SDK TypeProvidersDescription
JavaAmazon Corretto, OpenJDK, GraalVMJava Development Kit
Node.jsnodejsJavaScript runtime environment
PythonpythonPython programming language
FlutterflutterFlutter SDK for mobile, web, and desktop apps
MavenapacheApache Maven build automation tool
GradlegradleGradle build automation tool
GogolangGo programming language
CmingwMinGW-w64 GCC toolchain
C++mingwMinGW-w64 GCC/G++ toolchain

Installation

Prerequisites

  • Windows OS (Windows 10 or later)
  • PowerShell 5.1 or later

Quick Installation

Automated Installation (Recommended):

Open PowerShell and run:

irm https://raw.githubusercontent.com/javaquery/unosdk/refs/heads/master/scripts/install.ps1 | iex

This 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.

Manual Installation

  1. Go to the releases page
  2. Download the latest unosdk.exe binary for Windows
  3. Move the binary to a permanent location (e.g., C:\Program Files\unosdk\)
  4. 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')
  1. Verify installation:
unosdk version

Quick Start

After 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

Usage

Basic Commands

# Display help
unosdk --help
# Show version
unosdk version
# List all available providers and versions
unosdk list
# List installed SDKs
unosdk list --installed

Install SDKs

# 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 C++ (MinGW-w64)
unosdk install cpp mingw 15.2.0
# Install specific MinGW version
unosdk install cpp mingw 14.2.0
# Install C (MinGW-w64)
unosdk install c mingw 15.2.0
# 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 Between Versions

# 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
# Switch to a different C++ (MinGW) version
unosdk switch cpp mingw 15.2.0
# Switch to a different C (MinGW) version
unosdk switch c mingw 15.2.0

Uninstall SDKs

# Uninstall specific version
unosdk uninstall java amazoncorretto 21
# Force uninstall (skip confirmation)
unosdk uninstall java openjdk 17 --force

Update SDK Registry

# Update the list of available SDKs
unosdk update

Configuration

UnoSDK 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\
├── c\
│ └── mingw\
│ └── 15.2.0\
│ └── mingw64\ # Contains bin/ (gcc), include/, lib/, etc.
└── cpp\
└── mingw\
└── 15.2.0\
└── mingw64\ # Contains bin/ (g++, gcc), include/, lib/, etc.

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.

Troubleshooting

Command Not Found

If you get "command not found" after installation, ensure:

  • The directory containing unosdk.exe is in your PATH
  • You've opened a new terminal window after modifying PATH

Permission Denied

Run PowerShell or Command Prompt as Administrator when:

  • Installing SDKs (to set environment variables)
  • Switching between SDK versions
  • First-time setup

SDK Not Working After Install

  1. Verify the SDK is installed: unosdk list --installed
  2. Check environment variables are set correctly
  3. Open a new terminal to refresh environment variables
  4. Try switching to the SDK version: unosdk switch <sdk-type> <provider> <version>

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Acknowledgments

Special thanks to all the SDK providers for making their distributions available.

FAQ

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.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.


For Contributors

Interested in contributing to UnoSDK? Check out our development guide.

Building from Source

# 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 ./...

Version Management

To update the version, simply edit pkg/version/version.go:

constVersion="1.2.0"// Change this line

Then 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

Dependencies

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made with ❤️ for the developer community

About

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.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

UnoSDK

UnoSDK Logo

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.

Go VersionReleaseCILicense

Why UnoSDK?

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.

Features

  • 🚀 Multi-SDK Support: Manage Java, Node.js, Python, Flutter, Maven, Gradle, Go, C, and C++ 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
    • C: MinGW-w64 (GCC toolchain)
    • C++: MinGW-w64 (GCC/G++ toolchain)
  • 🔧 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

Supported SDKs

SDK TypeProvidersDescription
JavaAmazon Corretto, OpenJDK, GraalVMJava Development Kit
Node.jsnodejsJavaScript runtime environment
PythonpythonPython programming language
FlutterflutterFlutter SDK for mobile, web, and desktop apps
MavenapacheApache Maven build automation tool
GradlegradleGradle build automation tool
GogolangGo programming language
CmingwMinGW-w64 GCC toolchain
C++mingwMinGW-w64 GCC/G++ toolchain

Installation

Prerequisites

  • Windows OS (Windows 10 or later)
  • PowerShell 5.1 or later

Quick Installation

Automated Installation (Recommended):

Open PowerShell and run:

irm https://raw.githubusercontent.com/javaquery/unosdk/refs/heads/master/scripts/install.ps1 | iex

This 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.

Manual Installation

  1. Go to the releases page
  2. Download the latest unosdk.exe binary for Windows
  3. Move the binary to a permanent location (e.g., C:\Program Files\unosdk\)
  4. 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')
  1. Verify installation:
unosdk version

Quick Start

After 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

Usage

Basic Commands

# Display help
unosdk --help
# Show version
unosdk version
# List all available providers and versions
unosdk list
# List installed SDKs
unosdk list --installed

Install SDKs

# 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 C++ (MinGW-w64)
unosdk install cpp mingw 15.2.0
# Install specific MinGW version
unosdk install cpp mingw 14.2.0
# Install C (MinGW-w64)
unosdk install c mingw 15.2.0
# 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 Between Versions

# 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
# Switch to a different C++ (MinGW) version
unosdk switch cpp mingw 15.2.0
# Switch to a different C (MinGW) version
unosdk switch c mingw 15.2.0

Uninstall SDKs

# Uninstall specific version
unosdk uninstall java amazoncorretto 21
# Force uninstall (skip confirmation)
unosdk uninstall java openjdk 17 --force

Update SDK Registry

# Update the list of available SDKs
unosdk update

Configuration

UnoSDK 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\
├── c\
│ └── mingw\
│ └── 15.2.0\
│ └── mingw64\ # Contains bin/ (gcc), include/, lib/, etc.
└── cpp\
└── mingw\
└── 15.2.0\
└── mingw64\ # Contains bin/ (g++, gcc), include/, lib/, etc.

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.

Troubleshooting

Command Not Found

If you get "command not found" after installation, ensure:

  • The directory containing unosdk.exe is in your PATH
  • You've opened a new terminal window after modifying PATH

Permission Denied

Run PowerShell or Command Prompt as Administrator when:

  • Installing SDKs (to set environment variables)
  • Switching between SDK versions
  • First-time setup

SDK Not Working After Install

  1. Verify the SDK is installed: unosdk list --installed
  2. Check environment variables are set correctly
  3. Open a new terminal to refresh environment variables
  4. Try switching to the SDK version: unosdk switch <sdk-type> <provider> <version>

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Acknowledgments

Special thanks to all the SDK providers for making their distributions available.

FAQ

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.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.


For Contributors

Interested in contributing to UnoSDK? Check out our development guide.

Building from Source

# 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 ./...

Version Management

To update the version, simply edit pkg/version/version.go:

constVersion="1.2.0"// Change this line

Then 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

Dependencies

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made with ❤️ for the developer community

About

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.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

UnoSDK

UnoSDK Logo

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.

Go VersionReleaseCILicense

Why UnoSDK?

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.

Features

  • 🚀 Multi-SDK Support: Manage Java, Node.js, Python, Flutter, Maven, Gradle, Go, C, and C++ 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
    • C: MinGW-w64 (GCC toolchain)
    • C++: MinGW-w64 (GCC/G++ toolchain)
  • 🔧 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

Supported SDKs

SDK TypeProvidersDescription
JavaAmazon Corretto, OpenJDK, GraalVMJava Development Kit
Node.jsnodejsJavaScript runtime environment
PythonpythonPython programming language
FlutterflutterFlutter SDK for mobile, web, and desktop apps
MavenapacheApache Maven build automation tool
GradlegradleGradle build automation tool
GogolangGo programming language
CmingwMinGW-w64 GCC toolchain
C++mingwMinGW-w64 GCC/G++ toolchain

Installation

Prerequisites

  • Windows OS (Windows 10 or later)
  • PowerShell 5.1 or later

Quick Installation

Automated Installation (Recommended):

Open PowerShell and run:

irm https://raw.githubusercontent.com/javaquery/unosdk/refs/heads/master/scripts/install.ps1 | iex

This 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.

Manual Installation

  1. Go to the releases page
  2. Download the latest unosdk.exe binary for Windows
  3. Move the binary to a permanent location (e.g., C:\Program Files\unosdk\)
  4. 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')
  1. Verify installation:
unosdk version

Quick Start

After 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

Usage

Basic Commands

# Display help
unosdk --help
# Show version
unosdk version
# List all available providers and versions
unosdk list
# List installed SDKs
unosdk list --installed

Install SDKs

# 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 C++ (MinGW-w64)
unosdk install cpp mingw 15.2.0
# Install specific MinGW version
unosdk install cpp mingw 14.2.0
# Install C (MinGW-w64)
unosdk install c mingw 15.2.0
# 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 Between Versions

# 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
# Switch to a different C++ (MinGW) version
unosdk switch cpp mingw 15.2.0
# Switch to a different C (MinGW) version
unosdk switch c mingw 15.2.0

Uninstall SDKs

# Uninstall specific version
unosdk uninstall java amazoncorretto 21
# Force uninstall (skip confirmation)
unosdk uninstall java openjdk 17 --force

Update SDK Registry

# Update the list of available SDKs
unosdk update

Configuration

UnoSDK 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\
├── c\
│ └── mingw\
│ └── 15.2.0\
│ └── mingw64\ # Contains bin/ (gcc), include/, lib/, etc.
└── cpp\
└── mingw\
└── 15.2.0\
└── mingw64\ # Contains bin/ (g++, gcc), include/, lib/, etc.

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.

Troubleshooting

Command Not Found

If you get "command not found" after installation, ensure:

  • The directory containing unosdk.exe is in your PATH
  • You've opened a new terminal window after modifying PATH

Permission Denied

Run PowerShell or Command Prompt as Administrator when:

  • Installing SDKs (to set environment variables)
  • Switching between SDK versions
  • First-time setup

SDK Not Working After Install

  1. Verify the SDK is installed: unosdk list --installed
  2. Check environment variables are set correctly
  3. Open a new terminal to refresh environment variables
  4. Try switching to the SDK version: unosdk switch <sdk-type> <provider> <version>

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Acknowledgments

Special thanks to all the SDK providers for making their distributions available.

FAQ

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.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.


For Contributors

Interested in contributing to UnoSDK? Check out our development guide.

Building from Source

# 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 ./...

Version Management

To update the version, simply edit pkg/version/version.go:

constVersion="1.2.0"// Change this line

Then 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

Dependencies

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made with ❤️ for the developer community

About

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.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

UnoSDK

UnoSDK Logo

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.

Go VersionReleaseCILicense

Why UnoSDK?

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.

Features

  • 🚀 Multi-SDK Support: Manage Java, Node.js, Python, Flutter, Maven, Gradle, Go, C, and C++ 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
    • C: MinGW-w64 (GCC toolchain)
    • C++: MinGW-w64 (GCC/G++ toolchain)
  • 🔧 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

Supported SDKs

SDK TypeProvidersDescription
JavaAmazon Corretto, OpenJDK, GraalVMJava Development Kit
Node.jsnodejsJavaScript runtime environment
PythonpythonPython programming language
FlutterflutterFlutter SDK for mobile, web, and desktop apps
MavenapacheApache Maven build automation tool
GradlegradleGradle build automation tool
GogolangGo programming language
CmingwMinGW-w64 GCC toolchain
C++mingwMinGW-w64 GCC/G++ toolchain

Installation

Prerequisites

  • Windows OS (Windows 10 or later)
  • PowerShell 5.1 or later

Quick Installation

Automated Installation (Recommended):

Open PowerShell and run:

irm https://raw.githubusercontent.com/javaquery/unosdk/refs/heads/master/scripts/install.ps1 | iex

This 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.

Manual Installation

  1. Go to the releases page
  2. Download the latest unosdk.exe binary for Windows
  3. Move the binary to a permanent location (e.g., C:\Program Files\unosdk\)
  4. 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')
  1. Verify installation:
unosdk version

Quick Start

After 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

Usage

Basic Commands

# Display help
unosdk --help
# Show version
unosdk version
# List all available providers and versions
unosdk list
# List installed SDKs
unosdk list --installed

Install SDKs

# 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 C++ (MinGW-w64)
unosdk install cpp mingw 15.2.0
# Install specific MinGW version
unosdk install cpp mingw 14.2.0
# Install C (MinGW-w64)
unosdk install c mingw 15.2.0
# 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 Between Versions

# 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
# Switch to a different C++ (MinGW) version
unosdk switch cpp mingw 15.2.0
# Switch to a different C (MinGW) version
unosdk switch c mingw 15.2.0

Uninstall SDKs

# Uninstall specific version
unosdk uninstall java amazoncorretto 21
# Force uninstall (skip confirmation)
unosdk uninstall java openjdk 17 --force

Update SDK Registry

# Update the list of available SDKs
unosdk update

Configuration

UnoSDK 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\
├── c\
│ └── mingw\
│ └── 15.2.0\
│ └── mingw64\ # Contains bin/ (gcc), include/, lib/, etc.
└── cpp\
└── mingw\
└── 15.2.0\
└── mingw64\ # Contains bin/ (g++, gcc), include/, lib/, etc.

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.

Troubleshooting

Command Not Found

If you get "command not found" after installation, ensure:

  • The directory containing unosdk.exe is in your PATH
  • You've opened a new terminal window after modifying PATH

Permission Denied

Run PowerShell or Command Prompt as Administrator when:

  • Installing SDKs (to set environment variables)
  • Switching between SDK versions
  • First-time setup

SDK Not Working After Install

  1. Verify the SDK is installed: unosdk list --installed
  2. Check environment variables are set correctly
  3. Open a new terminal to refresh environment variables
  4. Try switching to the SDK version: unosdk switch <sdk-type> <provider> <version>

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Acknowledgments

Special thanks to all the SDK providers for making their distributions available.

FAQ

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.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.


For Contributors

Interested in contributing to UnoSDK? Check out our development guide.

Building from Source

# 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 ./...

Version Management

To update the version, simply edit pkg/version/version.go:

constVersion="1.2.0"// Change this line

Then 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

Dependencies

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made with ❤️ for the developer community

About

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.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

UnoSDK

UnoSDK Logo

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.

Go VersionReleaseCILicense

Why UnoSDK?

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.

Features

  • 🚀 Multi-SDK Support: Manage Java, Node.js, Python, Flutter, Maven, Gradle, Go, C, and C++ 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
    • C: MinGW-w64 (GCC toolchain)
    • C++: MinGW-w64 (GCC/G++ toolchain)
  • 🔧 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

Supported SDKs

SDK TypeProvidersDescription
JavaAmazon Corretto, OpenJDK, GraalVMJava Development Kit
Node.jsnodejsJavaScript runtime environment
PythonpythonPython programming language
FlutterflutterFlutter SDK for mobile, web, and desktop apps
MavenapacheApache Maven build automation tool
GradlegradleGradle build automation tool
GogolangGo programming language
CmingwMinGW-w64 GCC toolchain
C++mingwMinGW-w64 GCC/G++ toolchain

Installation

Prerequisites

  • Windows OS (Windows 10 or later)
  • PowerShell 5.1 or later

Quick Installation

Automated Installation (Recommended):

Open PowerShell and run:

irm https://raw.githubusercontent.com/javaquery/unosdk/refs/heads/master/scripts/install.ps1 | iex

This 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.

Manual Installation

  1. Go to the releases page
  2. Download the latest unosdk.exe binary for Windows
  3. Move the binary to a permanent location (e.g., C:\Program Files\unosdk\)
  4. 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')
  1. Verify installation:
unosdk version

Quick Start

After 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

Usage

Basic Commands

# Display help
unosdk --help
# Show version
unosdk version
# List all available providers and versions
unosdk list
# List installed SDKs
unosdk list --installed

Install SDKs

# 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 C++ (MinGW-w64)
unosdk install cpp mingw 15.2.0
# Install specific MinGW version
unosdk install cpp mingw 14.2.0
# Install C (MinGW-w64)
unosdk install c mingw 15.2.0
# 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 Between Versions

# 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
# Switch to a different C++ (MinGW) version
unosdk switch cpp mingw 15.2.0
# Switch to a different C (MinGW) version
unosdk switch c mingw 15.2.0

Uninstall SDKs

# Uninstall specific version
unosdk uninstall java amazoncorretto 21
# Force uninstall (skip confirmation)
unosdk uninstall java openjdk 17 --force

Update SDK Registry

# Update the list of available SDKs
unosdk update

Configuration

UnoSDK 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\
├── c\
│ └── mingw\
│ └── 15.2.0\
│ └── mingw64\ # Contains bin/ (gcc), include/, lib/, etc.
└── cpp\
└── mingw\
└── 15.2.0\
└── mingw64\ # Contains bin/ (g++, gcc), include/, lib/, etc.

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.

Troubleshooting

Command Not Found

If you get "command not found" after installation, ensure:

  • The directory containing unosdk.exe is in your PATH
  • You've opened a new terminal window after modifying PATH

Permission Denied

Run PowerShell or Command Prompt as Administrator when:

  • Installing SDKs (to set environment variables)
  • Switching between SDK versions
  • First-time setup

SDK Not Working After Install

  1. Verify the SDK is installed: unosdk list --installed
  2. Check environment variables are set correctly
  3. Open a new terminal to refresh environment variables
  4. Try switching to the SDK version: unosdk switch <sdk-type> <provider> <version>

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Acknowledgments

Special thanks to all the SDK providers for making their distributions available.

FAQ

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.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.


For Contributors

Interested in contributing to UnoSDK? Check out our development guide.

Building from Source

# 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 ./...

Version Management

To update the version, simply edit pkg/version/version.go:

constVersion="1.2.0"// Change this line

Then 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

Dependencies

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made with ❤️ for the developer community

About

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.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages