A reliable, user-friendly Plain Text Accounting tool with command line, terminal and web interfaces.
Go to file
Simon Michael f57cd638da imp:print:beancount output: more robust account/commodity encoding
Unsupported chars are now hex-encoded, not just converted to dashes.
This helps keep account and commodity names unique, especially with
the equity conversion account names generated by --infer-equity when
using currency symbols.
(Those could also be converted to ISO 4217 codes, in theory, but
for now we just hex encode them, which is easier to make robust.)

Also, Beancount commodity symbols are no longer enclosed in
hledger-style double quotes.
2024-11-07 01:28:31 -10:00
.github ;ci: ci, oldest: cache ids aren't correctly including ghc version 2024-10-24 10:44:28 -10:00
.sandstorm ;web:sandstorm: bump app version, tweak title 2023-10-24 13:38:08 +01:00
.vscode/notebooks ;doc: add VS Code notebooks: github issues, hledger-web REST API 2023-05-10 17:08:12 -10:00
bin ;bin: fix build errors in all scripts 2024-10-11 14:55:35 -10:00
checks update dev setup tests 2015-03-16 17:59:06 -07:00
doc ;doc: add latest color/pager flags to general options m4 macro 2024-10-20 09:25:02 -10:00
docker package: added helper scripts in docker/ 2019-01-31 12:44:12 -08:00
docker-arm32v7 ;ci: linux: expect linux builds to be warning free like the rest 2024-09-30 17:21:23 -10:00
examples ;examples:csv: a YNAB 4 example, with workaround for RTL currency symbol 2024-10-24 10:44:28 -10:00
hledger imp:print:beancount output: more robust account/commodity encoding 2024-11-07 01:28:31 -10:00
hledger-install ;install: fix installation of hledger-ui, 2 2024-09-12 02:51:55 -07:00
hledger-lib imp:print:beancount output: more robust account/commodity encoding 2024-11-07 01:28:31 -10:00
hledger-ui ;doc: update changelogs 2024-10-30 19:01:49 -10:00
hledger-web dev:clarify: rename jinferredcommodities to jinferredcommoditystyles 2024-11-02 15:52:07 -10:00
tools ;tools: push: github remote was renamed to origin (for jj) 2024-10-24 11:10:25 -10:00
.ci ;api: another round of hledger-api purging; fix the build 2019-09-11 14:49:22 -07:00
.ctags ;dev: tools: fix make etags 2023-04-27 09:17:03 -10:00
.dockerignore package: added Dockerfile 2019-01-29 16:14:03 -08:00
.editorconfig fix datepicker not closing, linting 2017-12-30 13:44:40 -05:00
.ghci ;dev: .ghci: cleanup 2024-07-13 07:32:18 +01:00
.gitignore ;dev: gitignore 2024-07-01 23:36:46 +01:00
.hlint.yaml cln: silence some warnings/lints 2022-03-26 08:34:21 -10:00
.mailmap ;git: mailmap: update to clean up git shortlog -se 2023-12-16 10:46:41 -10:00
.version ;pkg: bump version to 1.40.99 2024-09-09 14:06:06 -07:00
azure-pipelines.yml ;api: another round of hledger-api purging; fix the build 2019-09-11 14:49:22 -07:00
bench1k.sh ;tools: standard 1k, 10k, 100k-txn benchmarks 2024-01-24 22:31:01 -10:00
bench5k.sh ;tools: bench5k.sh 2024-01-24 23:50:01 -10:00
bench10k.sh ;tools: standard 1k, 10k, 100k-txn benchmarks 2024-01-24 22:31:01 -10:00
bench100k.sh ;tools: standard 1k, 10k, 100k-txn benchmarks 2024-01-24 22:31:01 -10:00
bench-10ktxns-10kaccts.sh ;just: more benchmarks 2024-01-26 17:14:25 -10:00
bench-10ktxns-100kaccts.sh ;just: more benchmarks 2024-01-26 17:14:25 -10:00
bench-ledger.sh ;imp: perf: Ledger-friendly bench-ledger.sh, for comparative benchmarking 2021-11-20 22:05:19 -10:00
bench-many-accts.sh ;just: more benchmarks 2024-01-26 22:23:04 -10:00
bench-many-txns.sh ;just: more benchmarks 2024-01-26 17:14:25 -10:00
bench.sh ;tools: bench.sh: simplify default benchmarks 2024-01-24 21:59:58 -10:00
cabal.project ; cabal.project: Drop compatibility comment 2021-10-08 08:31:43 -10:00
CHANGES.md ;doc: update changelogs 2024-10-30 19:01:49 -10:00
dev.hs collect some langage pragmas in dev.hs 2019-02-20 18:08:33 -08:00
dir ;dev: doc: update manuals 2021-07-12 18:50:06 -10:00
Dockerfile ;api: another round of hledger-api purging; fix the build 2019-09-11 14:49:22 -07:00
ghc-tags.yaml ;dev:ghc-tags: ignore hledger/test/addons 2024-02-29 21:44:35 +00:00
hie-stack.yaml ;dev: an explicit ghc 9.2 hie.yaml for HLS, the only one that works now 2023-02-15 16:29:52 -10:00
hledger.conf imp:cli: handle -NUM in config file properly 2024-10-19 16:56:14 -10:00
hledger.conf.sample ;examples: hledger.conf.sample: updates 2024-10-19 18:00:51 -10:00
Justfile ;tools: just: add ghci-echo, ghcitui 2024-11-07 01:24:21 -10:00
LICENSE add LICENSE 2008-10-01 07:52:07 +00:00
Makefile ;tools: retire the main Makefile 2024-04-24 07:34:31 -10:00
Makefile.helpsys make: rename sub-makefiles; start moving site script to make/shake 2019-03-05 18:43:04 -08:00
README.md ;doc: readme: fix contributors link 2024-07-17 07:06:12 +01:00
Shake.hs ;dev: bump to latest stackage nightly 2024-09-28 08:39:06 -10:00
stack8.10.yaml dev: stack: silence wizards bounds warning, hopefully 2024-09-30 17:21:26 -10:00
stack9.0.yaml ;stack: 9.0-9.8: add base-compat-0.14, needed since 1c45496 2024-09-30 2024-10-24 10:44:28 -10:00
stack9.2.yaml ;stack: 9.0-9.8: add base-compat-0.14, needed since 1c45496 2024-09-30 2024-10-24 10:44:28 -10:00
stack9.4.yaml ;stack: 9.0-9.8: add base-compat-0.14, needed since 1c45496 2024-09-30 2024-10-24 10:44:28 -10:00
stack9.6.yaml ;stack: 9.0-9.8: add base-compat-0.14, needed since 1c45496 2024-09-30 2024-10-24 10:44:28 -10:00
stack9.8.yaml ;stack: 9.0-9.8: add base-compat-0.14, needed since 1c45496 2024-09-30 2024-10-24 10:44:28 -10:00
stack.yaml ;stack: base-compat-batteries seems not needed 2024-10-24 10:44:28 -10:00

hledger

Robust, intuitive plain text accounting

license on hackage github issues

Welcome! This a brief intro to hledger. For a more detailed version, see the home page: https://hledger.org

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 GPLv3+.

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: https://hledger.org/#how-to-get-started

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 https://hledger.org/sponsor.html for details.

Organisational sponsors

Individual sponsors