awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
sdkman avatar

sdkman/sdkman-cli

0
View on GitHub↗
6,791 stars·644 forks·Shell·Apache-2.0·27 viewssdkman.io↗

Sdkman Cli

SDKMAN is a command-line utility for installing, tracking, and managing multiple versions of software development kits on Unix systems. It functions as a software installer and environment manager that automates the downloading and configuration of development tools for Linux and macOS.

The tool enables the installation of parallel SDK versions on a single system and provides the capability to toggle between them to change the active environment for a shell session. It specifically facilitates the setup of Java development environments, including the management of various Java Development Kit versions.

The system manages software lifecycles by utilizing remote manifests for version metadata and employing symbolic links and environment variable modifications to handle version switching.

Features

  • Shell Environment Managers - Provides a shell-based utility to maintain separate development environments by toggling active SDK versions for the current session.
  • Path-Based Version Switchers - Manages active software versions by dynamically modifying the system PATH environment variable.
  • Runtime Version Switching - Toggles between installed versions of a software development kit to change the active environment for the current shell session.
  • Version Managers - Provides capabilities for installing, removing, and listing multiple versions of software development kits on Unix systems.
  • Manifest-Driven Installations - Fetches version metadata and installation URLs from remote JSON-like configuration manifests to update available packages.
  • Java Environments - Configures the necessary build tools and runtimes for Java projects through a single command line interface.
  • Version Managers - Installs and switches between different Java Development Kit versions to support projects with varying runtime requirements.
  • Symlink-Based Version Switching - Updates a single pointer link to a specific version folder to change the active SDK for the current user.
  • Installation Automation Tools - Automates the downloading and configuration of development kits and tools on Linux and macOS.
  • Local SDK Versioning - Stores downloaded SDKs in a hidden home directory hierarchy separated by candidate name and version number.
  • Toolchain Lifecycle Management - Manages the installation and lifecycle of various development kits and tools across different shell sessions.
  • Shells & Scripting - Executes all logic via a Bourne-compatible shell script to ensure compatibility across diverse Unix-like environments.
  • Multi-Version Installations - Maintains multiple versions of software development kits on a single Unix system without creating version conflicts.
  • Version Managers - Java version manager for UNIX-based platforms and Windows.

Star history

Star history chart for sdkman/sdkman-cliStar history chart for sdkman/sdkman-cli

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does sdkman/sdkman-cli do?

SDKMAN is a command-line utility for installing, tracking, and managing multiple versions of software development kits on Unix systems. It functions as a software installer and environment manager that automates the downloading and configuration of development tools for Linux and macOS.

What are the main features of sdkman/sdkman-cli?

The main features of sdkman/sdkman-cli are: Shell Environment Managers, Path-Based Version Switchers, Runtime Version Switching, Version Managers, Manifest-Driven Installations, Java Environments, Symlink-Based Version Switching, Installation Automation Tools.

Which projects share features with sdkman/sdkman-cli?

Projects with overlapping indexed features include: version-fox/vfox — Vfox is a command-line utility designed to manage multiple programming language runtimes and development tools on a… rbenv/rbenv — rbenv is a Ruby version manager and shell environment manager designed to install, switch between, and manage multiple… moovweb/gvm — Gvm is a Go version manager, environment orchestrator, and dependency isolator. It provides a system for installing,… volta-cli/volta — Volta is a cross-platform toolchain orchestrator and JavaScript toolchain manager. It functions as a version manager… sstephenson/rbenv — rbenv is a Ruby version manager and shell shim environment manager. It allows for the installation of multiple Ruby… creationix/nvm — nvm is a Node.js version manager implemented as a POSIX bash script. It serves as a shell environment manager and…

Projects sharing features with Sdkman Cli

These projects share indexed features with Sdkman Cli. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • version-fox/vfoxversion-fox avatar

    version-fox/vfox

    3,910View on GitHub↗

    Vfox is a command-line utility designed to manage multiple programming language runtimes and development tools on a single machine. It provides a unified interface for installing, switching, and configuring software versions across different operating systems, ensuring consistent development environments. The project distinguishes itself through a modular, plugin-based architecture that allows for the integration of diverse language runtimes and utilities beyond built-in defaults. It utilizes a combination of shim-based execution, symlink management, and dynamic shell-hook environment injecti

    Goasdfbashcli
    View on GitHub↗3,910
  • rbenv/rbenvrbenv avatar

    rbenv/rbenv

    16,710View on GitHub↗

    rbenv is a Ruby version manager and shell environment manager designed to install, switch between, and manage multiple versions of the Ruby programming language. It functions as a project runtime isolator and an extensible versioning framework that ensures the correct Ruby binaries are executed based on the current context. The system uses a shim-based command interception model to resolve the active version before delegating execution to the binary. It allows for locking specific Ruby versions and environment variables to individual directories, ensuring project environment isolation. The ar

    Shellbashrubyruby-installation
    View on GitHub↗16,710
  • moovweb/gvmmoovweb avatar

    moovweb/gvm

    11,645View on GitHub↗

    Gvm is a Go version manager, environment orchestrator, and dependency isolator. It provides a system for installing, removing, and switching between different versions of the Go programming language on a single machine. The tool manages native dependencies and creates isolated package sets to prevent version conflicts between different project environments. It uses environment variable overlays and directory isolation to link native code without modifying the host operating system. The software covers the full language lifecycle, including remote version cataloging, active version switching,

    Shelldependency-managergolang
    View on GitHub↗11,645
  • volta-cli/voltavolta-cli avatar

    volta-cli/volta

    13,009View on GitHub↗

    Volta is a cross-platform toolchain orchestrator and JavaScript toolchain manager. It functions as a version manager for Node.js and related package managers, allowing for the installation and coordination of multiple runtimes across a system. The project operates as a project-based version switcher, automatically detecting and switching to the required tool versions based on the current directory. This ensures environment consistency across different developer machines by resolving versions through project configuration.

    Rustnodenodejspackage-manager
    View on GitHub↗13,009
Compare all 30 related projects→