hledger.org

Download

Here are the ways to install hledger, organised by platform, with the usually most up-to-date methods at the top.

( hledger's usual release window is the first day or two of the month. Please send updates for this page, and help packagers keep packages up to date. Click the version badges on the right for package/contact info. )

Latest release is 1.14.2
Release notes

Multiplatform

The first three (and occasionally the fourth) build from source, which is slower. See Building from source.

This method installs:
hledger-install.sh
Linux, Mac, WSL
Requires only bash.
curl -sO https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh
less hledger-install.sh    # satisfy yourself that the script is safe
bash hledger-install.sh
Latest release
cabal
Linux, Mac, Windows*
cabal v2-update && cabal v2-install hledger-1.14.2 hledger-web-1.14.1 hledger-ui-1.14.2 Latest release
stack
Linux, Mac, Windows*
stack install --resolver=nightly-2019-03-21 hledger hledger-web hledger-ui Latest release
Nix
Linux, Mac
nix-env -i -f https://github.com/NixOS/nixpkgs/archive/9c74e2.tar.gz -A hledger hledger-web hledger-ui Latest release
Docker
Linux, Mac, Windows
docker pull dastapov/hledger
more..
Homebrew
Linux, Mac, Windows
brew install hledger Homebrew

Windows
Windows binaries hledger.zip from Appveyor CI

GNU/Linux
Arch pacman -S hledger hledger-ui hledger-web Arch
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
more..
Ubuntu sudo apt install hledger hledger-ui hledger-web Ubuntu 19.04
Ubuntu 18.10
Ubuntu 18.04
Ubuntu 16.04
Ubuntu 14.04
more..
Fedora sudo dnf install hledger Fedora Rawhide
Fedora 30
Fedora 29
Fedora 28
Fedora 27
more..
Void xbps-install -S hledger hledger-ui hledger-web Void Linux x86_64

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

Other
Sandstorm
Community/private cloud platform
HLedger Web app

Building from source

Building hledger from source takes a bit longer than using a prebuilt package, but you can be sure of getting the latest release (or the latest dev version).

Below are three ways to build hledger. But first, some general tips:

Building with hledger-install.sh

If you don't already have stack or cabal, or if you are having trouble with them, hledger-install.sh is an easy and reliable way to get the latest hledger, on systems which have the bash shell (and are supported by GHC: mac, linux, unix-like environments on windows..). It automates the installation of stack or cabal and then building the hledger tools, avoiding common pitfalls. Here's how to run it (or, some folks will prefer to pipe it directly into bash):

curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh > hledger-install.sh
less hledger-install.sh # satisfy yourself that the script is safe
bash hledger-install.sh

Building with stack

stack is the more reliable of Haskell's two build tools for new users. You need stack 1.7.1 or newer; the latest release (eg 1.9.3) is the most reliable. You can often run stack upgrade to upgrade it. 64-bit Windows users should choose the 64-bit version of stack. The following command installs the main hledger packages;

stack install --resolver=nightly-2019-03-21 hledger hledger-web hledger-ui

If needed, you can save some time by omitting the hledger-web and hledger-ui packages (and hledger-ui's extra dependencies: brick, text-zipper, config-ini etc.) On Windows, hledger-ui is not available. To estimate the build time remaining, add --dry-run.

Some other add-on tools like hledger-api, hledger-iadd, and hledger-interest can be installed like so:

stack install --resolver=nightly-2019-03-21 hledger-api hledger-interest hledger-iadd

Building with cabal

cabal is the other Haskell build tool. If you're a cabal expert, use it in the usual way, eg:

cabal v2-update
cabal v2-install hledger-1.14.2 hledger-ui-1.14.2 hledger-web-1.14.1 hledger-api-1.14 \
  hledger-iadd-1.3.9 hledger-interest-1.5.3

Set up PATH

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, to preempt older hledger system packages you may have installed). 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

You should now 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
./build.sh

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.