Release notes

2017/3/31 hledger 1.2

new commands list, more powerful balancesheet/incomestatement/cashflow commands, more parseable print output, better --pivot, basic automated postings and periodic transactions support, more and easier addons, bugfixes

Release contributors: Simon Michael, Mykola Orliuk, Justin Le, Peter Simons, Stefano Rodighiero, Moritz Kiefer, Pia Mancini, Bryan Richter, Steven R. Baker, Hans-Peter Deifel, Joshua Chia, Joshua Kehn, Michael Walker.

project | hledger-lib | hledger | hledger-ui | hledger-web | hledger-api

project-wide changes for 1.2


bump stack config to latest lts, bump brick to 0.15.2 to allow hledger-iadd install in hledger dir, update cabal files to latest hpack 0.17.0/stack 1.4 format (#512), use more accurate license tag in Cabal file (Peter Simons).


set up a hledger open collective (, more devguide links to issues with bounties, codefund link, start tracking and publishing project finances (dogfooding!).

Documentation and website

docs page & manual cleanups, begin organising a cookbook, update addons list, move detailed addon docs out of hledger manual, document addons installation, explain print's CSV output, note an issue with balance assertions & multiple -f options, clarify tags, add github stars widget to home and devguide, improve market price docs, ui & web screenshots layout fixes, fix extra whitespace after synopsis in hledger-web text manuals, update accounts directive/budget/rewrite/read-related mockups, drop old org notes.


consolidate extra/ and data/ in examples/, tarsnap csv rules & reporting example, xpensetracker csv rules.


Travis CI now checks functional tests/build warnings/addons, temporary workaround for Appveyor CI failures, remove accidentally committed pandoc executables, some pandoc filter fixes, mailmap file to clean up git log authors, bench.hs cleanup, fix gitignore of generated manuals, avoid excessive rebuilding with make [func]test, run functional tests more verbosely, add alex/happy update step to

hledger-lib 1.2

journal format

A pipe character can optionally be used to delimit payee names in transaction descriptions, for more accurate querying and pivoting by payee. Eg, for a description like payee name | additional notes, the two parts will be accessible as pseudo-fields/tags named payee and note.

Some journal parse errors now show the range of lines involved, not just the first.

ledger format

The experimental ledger: reader based on the WIP ledger4 project has been disabled, reducing build dependencies.


Fix a bug when tying the knot between postings and their parent transaction, reducing memory usage by about 10% (#483) (Mykola Orliuk)

Fix a few spaceleaks (#413) (Moritz Kiefer)

Add Ledger.Parse.Text to package.yaml, fixing a potential build failure.

Allow megaparsec 5.2 (#503)

Rename optserror -> usageError, consolidate with other error functions

hledger 1.2


"hledger" and "hledger -h" now print a better organised commands list and general usage message respectively (#297).

The common reporting flags can now be used anywhere on the command line.

Fixed deduplication of addons in commands list.

Fixed ugly stack traces in command line parse error messages.

The -V/--value flag is now a global report flag, so it works with balance, print, register, balancesheet, incomestatement, cashflow, etc. (Justin Le)

The --pivot global reporting option replaces all account names with the value of some other field or tag. It has been improved, eg:

options cleanups


Easier installation: move add-ons and example scripts to bin/, convert to stack scripts, add a build script to install all deps, add some functional tests, test add-ons with Travis CI, add installation docs to download page.

Improved docs: all addons now contain their own documentation. Most of them (all but hledger-budget) use a new reduced-boilerplate declaration format and can show short (-h) and long (--help) command line help. (Long help is declared with pre and postambles to the generated options help, short help is that truncated at the start of the hledger common flags.)

hledger now shows a cleaner list of addon commands, showing only the compiled version of an addon when both source and compiled versions are in $PATH. (Addons with .exe extension or no extension are considered compiled. Modification time is not checked, ie, an old compiled addon will override a newer source version. If there are three or more versions of an addon, all are shown. )

New addons added/included:

The equity command now always generates a valid journal transaction, handles prices better, and adds balance assertions (Mykola Orliuk).

The rewrite command is more robust and powerful (Mykola Orliuk):


A new --pretty-tables option uses unicode characters for rendering table borders in multicolumn reports (#522) (Moritz Kiefer)


These commands are now more powerful, able to show multicolumn reports and generally having the same features as the balance command. (Justin Le)

balancesheet has always ignored a begin date specified with a -b or -p option; now it also ignores a begin date specified with a date: query. (Related discussion at #531)


The output of print is now always a valid journal (fixes #465) (Mykola Orliuk).

print now tries to preserves the format of implicit/explicit balancing amounts and prices, by default. To print with all amounts explicit, use the new --explicit/-x flag (fixes #442). (Mykola Orliuk)

Don't lose the commodity of zero amounts/zero balance assertions (fixes #475) (Mykola Orliuk)


Fix a regression in the readability of option parsing errors (#478) (Hans-Peter Deifel)

Fix an example in Cli/Main.hs (Steven R. Baker)

Allow megaparsec 5.2 (#503)

hledger-ui 1.2

Fix a pattern match failure when pressing E on the transaction screen (fixes #508)

Accounts with ? in name had empty registers (fixes #498) (Bryan Richter)

Allow brick 0.16 (Joshua Chia) and brick 0.17/vty 0.15 (Peter Simons)

Allow megaparsec 5.2 (fixes #503)

Allow text-zipper 0.10

hledger-web 1.2

Accounts with ? in name had empty registers (fixes #498) (Bryan Richter)

Allow megaparsec 5.2 (fixes #503)

2016/12/31 hledger 1.1

more robust file format detection, integration of WIP ledger4 parser, balance assignments, hledger-ui --watch, hledger-iadd integration, bugfixes

Release contributors: Simon Michael, Johannes Gerer, Mykola Orliuk, Shubham Lagwankar.

project-wide | hledger-lib | hledger | hledger-ui | hledger-web | hledger-api

project-wide changes for 1.1


hledger-lib 1.1

journal format

ledger format


hledger 1.1



hledger-ui 1.1

hledger-web 1.1

hledger-api 1.1

2016/10/26 hledger 1.0

More hledger-ui features, better hledger-web layout, new hledger-api server, new timedot format, --pivot & --anon, reorganized multi-format docs, built-in help. (announcement)

Release contributors: Simon Michael, Dominik Süß, Thomas R. Koll, Moritz Kiefer, jungle-boogie, Sergei Trofimovich, Malte Brandy, Sam Doshi, Mitchell Rosen, Hans-Peter Deifel, Brian Scott, and Andrew Jones.

project-wide | hledger-lib | hledger | hledger-ui | hledger-web | hledger-api

project-wide changes for 1.0




hledger-lib 1.0

timedot format

timeclock format

csv format

journal format


hledger 1.0







hledger-ui 1.0

accounts screen

register screen


hledger-web 1.0



hledger-api 1.0


2015/10/30 hledger 0.27

New curses-style interface, market value reporting, wide characters, fast regex aliases, man pages (announcement)

Release contributors: Simon Michael, Carlos Lopez-Camey.

hledger 0.27:

Account aliases:


Journal format:

Command-line interface:





hledger-ui 0.27:

hledger-web 0.27:

2015/7/12 hledger 0.26

Website & doc updates, account aliases, misc. bugfixes & cleanups, performance.

Release contributors: Simon Michael, Imuli, Carlos Lopez-Camey, Kyle Marek-Spartz, Rick Lupton, Simon Hengel.

Changes to & docs:

User-visible changes in hledger since 0.25.1:

Account aliases:

Journal format:

Command-line interface:









User-visible changes in hledger-web since 0.25.1:

2015/4/29 hledger-web 0.25.1

2015/4/29 hledger 0.25.1

2015/4/29 hledger-lib 0.25.1

2015/4/7 hledger 0.25

announcement GHC 7.10 compatibility, terminal width awareness, useful averages and totals columns, and a more robust hledger-web add form.

Release contributors: Simon Michael, Julien Moutinho.

User-visible changes in hledger since 0.24.1:

User-visible changes in hledger-web since 0.24.1:

2015/3/15 hledger 0.24.1

2015/3/15 hledger-lib 0.24.1

2015/1/10 hledger-web 0.24.1

2014/12/25 hledger 0.24

Release contributors: Simon Michael, Julien Moutinho, Ryan Desfosses, Gergely Risko, Gwern Branwen.

CSV export, a non-floating point number representation, more powerful account aliases, speedups, and a streamlined web UI.

User-visible changes in hledger since 0.23.3:


Journal format:

CSV format:


Account aliases:




User-visible changes in hledger-web since 0.23.3:


Journal view:

Register view:

Add form:


API-ish changes in hledger-lib since 0.23.3:

2014/9/12 hledger-web 0.23.3

2014/9/12 hledger 0.23.3

2014/5/8 hledger 0.23.2

2014/5/7 hledger 0.23.1

2014/5/1 hledger 0.23

announcement command-line fixes and polish, a new accounts command, and a number of changes to the balance command relating to --depth, --flat, and multicolumn mode, which I find has made it much more useful.

Changes since 0.22.2:

Journal format:





balancesheet, cashflow, incomestatement:





2014/5/1 hledger-web 0.23

Changes since 0.22.8:

2014/4/29 hledger-web 0.22.8

2014/4/17 hledger-web 0.22.7

2014/4/16 hledger-web 0.22.6

2014/4/16 hledger 0.22.2

2014/4/15 hledger-web 0.22.5

2014/2/10 hledger-web 0.22.4

2014/2/10 hledger-web 0.22.3

2014/2/10 hledger-web 0.22.2



2014/1/6 hledger 0.22.1

2013/12/13 hledger 0.22





Release contributors:

Marko Kocić, Max Bolingbroke, and a big welcome to first-time committer John Wiegley! :)

2013/7/10 hledger-web 0.21.3

2013/6/23 hledger 0.21.3

2013/6/4 hledger 0.21.2

2013/6/3 hledger 0.21.1

2013/6/1 hledger 0.21

Bugs fixed:

Journal reading:

web command:

Documentation and infrastructure:

2013/5/4 hledger

2013/5/1 hledger 0.20

Bugs fixed:

Journal reading:

CSV reading:


add comand:

register command:

web command:


Documentation and infrastructure:

Release contributors:

2012/11/24 hledger-web 0.19.3

2012/11/16 hledger-web 0.19

2012/11/16 hledger 0.19.1

2012/10/21 hledger 0.19

announcement a much faster balance command, and support for the latest GHC and libs.

2012/7/7 hledger 0.18.2

2012/6/29 hledger 0.18.1

2012/5/29 hledger 0.18


2012/3/3 hledger-web 0.17.1

2012/2/1 hledger 0.17

announcement fixes bugs and updates dependencies

2011/10/26 hledger-web 0.16.5

2011/10/24 hledger-web 0.16.4

2011/10/4 hledger-web 0.16.3

2011/10/4 hledger-web 0.16.2

2011/10/4 hledger 0.16.1

2011/10/1 hledger 0.16

announcement a stability/bugfix/polish release (which may become the pattern for even-numbered releases in future.)

2011/9/12 hledger 0.15.2, hledger-web 0.15.3

2011/9/2 hledger 0.15.1, hledger-web 0.15.2

2011/9/1 hledger 0.15


2011/4/22 hledger 0.14


Release contributors: Simon Michael, Dmitry Astapov, Eric Kow, Max Bolingbroke, Omari Norman. Stats: 137 days, 113 commits, 11 end-user features and 15 end-user bugfixes since last release. 189 unit & functional tests and 59% unit test coverage (hledger, hledger-lib packages). 5540 lines of code (all packages).

2010/12/6 hledger 0.13

announcement readline editing and tab completion from Judah Jacobson, more ledger compatibility, a more robust and installable web interface, bugfixes, and a much-deliberated package split.

2010/9/6 hledger 0.12.1


2010/9/5 hledger 0.12

Stats: 50 days and 90 commits since last release, now at 5741 lines of code with 136 tests and 41% unit test coverage.

2010/07/17 hledger 0.11.1

2010/07/17 hledger 0.11


Stats: 55 days and 136 commits since last release. Now at 5552 lines of code with 132 tests and 54% unit test coverage.

2010/05/23 hledger 0.10

announcement installation and bug fixes and api improvements

Stats: 44 days, 81 commits since last release. Now at 4904 lines of code including tests, 144 tests, 53% coverage.

2010/04/10 hledger 0.9

announcement many bugfixes and small improvements, GHC 6.12 support, and a separate library package to make building (h)ledger-compatible tools easier.

Stats: 58 days, 2 contributors, 102 commits since last release. Now at 3983 lines of non-test code, 139 tests, 53% coverage.

2010/02/11 hledger 0.8

announcement Bug fixes, refactoring and Hi-Res Graphical Charts.

Stats: 62 days, 2 contributors, 76 commits since last release. Now at 3464 lines of non-test code, 97 tests, 53% test coverage.

2009/12/11 hledger 0.7


Stats: 60 days, 1 contributor, 50 commits since last release. Now at 3377 lines of non-test code, 97 tests, 53% test coverage.

2009/06/22 hledger 0.6.1

2009/06/13 hledger 0.6

announcement Some pre-built binaries are now available. cabal install works on gnu/linux, mac and windows. Hurrah!

Release stats:

2009/05/23 hledger 0.5.1

2009/05/23 hledger 0.5


Release stats:

2009/04/03 hledger 0.4

announcement There is also a new website at, with screenshots (textual!), a demo (will it survive!?), and docs (not too many!) ... I wrote it because I did not want to hack on c++ and because haskell seemed a good fit ... new happstack-based web interface.

Release stats:

2009/01/17 hledger 0.3


Release stats:

2008/11/23 hledger 0.2


Release stats:

2008/10/15 hledger 0.1

announcement I'm pleased to announce the first release of hledger, a command-line accounting tool similar to John Wiegley's c++ ledger. hledger generates simple ledger-compatible transaction & account balance reports from a plain text ledger file. It's simple to use, at least for techies. This has been my "learning Haskell" project, but I think it's also useful. It is much less featureful than ledger, and not quite as fast, but it has the virtue of being fun for haskellers to hack on. I am documenting the code, the app is simple, and I'm not too far up the haskell learning curve, so I think other people learning haskell might enjoy a look. It is currently ~1100 lines of haskell excluding tests. My thanks to John Wiegley for help with compatibility and for his very useful ledger tool. I use it (and now, both of them) daily to track time and money. This is of course a hot topic around our planet. I hope you find it useful or intriguing.

Release stats: