Ledger is a powerful, double-entry accounting system that is accessed from the UNIX command-line. This may put off some users, as there is no flashy UI, but for those who want unparalleled reporting access to their data, there really is no alternative.
Here are some of the features of Ledger which set it apart from other accounting systems:
Ledger never creates or modifies your data. Your entries are kept in a text file that you maintain, and you can rest assured, no automated tool will ever change that data.
The amount of data required by Ledger is minimal. It figures out from looking at your data what you mean by it and how you want it reported back to you. Accounts are created as they appear; currencies are created as they’re referenced. Anywhere that a value can be calculated, you can leave it out.
Ledger is 100% currency-agnostic. You can store multiple currencies in any account, convert between them, or even pay in one currency and receive change in another.
UTF8 is accepted anywhere in data files, Ledger uses ISO format dates, attaches no meaning to the naming of accounts, and can accept data in either US or European decimal formats. It will report currencies back to you following the manner of your own entries.
Ledger uses a simple set of base commands which can be extended in countless ways. You can create monthly reports, average reports, check account balances, reconcile accounts, keep track of capital gains on stocks, etc.
Homepage
Download
Recent Releases
3.3.231 Mar 2023 03:16
minor feature:
Release ledger 3.3.2
divide by zero.
Increase string size limit in src/unistring.h assert.
Require tzdata for Nix flake build.
3.3.104 Mar 2023 03:16
minor feature:
Release ledger 3.3.1
regression leading to incorrect error about `format` directives.
Add information about compile features to `--version`.
compiler warnings by minimizing the use of deprecated APIs.
Update flake.nix to match nixpkgs ledger/default.nix.
Remove unused Python server related code.
Various documentation improvements.
3.3.009 Feb 2023 03:16
minor feature:
Release ledger 3.3.0
Use ` PAGER` when environment variable is set.
Make `--depth` correctly fold postings to accounts of greater depth into the.
parent at the specified level ().
When using wild-cards in the `include` directive, include matched files in.
sorted order.
Ensure absolute path for include.
Try to use ` XDG_HOME_CONFIG/ledger/ledgerrc` or ` /.config/ledger/ledgerrc`.
first.
Improve Python 3 support and drop support for Python 2.
Add support for automatically reading files encrypted with GPG.
Add support for a "debit" column in the `convert` command.
parsing of files without end of line ().
incorrect parsing of expressions containing a `-` without spaces.
payee metadata on postings not being validated and payee aliases not.
being honored.
ledger interpreting a posting with 0 difference as a null-posting.
which leads to it auto-balancing the posting.
Correctly escape all string values in lisp report.
a regression where empty commodities were shown.
a regression where using multiple commodities in one transaction triggers.
an assertion.
--time-colon for negative time amounts.
Use correct int return type for stream input operations.
Use amount_width for balance report.
Remove some UTF-8 code that was having no effect.
unrounding for equity.
SIGABRT when python subcommand raises an exception.
Improve XML reports.
Support building on older versions of CMAKE (less than 3.7).
compilation with Boost 1.76.
Msys2 MinGW build.
unicode problems on Windows.
the that with Boost gt;= 1.77 `include` directive cannot find the file.
to include for stdin (`-f -`). Also for `-f -` when `include` cannot find the.
file it reports the error with full path now..
Nix build.
Rename `quoted_rfc4180` to `quoted_rfc`, as numbers used in function names.
confuses the parser.
Numbers are no longer permitted in value expression function names.
Various documentation improvements.
3.2.119 May 2020 14:25
minor feature: