Here are some ways to install hledger - choose one that suits you. And please do let us know or update this page if you have any trouble.

The current hledger release is 1.14.2; here are the release notes.

Binary packages

These prebuilt binaries will install quickly:


Packaged version(s):
Linux, Mac
nix-env -i -f https://github.com/NixOS/nixpkgs/archive/fe41fd.tar.gz -A hledger hledger-web hledger-ui
On Linux, note #1030, #1033
Linux, Mac, Windows
docker pull dastapov/hledger
Linux, Mac, Windows
brew install hledger
Linux, Mac, FreeBSD
Install Wine & use the Windows binary below

Windows binaries hledger.zip from Appveyor CI
or latest dev build may fix Windows 7 #1039

Arch pacman -S hledger hledger-ui hledger-web
Gentoo sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web
Debian sudo apt install hledger hledger-ui hledger-web Debian Unstable
Debian Testing
Debian Stable
Debian Oldstable
Ubuntu sudo apt install hledger hledger-ui hledger-web Ubuntu 19.04
Ubuntu 18.10
Ubuntu 18.04
Ubuntu 16.04
Ubuntu 14.04
Fedora sudo dnf install hledger Fedora Rawhide
Fedora 30
Fedora 29
Fedora 28
Fedora 27
Void xbps-install -S hledger hledger-ui hledger-web Void Linux x86_64

OpenBSD WIP make -C /usr/ports/openbsd-wip/productivity/hledger install openbsd-wip port

Community/private cloud platform
HLedger Web app

Building from source

You can build hledger wherever the Glasgow Haskell Compiler is supported. This can take a while, but it's normally a reliable process. Use one of the methods below to build the current hledger release. The hledger-install script requires only bash and installs the required tools. Or, you can install stack or cabal yourself and deal with them directly.

Linux, Mac, WSL
curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh -O
less hledger-install.sh    # satisfy yourself that the script is safe
bash hledger-install.sh    # runs stack or cabal, installing stack if needed
Linux, Mac, Windows
stack install --resolver=nightly-2019-03-21 hledger hledger-web hledger-ui    # installs GHC if needed.
Linux, Mac, Windows
cabal v2-update && cabal v2-install hledger-1.14.2 hledger-web-1.14.1 hledger-ui-1.14.2

On Windows, hledger-ui is not available and should be omitted from the commands above (except, it probably works in WSL).

Resource usage

Building Haskell programs typically involves downloading and compiling and optimising a lot of Haskell libraries. If you are doing it for the first time, know that building hledger could take 1-2G of disk, 1-2G of free memory, and up to an hour (though usually it's much less). It's fine to kill a build and restart it later; and your later builds will be much faster.

If needed, you can save time/memory/disk space by omitting the hledger-web and hledger-ui packages from the stack or cabal commands above. To estimate the build time remaining, add --dry-run.

Using stack

The latest release of stack (eg 1.9.3) will be the most reliable and is recommended. If you have an older version, you can probably run stack upgrade to upgrade it. 1.7.1 is the oldest that will work. On Windows, the 64-bit version of stack is recommended.

C libraries may be required

A few C libraries, like terminfo, are required but not installed by the commands above. When such C libs are missing, the build will fail at the end with a link error such as "/bin/ld.gold: error: cannot find -ltinfo". To solve this, just install the appropriate system package(s) and run the build command again.

These package names vary by platform. If you don't see your platform below, do a web search for the link error message (and send updates for this list):

Debian, Ubuntu: sudo apt install -y libtinfo-dev
Fedora, RHEL: sudo dnf install -y gmp-devel ncurses-devel

Platform-specific build issues

Here are some known build issues and workarounds on certain platforms:

nix: nix install on linux can fail with "cloning builder process: Operation not permitted"
nix: on Linux, nix-installed hledger won't handle non-ascii data
windows: hledger-web fails to start on Windows 7
windows: hledger-ui is not available
windows: build hangs using GHC 8.6.3
windows: cross-environment non-ascii display issues
arch: haskell build advice from Arch wiki
arch: No information found for ghc-8.4.2
freebsd 12: no cabal file found
openbsd 6: exec permission denied
openbsd: how to get stack

Setting $PATH may be required

After building you may see a message about where the executables were installed. After installation, make sure this install directory is configured in your shell's $PATH (preferably near the start of it, in case you have older hledger binaries lying around). The install directory is:

on non-Windows systems on Windows
If stack was used $HOME/.local/bin %APPDATA%\local\bin (eg C:\Users\Joe\AppData\Roaming\local\bin)
If cabal was used $HOME/.cabal/bin %APPDATA%\cabal\bin

How to configure $PATH is platform- and shell-specific. If you are using bash, this should take care of it:

echo "export PATH=~/.local/bin:~/.cabal/bin:$PATH" >> ~/.bashrc && source ~/.bashrc

Test the installation

After a successful build and install, you should be able to run the hledger tools (whichever ones you installed) and see the expected versions:

$hledger --version
hledger 1.14.2
$hledger-ui --version
hledger-ui 1.14.2
$hledger web --version
hledger-web 1.14.1
$hledger iadd --version
This is hledger-iadd version 1.3.9

And you can check that the unit tests pass (just for fun):

$hledger test
✅ 198 tests passed, no failures! 👍 🎉

Building the development version

The master branch in hledger's git repo is stable enough for daily use, and includes the latest improvements. You'll need git and stack or cabal. This will build and install all of the main hledger tools using stack:

git clone https://github.com/simonmichael/hledger
cd hledger
stack install

cabal users may find the cabal-install.sh or cabal.project files useful.

The --version output of development builds has a .99 suffix meaning "dev". So 1.14.99 means "1.15-dev", the in-development version of 1.15.

Building the development version with docker

You can also build development version in the docker container, which will take care of pulling all the necessary tools and dependencies:

git clone https://github.com/simonmichael/hledger
cd hledger/docker

This will build image tagged hledger with just the latest binaries inside.

If you want to keep all the build artifacts and use the resulting image for hledger development, use build-dev.sh instead.