A command-line tool for managing personal financial ledgers using the Open Ledger Format (OLF) — a minimal, human-readable schema for everyday finances that keeps every cent accounted for.
- 🏗️ Human-readable plain-text files (YAML/JSON)
- 📊 Validate ledger files against OLF specifications
- 📈 Generate reports from financial data
- 🐳 Cross-platform with Docker support
Download binary releases:
# Download from GitHub releases
curl -L https://github.com/askolesov/ledger/releases/latest/download/ledger_Linux_x86_64.tar.gz | tar xzInstall with Go:
go install github.com/askolesov/ledger/cmd/ledger@latestDocker:
docker pull ghcr.io/askolesov/ledger:latest# Validate OLF v2.0 file
ledger validate ledger.yaml
# Generate report for OLF v2.0
ledger report ledger.yaml
# Show version
ledger versionThe Open Ledger Format stores personal finance data in plain-text files with strict validation rules:
years:
2025:
opening_balance: 1000
closing_balance: 1050
months:
1:
opening_balance: 1000
closing_balance: 1050
accounts:
Checking:
opening_balance: 600
closing_balance: 620
entries:
- amount: 50
note: "Salary (January)"
date: "2025-01-28"
tag: "Income"Key principles:
- Human-oriented — maintain with any text editor
- Consistency — validation ensures strict, deterministic balances
- High-level focus — summary budgeting, not micro-transactions
For complete specification, see Open Ledger Format.md.
# Clone repository
git clone https://github.com/askolesov/ledger.git
cd ledger
# Build binary
make build
# Run tests
make test-all
# Install locally
make install- Go 1.24+
- Make (optional, for convenience commands)
Released under CC-BY-4.0 — use, fork, extend; credit the authors.