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 OS X, if you have Homebrew, installation is even easier: just run brew update && 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.

Installing from snap

In any of the Linux distributions that support snaps:

$ snap install hugo

Installing from source

Prerequisite tools for downloading and building source code

Get directly from GitHub

$ export GOPATH=$HOME/go
$ go get -v

go get will then fetch Hugo and all its dependent libraries to your $GOPATH/src directory, and compile everything into the final hugo (or hugo.exe) executable, which you will find sitting in the $GOPATH/bin/ directory, all ready to go!

You may run go get with the -u option to update Hugo’s dependencies:

$ go get -u -v


Please see the contributing guide.