hledger is a free, open source finance & accounting project written in Haskell and released under GPL-3.0. It has 4,709 GitHub stars, 414 forks and 328 open issues, and was last pushed 4 hours ago. On this registry it ranks #12 of 34 tracked projects in Finance & Accounting, with 5 head-to-head comparisons available. It gained 2 stars over the last 3 tracked days.

What is hledger?

What it is

hledger is lightweight, cross-platform, multi-currency, double-entry accounting software that stores all data in a plain text journal format. It lives in the Plain Text Accounting ecosystem, a community of tools and practices built around the plaintextaccounting.org project, and it is inspired by and partly compatible with Ledger CLI, with Beancount files interconvertible as well. The project is written in Haskell, licensed under GPL-3.0 or later, has been developed since 2007, and offers command-line, terminal, web, mobile, and editor/IDE interfaces.

The concrete problem it solves is that tracking money, investments, cryptocurrencies, invoices, time, and inventory usually requires proprietary software that holds data in opaque formats. hledger keeps that data in a safe, future-proof plain text format with full version control and privacy, so the file itself remains readable, diffable, and portable. It also aims to help both computer experts and regular people gain clarity in their finances and time management, and the documentation notes that using it is an excellent way to learn double-entry accounting.

Key capabilities

  • Double-entry, multi-currency accounting engine that handles any accounting situation and produces precise, clear reports.
  • Plain text journal format with full version control and privacy, keeping data readable and portable.
  • Performance measured at 25,000 transactions per second on a MacBook Air M1, which makes it fast on large journals.
  • Accuracy to 255 decimal places, with support for preferred account names, currencies, and number formats.
  • CSV importing and exporting, plus output in text, HTML, JSON, and SQL.
  • Scriptable through the CLI, over HTTP, or via API, with plenty of examples provided.
  • Multiple user interfaces: command-line, terminal, web, and mobile or editor/IDE integrations.

Who uses it and how

  • People tracking income and spending, sometimes with budgets, using the CLI to run reports such as hledger bs for a balance sheet or hledger is --monthly for an income statement.
  • Time tracking by day, week, month, or project, reported from the same journal that holds financial entries.
  • Freelancers and businesses tracking reimbursables, invoices, and payments, then predicting cashflow and account balances.
  • Users who need accurate numbers for tax filing and who research past events by querying the journal history.
  • Anyone who wants ledger data in a version-controlled file that can be kept private rather than stored in a hosted service.

Getting started

The README states that hledger installs easily on Unix, Mac, or Windows, and the badges point to distribution through Hackage in the Haskell ecosystem as well as distribution

project readme (upstream, from github) — read inline

hledger

Robust, intuitive plain text accounting

license on hackage Open issues, all kinds

Welcome! This is a brief intro to hledger. For a more detailed version, see the home page: ****

hledger is lightweight, cross platform, multi-currency, double-entry accounting software. It lets you track money, investments, cryptocurrencies, invoices, time, inventory and more, in a safe, future-proof plain text data format with full version control and privacy.

hledger aims to help both computer experts and regular folks gain clarity in their finances and time management. Though the UIs are basic, hledger can model any accounting situation and provide precise, clear reports. It is reliable, quick, and backed by the highly supportive Plain Text Accounting ecosystem. Using it is an excellent way to learn double entry accounting.

Compared to other PTA apps, hledger is actively maintained, with regular releases, and a strong focus on being easy to use and practical for everyday accounting.

More features:

  • Installs easily on unix, mac or windows
  • Complete, built-in documentation in multiple formats, beginner videos, tutorials etc.
  • Multiple UIs: command-line, terminal, web, mobile, editors/IDEs
  • Good at importing and exporting CSV; also outputs text/HTML/JSON/SQL
  • A robust, general, well-specified multi-currency accounting engine
  • Fast, analysing 25k transactions per second on a macbook air m1
  • Accurate to 255 decimal places
  • Supports your preferred account names, currencies, number formats
  • Inspired by and partly compatible with Ledger CLI; interconvertible with Beancount
  • Scriptable by CLI, HTTP or API, with plenty of examples
  • Clean Haskell codebase, continually improved since 2007, with $100 regression bounties
  • Free software licensed under GNU General Public License v3.0 or later.

Examples

I use hledger to:

  • track income and spending, sometimes with budgets
  • see time reports by day/week/month/project
  • track reimbursables, invoices and payments
  • predict cashflow and account balances
  • get accurate numbers for tax filing
  • research past events

Here's an example of the journal file format:

2022-01-01 opening balances as of this date
    assets:bank:checking                $1000
    assets:bank:savings                 $2000
    assets:cash                          $100
    liabilities:creditcard               $-50
    equity:opening/closing balances

2022-01-15 market
    expenses:food             $50
    assets:cash              $-50

2022-02-01 GOODWORKS CORP
    assets:bank:checking           $1000
    income:salary                 $-1000

and some simple reports:

$ hledger bs
Balance Sheet 2022-02-15

                        || 2022-02-15 
========================++============
 Assets                 ||            
------------------------++------------
 assets:bank:checking   ||      $2000 
 assets:bank:savings    ||      $2000 
 assets:cash            ||        $50 
------------------------++------------
                        ||      $4050 
========================++============
 Liabilities            ||            
------------------------++------------
 liabilities:creditcard ||        $50 
------------------------++------------
                        ||        $50 
========================++============
 Net:                   ||      $4000 
$ hledger is --monthly                                            
Income Statement 2022-01-01..2022-02-28                                               
                                                                                      
               ||  Jan    Feb                                                         
===============++=============                                                        
 Revenues      ||                                                                     
---------------++-------------                                                        
 income:salary ||    0  $1000                                                         
---------------++-------------                                                        
               ||    0  $1000                                                         
===============++=============                                                        
 Expenses      ||                                                                     
---------------++-------------                                                        
 expenses:food ||  $50      0                                                         
---------------++-------------                                                        
               ||  $50      0                                                         
===============++=============                                                        
 Net:          || $-50  $1000                                                         

More examples and screenshots:

hledger 1.x and 2.x

In 2026, the master branch was renamed to hledger1, and work began on hledger 2.x, now in the main branch.

Some goals for 2.x:

  • continue and improve 1.x's reliability
  • provide excellent lot tracking and capital gains calculation
  • explore ethical use of AI as a dev tool
  • more cleanup and simplification of code, docs, process, finance
  • more speed
  • more interoperability
  • more use of jj for version management
  • easier contribution

and for 1.x:

  • continued stability, installability
  • bugfix releases to fix newly discovered regressions, if any
  • preserve the non-AI-assisted codebase, and try to keep it that way

Related:

Funding

hledger is brought to you by Simon Michael, 140+ contributors, and the generous financial sponsors below.

After enjoying some personal or organisational success with hledger, you might want to become one of them, to help support this work. It's easy! Please see for details.

Organisational sponsors

<a href="https://opencollective.com/hledger/organization

readme truncated — read the full docs on github

Frequently asked questions

Is hledger free to use?

hledger is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does hledger do?

Robust, fast, intuitive plain text accounting tool with CLI, TUI and web interfaces.

What is hledger written in?

hledger is primarily written in Haskell. Its source is publicly available at https://github.com/hledgerorg/hledger, and it has 4,709 GitHub stars.