Hugo is written in Go with support for multiple platforms.

The latest release can be found at Hugo Releases. We currently provide pre-built binaries for  Windows,  Linux,  FreeBSD and  OS X (Darwin) for x64, i386 and ARM architectures.

Hugo may also be compiled from source wherever the Go compiler tool chain can run, e.g. for other operating systems including DragonFly BSD, OpenBSD, Plan 9 and Solaris. See for the full set of supported combinations of target operating systems and compilation architectures.

Installing Hugo (binary)

Installation is very easy. Simply download the appropriate version for your platform from Hugo Releases. Once downloaded it can be run from anywhere. You don’t need to install it into a global location. This works well for shared hosts and other systems where you don’t have a privileged account.

Ideally, you should install it somewhere in your PATH for easy use. /usr/local/bin is the most probable location.

On macOS, if you have Homebrew, installation is even easier: just run brew install hugo.

For a more detailed explanation follow the corresponding installation guides:

Installing Pygments (optional)

The Hugo executable has one optional external dependency for source code highlighting (Pygments).

If you want to have source code highlighting using the highlight shortcode, you need to install the Python-based Pygments program. The procedure is outlined on the Pygments home page.

Upgrading Hugo

Upgrading Hugo is as easy as downloading and replacing the executable you’ve placed in your PATH.

On macOS, if you have Homebrew, upgrading is even easier: just run brew upgrade hugo.

Installing Hugo on Linux from native packages

Arch Linux

You can install Hugo from the Arch user repository on Arch Linux or derivatives such as Manjaro.

sudo pacman -S yaourt
yaourt -S hugo

Be aware that Hugo is built from source. This means that additional tools like Git and Go will be installed as well.

Debian and Ubuntu

Hugo has been included in Debian and Ubuntu since 2016, and thus installing Hugo is as simple as:

sudo apt install hugo


  • Native Debian/Ubuntu package maintained by Debian Developers
  • Pre-installed bash completion script and man pages for best interactive experience


  • Might not be the latest version, especially if you are using an older stable version (e.g., Ubuntu 16.04 LTS). Until backports and PPA are available, you may consider installing the Hugo snap package to get the latest version of Hugo, as described below.

Fedora, CentOS and Red Hat

See also this discussion.

Snap package for Hugo

In any of the Linux distributions that support snaps:

snap install hugo

Note: Hugo-as-a-snap can write only inside the user’s $HOME directory—and gvfs-mounted directories owned by the user—because of Snaps’ confinement and security model. More information is also available in this related GitHub issue.

Installing from source

Prerequisite tools for downloading and building source code

Vendored Dependencies

Hugo uses govendor to vendor dependencies, but we don’t commit the vendored packages themselves to the Hugo git repository. Therefore, a simple go get is not supported since go get is not vendor-aware. You must use govendor to fetch Hugo’s dependencies.

Fetch from GitHub

go get
govendor get

govendor get will fetch Hugo and all its dependent libraries to $HOME/go/src/, and compile everything into a final hugo (or hugo.exe) executable, which you will find sitting inside $HOME/go/bin/, all ready to go!

Windows users: where you see the $HOME environment variable above, replace it with %USERPROFILE%.

Note: For syntax highlighting using the highlight shortcode, you need to install the Python-based Pygments program.


Please see the contributing guide if you are interested in working with the Hugo source or contributing to the project in any way.