oink
Zero-based envelope budgeting.
Local-first. SQLite-backed. No fluff.
$ oink fund 200 groceries → Groceries: $200.00 (Buffer: -$200.00) → ⚠ Buffer is -$200.00 — you've over-allocated! $ oink spend 42.50 "Trader Joes" groceries → Groceries: $157.50 $ oink move 25 groceries "dining out" → Groceries: $132.50 → Dining Out: $25.00 $ oink status Buffer -$200.00 ──────────────────────────────── Dining Out $25.00 Groceries $132.50 ──────────────────────────────── Total -$42.50
$ go install github.com/guygrigsby/oink@latest
Pure Go. No CGO. Single binary.
Integer cents. No floats. Ever.
5NF schema. Balances computed, never stored.
Fuzzy matching. Type a prefix, oink figures it out.