CliGet has nice defaults, favors convention over configuration, and does its best to "guess" how to get current version number, get last version number, download last release and install it properly.
Tools developers / maintainers are not supposed to know CliGet exists. It adapts to the way they deliver their software. Of course if they use GitHub release and TGZ, it's easier for Cliget to manage :')
But this power comes with some constraints : a plugin has to be developed in order to integrate a new tool to asdf ; And versions of every tool that will be used for a project has to be declared in a config file.
In short, if you want to manage development environment, use asfd. If you want to install small tools, use CliGet. They do not conflict, they are complement each other.
#### I already use the package manager of my OS to install tools, why would I need cliget ?
Package managers handle dependencies and install software system wide, for all users. Not all softwares are packaged for all OS distributions because this is hard work for maintainers. So you end up with some softwares not available or not up to date.
CliGet only install standalone programs, in the user profile (`.local/bin`). It does its best to find the last version and the best way to install the software. The is no need to package for CliGet.
#### I already use Flatpack, AppImage, Snap to install tools in my profile, why would I need CliGet ?
These are package managers for the user profile. They come with heavy runtime. And, as classic package manager, not all tools are packaged nor up to date as it requires work from maintainers.
Currently only Linux is supported. It should work on all Unix like OS. For others, contributions are welcome as long as they do not complicate the tool too much.
# references
* adfs
* webinstall
* [has](https://github.com/kdabir/has), check versions of commands
* [nvchecker](https://github.com/kdabir/has), for checking if a new version of some software has been released.