← Back to tools

hledger

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

finance Productivity linuxmacoswindows Haskell GPL-3.0-or-later

Description

hledger is a lightweight, cross-platform, multi-currency, double-entry accounting tool that reads plain text journal files and produces useful financial reports. It can track money, investments, cryptocurrencies, invoices, time, inventory, and more. It features CLI, TUI, and web interfaces, robust CSV import/export, and a high-performance accounting engine processing 25k transactions per second. Compatible with Ledger CLI and interconvertible with Beancount.

Install

homebrewbrew install hledger
aptsudo apt install hledger
pacmansudo pacman -S hledger

AI Summary

A fast, cross-platform plain-text double-entry accounting tool with CLI, TUI, and web interfaces. Compatible with Ledger and Beancount.

Capabilities

  • + Double-entry accounting from plain text journal files
  • + Multi-currency support with 255 decimal places of precision
  • + Balance sheets, income statements, cash flow reports
  • + CSV import and export with flexible rules
  • + Output in text, HTML, JSON, and SQL formats
  • + Time tracking and invoicing
  • + Budget tracking and forecasting
  • + Interactive TUI and web interface (hledger-ui, hledger-web)
  • + Scriptable via CLI, HTTP, or API

Use When

  • Tracking personal or business finances with plain text files
  • Need version-controlled accounting data
  • Want privacy-respecting accounting (no cloud dependency)
  • Importing and analyzing bank CSV statements
  • Generating financial reports from the command line

Avoid When

  • x You need a full-featured graphical accounting application
  • x You need payroll processing or tax filing
  • x You prefer cloud-based accounting (use a SaaS tool)

Usage Patterns

Show account balances

hledger bal

Displays the balance of all accounts in your journal

Show a monthly income statement

hledger is -M

Generates a monthly income statement report

Import bank transactions from CSV

hledger import bank.csv --rules-file bank.rules

Imports transactions from a CSV file using custom rules

Register of recent transactions

hledger reg -p thismonth

Shows all transactions for the current month

Input / Output

stdin: Can read journal data from stdin
stdout: Financial reports in text, CSV, HTML, JSON, or SQL format
Exit codes:
0 Success
1 Error (parsing, validation, or runtime)
View AGENTS.md for hledger