hledger

easy, dependable
plain text accounting

hledger is free cross-platform accounting software for both power users and folks new to accounting. It's good for tracking money, time, investments, cryptocurrencies, inventory and more, with high accuracy, flexibility and privacy. It is a more actively maintained, largely compatible reimplementation of Ledger CLI, with a particular focus on ease of use and robustness.

Quick links: FAQ, install, getting started, manual, support, sponsors, github

A command-line tool (CLI). Transactions are stored in a journal file which you can edit with a text editor. From this hledger produces various reports, without changing your data.

A live-updating terminal interface (TUI), that lets you review account balances and transactions quickly. (screencast)

A zero-setup web interface (WUI), allowing terminal-free, point-and-click usage. Run it privately on your local machine, or on a server to collaborate with others. (demo).

A haskell library. You can write scripts, add-on commands, or financial applications as powerful as hledger itself.

Plain text what now ?

hledger is a Plain Text Accounting system, where your accounting data is stored in a readable plain text file, often version-controlled. Some strengths of the PTA approach:

  • Runs on your local computer, keeping your financial data private and under your control
  • Simple model of operation: put a log of transactions in, get reports out
  • Simple, expressive, human-readable, future-proof plain text format
  • Can be version controlled, eg with Git, to safeguard your data, track changes, or collaborate
  • Edit with your favourite text editor, or a data entry UI, or import from other formats
  • Easy to script, automate, and integrate into custom workflows
  • Lightweight, fast, non-distracting to use
  • Great for learning more of double-entry bookkeeping and accounting.

Easy, you say ?

Well - depending on your experience, hledger or Plain Text Accounting may or may not seem easy at first encounter. (It may just be that our intro docs aren't good enough yet; we're working on that.)

But certainly within its scope of Plain Text Accounting, hledger aims to be intuitive, learnable and highly usable, taking only the best from other PTA tools and leaving the rest. Here are some things it provides out of the box:

Dependable ?

hledger strives to be comfortable to use, to be absolutely reliable, to provide real-world value, and to never waste your time. It provides:

  • Robust installation: multiple options are provided for binary and source installation. Building from source is reliable and consistent across platforms.

  • Robust execution: hledger is written in Haskell, a modern, highly-regarded programming language. Runtime failures are minimised by Haskell's memory management and strong compile-time type checking. Failures caused by user input are reported clearly and promptly.

  • Robust testing: The software is continually tested by extensive automated tests.

  • Robust features: built-in commands and options combine well with one another, and are expected to do something sensible in all cases, with all kinds of input.

  • Robust calculation: results are expected to always perfectly match what you would calculate on paper, up to 255 decimal places.

  • Robust parsing: dated items, such as balance assertions and balance assignments, are processed in date order. Assertions/assignments with the same date are processed in parse order. Multiple assertions/assignments within a single transaction work as you would expect.

  • Robust reporting: reports are deterministic and not affected by the order of input files or data items except where that is part of their spec.

  • Robust documentation: all functionality is documented precisely, with a mnemonic permalink. User manuals for your hledger version are available online, and built in for offline viewing. General and command-specific command line help is provided. We favour documentation-driven development.

Compatible

hledger is a rewrite of the pioneering Ledger CLI, aiming to build out the same core features to a higher level of quality, and to add new ones making it useful to more people. Ledger users will find the file formats and commands familiar, and with a little care can run both tools on the same data files. (You can read more about the origins and differences.)

hledger can read Beancount files, or vice versa, by converting them with the beancount2ledger and ledger2beancount tools.

Many tools exist for importing from other applications. Data can be exported as CSV, JSON or basic SQL.

Free Software

github hledger CI on hackage

hledger is free software, with no purchase price or monthly fees. It is licensed under GNU GPLv3, providing the strongest guarantee that you will always have the right to run, inspect, modify, or share it. It is actively maintained, with regular releases and a large chat room and other support resources.

Limitations

What are some current limitations of hledger and Plain Text Accounting ?

  • The "GUIs" are minimalist; there is no rich GUI competitive with Quicken or GNUCash.

  • As a beginner you might feel there's too much choice, too much to read, yet not enough clear opinionated guidance. (We're working on it. A request in the chat will produce quick help.)

  • hledger is fast, but not yet as fast as Ledger.

Where to next ?

Next, you could:

But wait...

hledger is brought to you by Simon Michael and 140+ contributors. I have been building and relying on this project continuously since 2007. I hope you too will find it useful in transforming your relationship with time and money. When you have achieved some success, please consider joining the sponsors to support the project. Thanks!