Ledger CLI

Ledger is a CLI for accounting without a separate database: keep journals in Git and review changes to amounts and accounts.

  • 6,072 ★ on the repository
  • Last commit
CLI

Extended access

Why this level

  • The CLI reads a local financial journal and exposes transaction information in reports.
  • The build runs a project script and creates executables in the working environment.
All reasons and checks

ledger/ledger

Install

Manual install

git clone git@github.com:ledger/ledger.git
cd ledger && ./acprep update

First README method, For the Impatient. Install the listed dependencies first.

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The CLI reads a local financial journal and exposes transaction information in reports.
  • The build runs a project script and creates executables in the working environment.

This is third-party code. Review the repository files before installing.

What it does

Ledger is a CLI for double-entry accounting in a plain-text journal. Users describe accounts and transactions in a file, then select reports with command options. The program reads the journal and returns results without a separate database. Reports are usually plain text, with graph and HTML output also described. Journals can be maintained in a regular editor or through Emacs and Vim integrations. Each run reads the journal again. Edit the file and repeat the report command to recalculate the results.

Who it is for. Bookkeepers and small-project owners maintaining an inspectable text journal and generating command-line reports.

Good fit when

  • A project owner versions transactions in Git and reviews journal changes line by line.
  • A bookkeeper repeats a report against an updated transaction file.
  • A user starts with the sample journal to learn double-entry accounting.
  • A team adds a journal report to a repeatable expense-analysis script.

Not a fit when

  • A business owner needs ready-made Russian statutory filing forms.
  • A treasurer expects journal commands to submit bank payments.
  • Staff do not maintain a text journal and expect a graphical transaction-entry wizard.

Example request

Show the transaction register from the Ledger sample and explain how each entry changes the account balance.

Limitations

Users prepare their own journals: accounts and transactions come from input text, with no separate stored state. Source builds require CMake, Boost, GMP, MPFR and utfcpp at the minimum versions listed in the README. Python support is off by default, and some features, including `--import`, require a build that enables it. The first source checkout method uses a GitHub SSH URL, so that access must be available before following the `acprep` build steps.

How to disable. Remove `ledger` invocations from jobs and scripts. Retain text journals and generated reports; they do not depend on a running Ledger process.

FAQ

How do I view the first report after building?

From the project directory run `./ledger -f test/input/sample.dat reg`. It prints sample journal transactions and amounts; then replace the path with a copy of your own file.

How do I build the program from source?

After installing dependencies, run `git clone git@github.com:ledger/ledger.git` and `cd ledger && ./acprep update`. The latter updates the checkout, configures and builds it.

Where can I inspect configuration failures?

The author names `CMakeFiles/CMakeOutput.log` and `CMakeFiles/CMakeError.log`. Open them in the build directory and identify the missing dependency before retrying.

Is a separate database required?

No. Ledger reads the supplied journal and generates reports without another state store. Retain the input file and report options to reproduce the calculation.

What if I need Python-based import?

Python support is disabled by default. The README example `./acprep --python update --output=build` enables it during a build, requiring Python 3.10+ and matching Boost.Python first.

Discussion

No questions or reviews yet.

CLI tools
Official

Beancount.io gives an agent the books: BQL queries, file edits, entries, statement parsing and bank import.

MCP serverExtended access336Repository stars
Needs a VPN

16 Claude Code commands for Russian sole proprietors: invoices, acts, contracts, taxes and contributions, with data kept in local files

SkillExtended access2Repository stars
Official

A Stripe command line and MCP server: the agent pays with credentials from a Link wallet only after you approve

CLIBroad access904Repository stars

A Claude Code plugin that runs Swedish bookkeeping over MCP: vouchers, VAT, payroll and period close only after your approval.

PluginBroad access474Repository stars
Russian stack

A Go library and zm CLI for the ZenMoney API, with a Claude Code skill that answers personal finance questions

CLIExtended access2Repository stars
Official

Ekwo OS accounting on your own Supabase: Claude posts invoices, matches payments and prepares VAT under your rights

MCP serverBroad access42Repository stars

README in short

The author lists build dependencies and platform-specific installation commands. A source build can be checked with `make check`. Emacs and Vim modes live in separate repositories.

README badge

Report a problem