Download

A. I want to download a packaged version

Packaged versions are the quickest to install, but they sometimes lag behind the latest release, or provide only some of the hledger tools. (Packagers welcome!)

Windows: Download and run the latest development builds (-> Appveyor CI)
Mac: brew install hledger
Debian, Ubuntu: sudo apt install hledger hledger-ui hledger-web
Fedora, RHEL: sudo dnf install hledger
Gentoo: sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web
NixOS: nix-env -iA nixpkgs.haskellPackages.hledger \
  nixpkgs.haskellPackages.hledger-ui \
  nixpkgs.haskellPackages.hledger-web
Sandstorm: hledger-web Sandstorm app -> demo
(your own fully-functional private/public hledger-web instance in 3 clicks)

B. I want to build the latest release

The latest release (see release notes) is a good choice. You have to build it, but that's pretty easy.

  1. Install stack. On Windows, the 64-bit version is recommended. On Arch, you may need to also install GHC manually.
    (If you're a cabal expert, feel free to use that instead, adapting these instructions appropriately.)

  2. stack install --resolver=nightly hledger [hledger-ui] [hledger-web] [hledger-api]
    Note you don't type the square brackets; they mean "this bit is optional". So eg if you don't care about the web tools, you would type stack install --resolver=nightly hledger hledger-ui
    On Windows, hledger-ui is not yet available.
    If stack says you need to run stack setup, do that first.
    Warnings about "No packages found in snapshot which provide a "hsc2hs" executable" can be ignored.
    If required C libraries (like curses) are not installed, you might need to install those manually and try again, eg:

    Debian, Ubuntu: sudo apt install libncurses5-dev
    Fedora, RHEL: sudo dnf install ncurses-devel
  3. If stack warns that ~/.local/bin (or the Windows equivalent) is not in $PATH, fix that. Eg if you're a bash user:
    echo "export PATH=$PATH:~/.local/bin" >> ~/.bashrc && source ~/.bashrc
    Now you can run hledger --version, hledger-ui --version etc.

C. I want to build the development version

The dev version includes not-yet-released features and is stable enough for daily use.

  1. Install stack (see above) and git
  2. git clone http://code.hledger.org hledger
  3. cd hledger
  4. stack install
    with the same caveats as mentioned above:

    • if stack says you need to run stack setup, do that first,
    • if building fails due to missing C libs, install those first
    • if stack warns that ~/.local/bin (or the Windows equivalent) is not in $PATH, fix that
    • warnings about "No packages found in snapshot which provide a hsc2hs executable" can be ignored

Cabal users can use the cabal-install.sh or cabal.project files instead.

D. I want to install all add-on commands

Some experimental commands are not built in to hledger, but included in the source as add-on commands, such as:
chart, check-dates, check-dupes, equity, print-unique, register-match, rewrite.

To install these and make them available in hledger's commands list:

  1. Install stack and git (see above)
  2. git clone http://code.hledger.org hledger (as above)
  3. cd hledger
  4. bin/compile.sh (optional, makes them start faster)
  5. add the hledger bin/ directory to your $PATH

There is also a hledger-autosync symbolic link showing how to make the ledger-autosync tool available as a hledger command.

Other commands are published as separate packages:
hledger-diff, hledger-iadd, hledger-interest, hledger-irr.

Some are available in Stackage and can be installed with stack as in B above:

stack install --resolver nightly hledger-iadd hledger-interest

Others are available only on Hackage, so you must specify the Hackage version number. Eg:

stack install hledger-diff-0.2.0.7 hledger-irr-0.1.1.10