Skip to content

Download the appropriate Hugo executable for your platform from Github and try to copy it to a system directory so blogdown can run the hugo command to build a site.


  version = "latest",
  extended = TRUE,
  arch = "auto",
  os = "auto",
  force = FALSE,




The Hugo version number, e.g., 0.26; the special value latest means the latest version (fetched from Github releases). Alternatively, this argument can take a file path of the zip archive or tarball of the Hugo installer that has already been downloaded from Github, in which case it will not be downloaded again.


Whether to use extended version of Hugo that has SCSS/SASS support. You only need the extended version if you want to edit SCSS/SASS. Note that this feature is not available to Hugo version lower than v0.43. It also requires a 64-bit system; if the system is based on the ARM architecture, only macOS is supported at the moment.

arch, os

The architecture and operating system name. These arguments, along with version and extended, determines the filename of the Hugo installer. See for all of Hugo's installers. By default, the argument values are automatically detected. In case the detection should fail, you can provide the values manually, e.g., extended = FALSE, arch = 'ARM64', and os = 'FreeBSD' would install hugo_*_FreeBSD-ARM.tar.gz.


Whether to reinstall Hugo if the specified version has been installed.




This function tries to install Hugo to Sys.getenv('APPDATA') on Windows, ~/Library/Application Support on macOS, and ~/.local/share on other platforms (such as Linux). The hugo executable is installed to a subdirectory with the Hugo version number being its name, e.g., ~/Library/Application Support/Hugo/0.76.5. If these directories are not writable, the R package directory Hugo of blogdown will be used. If it still fails, you have to install Hugo by yourself and make sure it can be found via the environment variable PATH.

This is just a helper function and may fail to choose the correct Hugo executable for your operating system, especially if you are not on Windows or macOS or a major Linux distribution. When in doubt, read the Hugo documentation and install it by yourself:

If you want to install Hugo to a custom path, you can set the global option blogdown.hugo.dir to a directory to store the Hugo executable before you call install_hugo(), e.g., options(blogdown.hugo.dir = '~/Downloads/Hugo'). This may be useful for you to use a specific version of Hugo for a specific website. You can set this option per project. See Section 1.4 Global options for details, or store a copy of Hugo on a USB Flash drive along with your website.


For macOS users, you are not recommended to install Hugo via Homebrew, because you may accidentally update it to the latest version, which might break your existing sites.

See also

remove_hugo() to remove Hugo.