Why rcli?


macOS x86 (GHA)
Linux (Circle CI)


Having multiple R interpreters installed and switching between such is a tiring task on all major operating systems.


  • Multiple R versions can be installed side-by-side via the official CRAN installer.
  • Switching the default R version is not straightforward.


  • ​Installing multiple R versions is not straightforward and requires some command line skills. In addition one can only install one patch release (e.g. 4.1.1) of an R minor version branch (e.g. 4.1) due to limitatations of Apple's framework anatomy.
  • For a long time, switching between versions was supported via the third-party tool rswitch. Though switching between different patch releases of a minor release is not supported.
  • Library management on macOS differs compared to Linux and Windows as users on macOS are often allowed to write into the system library. This is due to their membership in the admin group, which every administrator of Mac is automatically a member of.


  • On Linux, users mostly depend on how quickly their distribution moves forward with respect to the shipped R version. If one wants to make use of additional R versions, these need to be compiled from source into a custom directory.
  • Switching the default R versions is not straightforward.
Applications like RStudio Workbench make switching between R versions easier. However, they require a paid license and an IT team which is motivated to install and maintain multiple R versions.
Since the creation of the R package renv, more and more users aim to make their analyses reproducible. Besides the idea to easily track and reuse the required R package versions, the goal of a reproducible workflow also includes using the R version which was initially used within the project. However, in practice, people are often forced to use a different R version as their current R version does not necessarily match the R version of the project and installing/switching to such is non-trivial.
rcli aims to solve the issues described above by providing
  • a unified way to install any R version on any major operating system
  • a simplified way to switch between different installed R versions
If this project saved you some time and you like to acknowledge this free and open-source initiative, you can sponsor me the
of my next 💻️ session here:
Last modified 8mo ago