Welcome to R-universe!

We are now running a pilot allowing anyone to add custom (non-cran) packages to their universe!

# Install 'magick' from 'ropensci' universe
install.packages('magick', repos = 'https://ropensci.r-universe.dev')

# Install 'curl' from 'jeroen' universe
install.packages('curl', repos = 'https://jeroen.r-universe.dev')

Or enable a universe globally:

# Enable multiple universes
options(repos = c(
    ropensci = 'https://ropensci.r-universe.dev',
    jeroen = 'https://jeroen.r-universe.dev',
    cran = 'https://cran.r-project.org'))

# Update some packages
install.packages(c("magick", "openssl", "pdftools", "drake"))

Package source code for all universes is tracked on https://github.com/r-universe.

Enable your personal universe

To setup a universe for your own GitHub user or organization:

  1. Create a repository called universe on the GitHub account for which you want to create a universe. The repository must contain a file called packages.json in the standard format, defining the package and git url for the packages you want to include. For example: https://github.com/maelle/universe. Start by adding no more than a few packages, you can add more later.
  2. Install the r-universe app on the GitHub account that you want to enable. Choose "enable for all repositories".
  3. After a few minutes, your source universe will appear on: https://github.com/r-universe/:yourname
  4. The universe automatically starts building the packages from your registry. In addition, it will include packages that referenced as Remotes in the description file of one of those packages.
  5. The universe automatically syncs and builds your package git repos once per hour.
  6. If you encounter any issues, the actions tab in your source universe may show what is going on, for example: https://github.com/r-universe/maelle/actions


  • How do I change my maintainer picture?They are taken from your GitHub profile. If no picture shows up, you need to register the email address that you use as R package maintainer in your github settings.
  • How do I get my package logo shown in the packages tab?We use the same conventions as pkgdown to find a logo for the package. It either needs to be in one of the locations checked by pkgdown:::find_logo() or set as an opengraph image in your _pkgdown.yml.
  • How do I add my packages to r-universe?Install the app on the GitHub accounts that contain your R packages. The system will automatically start adding existing CRAN packages that contain a link to a GitHub repo in the package description URL or BugReports field.
  • Can I customize the package build process with custom options/tools/variables?No. Think of R-universe more like your own mini-CRAN. The build environment is very similar to that of CRAN, if the package can build on CRAN, it will probably work on r-universe.
  • How do I fix vignettes/articles which require custom software/tokens to render?The best solution is to precompute these vignettes on your local machine.
  • Are packages on r-universe required to pass CMD check?No. The system just builds and deploys your R packages from git into your personal universe. You are responsible for your own quality control.