_____ _ _
/ ____| (_)
| | | |___ _____ _ __ _ __ ___ __ _ _ __
| | | | \ \ / / _ \ '__| '_ ` _ \ / _` | '_ \
| |____| | |\ V / __/ | | | | | | | (_| | | | |
\_____|_|_| \_/ \___|_| |_| |_| |_|\__,_|_| |_|
A universal runtime manager inspired by asdf, written in Bash. Manage multiple versions of programming languages and developer tools in a simple and efficient way.
- Universal: Manage multiple runtimes (Go, Node.js, Python, Ruby, etc.) with a single tool
- Simple: Intuitive and easy-to-use command-line interface
- Lightweight: Written in pure Bash with no heavy dependencies
- Flexible: Easily switch between runtime versions
Node.js(beta) - JavaScript runtime
Golang- Go programming languagePython- Python programming languageRuby- Ruby programming languageDeno- Secure JavaScript/TypeScript runtimeRust- Systems programming languageJava- Java platform
git clone https://github.com/marcoaurelima/cliverman.git $HOME/.cliverman && cd $HOME/.cliverman && rm -rf .gitAdd the following line to your shell configuration file:
. "${HOME}/.cliverman/config/env.sh"
export PATH="${HOME}/.cliverman/shims:${PATH}"
. "${HOME}/.cliverman/config/config.sh"- Bash:
~/.bashrcor~/.bash_profile - Zsh:
~/.zshrc - Fish:
~/.config/fish/config.fish
After adding, reload the file:
source ~/.bashrc # or source ~/.zshrc depending on your shellcliverman [command] [arguments]# List all available runtimes for installation
cliverman search all
# List all versions for a specific runtime
cliverman search golang
cliverman search nodejs
cliverman search python# List all installed runtimes
cliverman list all
# List installed versions for a specific runtime
cliverman list golang# Install a specific version of a runtime
cliverman install golang:14.17.0
cliverman install python:3.9.5
cliverman install ruby:3.0.0# Set the global active version for a runtime
cliverman use golang:14.17.0
cliverman use python:3.9.5# Uninstall all versions of a runtime
cliverman uninstall golang
# Uninstall a specific version
cliverman uninstall golang:14.17.0# Invoke the runtime-specific clear script to remove shims
# and any cached/current-version metadata for a runtime
cliverman clear nodejs
cliverman clear golang# 1. Search available Go versions
cliverman search golang
# 2. Install Go version 14.17.0
cliverman install golang:14.17.0
# 3. Install Go version 16.13.0
cliverman install golang:16.13.0
# 4. List installed Go versions
cliverman list golang
# 5. Activate version 16.13.0 globally
cliverman use golang:16.13.0
# 6. Check active version
go version
# 7. Uninstall a specific version
cliverman uninstall golang:14.17.0- Bash 4.0 or newer
- curl
- jq
- Nerdfont
~/.cliverman/
βββ installs/ # Installed runtimes
β βββ golang/
β βββ python/
β βββ ruby/
βββ shims/ # Symbolic links to active executables
Contributions are welcome! Feel free to:
- Fork the project
- Create a branch for your feature (
git checkout -b feature/MyFeature) - Commit your changes (
git commit -m 'Add MyFeature') - Push to your branch (
git push origin feature/MyFeature) - Open a Pull Request
- Support more runtimes (Deno, Rust, Java, etc.)
- Per-project configuration (.cliverman-version)
- Shell completion (bash, zsh, fish)
This project is licensed under the MIT License. See LICENSE for details.
Inspired by the excellent project asdf.
Made with β€οΈ in Bash