{"id":48630674,"url":"https://github.com/javaquery/unosdk","last_synced_at":"2026-04-09T05:01:53.365Z","repository":{"id":336458103,"uuid":"1149680911","full_name":"javaquery/unosdk","owner":"javaquery","description":"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.","archived":false,"fork":false,"pushed_at":"2026-03-22T17:53:57.000Z","size":145,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-23T08:29:12.111Z","etag":null,"topics":["c","cpp","flutter","go","golang","gradle","installer","java","jdk","maven","node","nodejs","python","sdkman","windows"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javaquery.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"javaquery"}},"created_at":"2026-02-04T11:51:39.000Z","updated_at":"2026-03-22T17:52:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/javaquery/unosdk","commit_stats":null,"previous_names":["javaquery/unosdk"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/javaquery/unosdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaquery%2Funosdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaquery%2Funosdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaquery%2Funosdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaquery%2Funosdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javaquery","download_url":"https://codeload.github.com/javaquery/unosdk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaquery%2Funosdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31586410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cpp","flutter","go","golang","gradle","installer","java","jdk","maven","node","nodejs","python","sdkman","windows"],"created_at":"2026-04-09T05:01:52.664Z","updated_at":"2026-04-09T05:01:53.357Z","avatar_url":"https://github.com/javaquery.png","language":"Go","funding_links":["https://github.com/sponsors/javaquery"],"categories":[],"sub_categories":[],"readme":"# UnoSDK\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"logo.svg\" alt=\"UnoSDK Logo\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n**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.\n\n[![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8?style=flat\u0026logo=go)](https://golang.org/)\n[![Release](https://img.shields.io/github/v/release/javaquery/unosdk?style=flat\u0026logo=github)](https://github.com/javaquery/unosdk/releases/latest)\n[![CI](https://github.com/javaquery/unosdk/actions/workflows/ci.yml/badge.svg)](https://github.com/javaquery/unosdk/actions/workflows/ci.yml)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n## Why UnoSDK?\n\nIf you've used [SDKMAN!](https://sdkman.io/) 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.\n\n## Features\n\n- 🚀 **Multi-SDK Support**: Manage Java, Node.js, Python, Flutter, Maven, Gradle, Go, C, and C++ installations from a single tool\n- 🔄 **Version Switching**: Easily switch between different SDK versions\n- 📦 **Multiple Providers**: Support for various distribution providers\n  - Java: Amazon Corretto, OpenJDK, GraalVM\n  - Node.js: Official Node.js distributions\n  - Python: Official Python distributions\n  - Flutter: Official Flutter SDK\n  - Maven: Apache Maven build tool\n  - Gradle: Gradle build automation tool\n  - Go: Official Go programming language\n  - C: MinGW-w64 (GCC toolchain)\n  - C++: MinGW-w64 (GCC/G++ toolchain)\n- 🔧 **Automatic Environment Setup**: Automatically configures PATH and environment variables\n- 📋 **Registry Management**: Keeps track of all installed SDKs\n- ⚡ **Fast Downloads**: Parallel downloads with progress tracking\n- 🛡️ **Verification**: Ensures download integrity with checksum verification\n\n## Supported SDKs\n\n| SDK Type | Providers | Description |\n|----------|-----------|-------------|\n| Java | Amazon Corretto, OpenJDK, GraalVM | Java Development Kit |\n| Node.js | nodejs | JavaScript runtime environment |\n| Python | python | Python programming language |\n| Flutter | flutter | Flutter SDK for mobile, web, and desktop apps |\n| Maven | apache | Apache Maven build automation tool |\n| Gradle | gradle | Gradle build automation tool |\n| Go | golang | Go programming language |\n| C | mingw | MinGW-w64 GCC toolchain |\n| C++ | mingw | MinGW-w64 GCC/G++ toolchain |\n\n## Installation\n\n### Prerequisites\n\n- Windows OS (Windows 10 or later)\n- PowerShell 5.1 or later\n\n### Quick Installation\n\n**Automated Installation (Recommended):**\n\nOpen PowerShell and run:\n\n```powershell\nirm https://raw.githubusercontent.com/javaquery/unosdk/refs/heads/master/scripts/install.ps1 | iex\n```\n\nThis will automatically:\n- Download the latest release from GitHub\n- Install to `%LOCALAPPDATA%\\unosdk`\n- Add unosdk to your PATH\n- Replace existing installation if present\n\n**To reinstall/update unosdk:**\n\nSimply run the same command again. The script will detect the existing installation and replace it with the latest version.\n\n### Manual Installation\n\n1. Go to the [releases page](https://github.com/javaquery/unosdk/releases)\n2. Download the latest `unosdk.exe` binary for Windows\n3. Move the binary to a permanent location (e.g., `C:\\Program Files\\unosdk\\`)\n4. Add the directory to your system PATH:\n\n```powershell\n# Open PowerShell and run:\n$path = [Environment]::GetEnvironmentVariable('Path', 'User')\n$newPath = $path + ';C:\\Program Files\\unosdk'\n[Environment]::SetEnvironmentVariable('Path', $newPath, 'User')\n```\n\n5. Verify installation:\n\n```powershell\nunosdk version\n```\n\n### Quick Start\n\nAfter installation, you can immediately start using UnoSDK:\n\n```bash\n# List available SDKs\nunosdk list\n\n# Install Java\nunosdk install java amazoncorretto 21\n\n# Install Node.js\nunosdk install node nodejs latest\n```\n\n## Usage\n\n### Basic Commands\n\n```bash\n# Display help\nunosdk --help\n\n# Show version\nunosdk version\n\n# List all available providers and versions\nunosdk list\n\n# List installed SDKs\nunosdk list --installed\n```\n\n### Install SDKs\n\n```bash\n# Install Amazon Corretto Java 21\nunosdk install java amazoncorretto 21\n\n# Install GraalVM\nunosdk install java graalvm 23.1.2\n\n# Install latest Node.js\nunosdk install node nodejs latest\n\n# Install specific Python version\nunosdk install python python 3.11\n\n# Install latest Flutter SDK\nunosdk install flutter flutter latest\n\n# Install specific Flutter version\nunosdk install flutter flutter 3.27.2\n\n# Install Apache Maven\nunosdk install maven apache 3.9.9\n\n# Install specific Maven version\nunosdk install maven apache 3.8.8\n\n# Install Gradle\nunosdk install gradle gradle 8.12\n\n# Install specific Gradle version\nunosdk install gradle gradle 8.10\n\n# Install Go\nunosdk install go golang 1.23.5\n\n# Install specific Go version\nunosdk install go golang 1.22.10\n\n# Install C++ (MinGW-w64)\nunosdk install cpp mingw 15.2.0\n\n# Install specific MinGW version\nunosdk install cpp mingw 14.2.0\n\n# Install C (MinGW-w64)\nunosdk install c mingw 15.2.0\n\n# Install with custom path\nunosdk install java openjdk 17 --path C:\\SDKs\\java\n\n# Skip environment setup\nunosdk install java amazoncorretto 21 --skip-env\n\n# Set as default version\nunosdk install java openjdk 21 --set-default\n```\n\n### Switch Between Versions\n\n```bash\n# Switch to a different Java version\nunosdk switch java openjdk 21\n\n# Switch to a different Node.js version\nunosdk switch node nodejs 20\n\n# Switch to a different Gradle version\nunosdk switch gradle gradle 8.12\n\n# Switch to a different Go version\nunosdk switch go golang 1.23.5\n\n# Switch to a different C++ (MinGW) version\nunosdk switch cpp mingw 15.2.0\n\n# Switch to a different C (MinGW) version\nunosdk switch c mingw 15.2.0\n```\n\n### Uninstall SDKs\n\n```bash\n# Uninstall specific version\nunosdk uninstall java amazoncorretto 21\n\n# Force uninstall (skip confirmation)\nunosdk uninstall java openjdk 17 --force\n```\n\n### Update SDK Registry\n\n```bash\n# Update the list of available SDKs\nunosdk update\n```\n\n## Configuration\n\nUnoSDK automatically manages configuration and keeps track of installed SDKs. All data is stored in:\n\n```\n%USERPROFILE%\\.unosdk\\\n├── config.yaml          # User configuration\n├── registry.json        # Installed SDKs registry\n├── cache/               # Cached SDK metadata\n└── sdks/                # Installed SDKs\n```\n\nBy default, SDKs are installed to `%USERPROFILE%\\.unosdk\\` directory:\n```\nC:\\Users\\\u003cusername\u003e\\.unosdk\\\n├── java\\\n│   ├── amazoncorretto\\\n│   │   ├── 11\\\n│   │   ├── 17\\\n│   │   └── 21\\\n│   └── openjdk\\\n│       └── 21\\\n├── node\\\n│   └── nodejs\\\n│       └── 20\\\n├── python\\\n│   └── python\\\n│       └── 3.11\\\n├── maven\\\n│   └── 3.9.9\\\n├── gradle\\\n│   └── 8.12\\\n├── go\\\n│   └── golang\\\n│       └── 1.23.5\\\n├── c\\\n│   └── mingw\\\n│       └── 15.2.0\\\n│           └── mingw64\\  # Contains bin/ (gcc), include/, lib/, etc.\n└── cpp\\\n    └── mingw\\\n        └── 15.2.0\\\n            └── mingw64\\  # Contains bin/ (g++, gcc), include/, lib/, etc.\n```\n\nFor example, Java Amazon Corretto 11 would be installed at:\n```\nC:\\Users\\\u003cusername\u003e\\.unosdk\\java\\amazoncorretto\\11\n```\n\nYou can customize the installation path using the `--path` flag when installing SDKs.\n\n## Troubleshooting\n\n### Command Not Found\n\nIf you get \"command not found\" after installation, ensure:\n- The directory containing `unosdk.exe` is in your PATH\n- You've opened a new terminal window after modifying PATH\n\n### Permission Denied\n\nRun PowerShell or Command Prompt as Administrator when:\n- Installing SDKs (to set environment variables)\n- Switching between SDK versions\n- First-time setup\n\n### SDK Not Working After Install\n\n1. Verify the SDK is installed: `unosdk list --installed`\n2. Check environment variables are set correctly\n3. Open a new terminal to refresh environment variables\n4. Try switching to the SDK version: `unosdk switch \u003csdk-type\u003e \u003cprovider\u003e \u003cversion\u003e`\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## Acknowledgments\n\nSpecial thanks to all the SDK providers for making their distributions available.\n\n## FAQ\n\n**Q: Do I need to manually configure environment variables?**  \nA: No, UnoSDK automatically configures PATH and other necessary environment variables.\n\n**Q: Can I install multiple versions of the same SDK?**  \nA: Yes, you can install multiple versions and switch between them using `unosdk switch`.\n\n**Q: Where are the SDKs installed?**  \nA: By default in `%USERPROFILE%\\.unosdk\\` (e.g., `C:\\Users\\\u003cusername\u003e\\.unosdk\\java\\amazoncorretto\\11`), but you can specify a custom path with `--path`.\n\n**Q: Is internet connection required?**  \nA: Yes, for downloading SDKs. After installation, SDKs work offline.\n\n**Q: Can I use this alongside other SDK managers?**  \nA: Yes, but be aware of potential PATH conflicts. UnoSDK manages its own installations independently.\n\n## Support\n\n- **Issues**: Report bugs on [GitHub Issues](https://github.com/javaquery/unosdk/issues)\n- **Discussions**: Ask questions in [GitHub Discussions](https://github.com/javaquery/unosdk/discussions)\n- **Documentation**: Visit the [GitHub repository](https://github.com/javaquery/unosdk)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## For Contributors\n\nInterested in contributing to UnoSDK? Check out our development guide.\n\n### Building from Source\n\n```powershell\n# Clone the repository\ngit clone https://github.com/javaquery/unosdk.git\ncd unosdk\n\n# Build the project (requires Go 1.21+)\n.\\scripts\\build.ps1\n\n# Run tests\ngo test ./...\n```\n\n### Version Management\n\nTo update the version, simply edit `pkg/version/version.go`:\n\n```go\nconst Version = \"1.2.0\"  // Change this line\n```\n\nThen build and release:\n\n```powershell\n.\\scripts\\build.ps1\ngit commit -am \"bump version to 1.2.0\"\ngit tag v1.2.0\ngit push origin main --tags\n```\n\n### Dependencies\n\n- [cobra](https://github.com/spf13/cobra) - CLI framework\n- [zap](https://github.com/uber-go/zap) - Structured logging\n- [progressbar](https://github.com/schollz/progressbar) - Terminal progress bars\n- [grab](https://github.com/cavaliergopher/grab) - File downloading\n\n### Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n---\n\n**Made with ❤️ for the developer community**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaquery%2Funosdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavaquery%2Funosdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaquery%2Funosdk/lists"}