Level up your plain-text accounting.
Ledger accounts are hierarchical. Use colons to create subaccounts for detailed tracking.
Example:
2025/08/01 Online course
Expenses:Education:Courses $30.00
Assets:Bank:Checking -$30.00
Tip: ledger balance Expenses rolls up all subaccounts under Expenses.
You can include payees and more details:
2025/08/02 Amazon
Expenses:Office:Supplies $45.00 ; new mouse
Assets:Bank:Checking -$45.00
; for notes.Split expenses across categories or accounts:
2025/08/03 Lunch meeting
Expenses:Food:Lunch $12.00
Expenses:Business:Meals $18.00
Assets:Bank:Checking -$30.00
Ledger supports multiple currencies. Specify with the symbol:
2025/08/04 PayPal transfer
Assets:PayPal €100.00
Income:Freelance -€100.00
Or mix currencies in a split:
2025/08/05 Stock purchase
Assets:Investments:Stocks $1000.00
Assets:Bank:Checking -$500.00
Assets:Foreign:THB -฿18,000.00
Ledger will track balances by currency.
See expenses by month:
ledger -f my.ledger register Expenses --period 'last month'
Show a single account by month:
ledger -f my.ledger register Expenses:Groceries --monthly
List all income this year:
ledger -f my.ledger register Income --period 'this year'
Add custom tags to transactions for easy searching:
2025/08/06 Taxi ; :client:projectX:
Expenses:Travel:Taxi $8.50
Assets:Cash -$8.50
Filter by tag:
ledger -f my.ledger register ^Expenses --grep projectX
Add periodic budgets to your file:
~ Monthly
Expenses:Groceries $400.00
Expenses:Dining Out $100.00
Check your spending against your budget:
ledger -f my.ledger budget
Back up your .ledger file regularly.
Use version control (like Git) for a history of edits.
Consistent naming for accounts keeps reports tidy.
Validate your file:
ledger -f my.ledger check