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
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.
Install
Manual install
git clone git@github.com:ledger/ledger.git
cd ledger && ./acprep updateFirst README method, For the Impatient. Install the listed dependencies first.
Access and checks
How we reviewExtended 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.
Related
CLI toolsBeancount.io gives an agent the books: BQL queries, file edits, entries, statement parsing and bank import.
16 Claude Code commands for Russian sole proprietors: invoices, acts, contracts, taxes and contributions, with data kept in local files
A Stripe command line and MCP server: the agent pays with credentials from a Link wallet only after you approve
A Claude Code plugin that runs Swedish bookkeeping over MCP: vouchers, VAT, payroll and period close only after your approval.
A Go library and zm CLI for the ZenMoney API, with a Claude Code skill that answers personal finance questions
Ekwo OS accounting on your own Supabase: Claude posts invoices, matches payments and prepares VAT under your rights
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.