A terminal-based personal budgeting program that is fast, familiar (heavily inspired by Vim and Mutt) and powerful.
(Still under heavy development but usable)
Watch this video to get started with a new budget.
And this video shows you how to reconcile your budget with your bank statement.
- Tag and simultaneously operate on many transactions.
- Create repeating transactions.
- Fast navigation with vimlike key bindings.
- Import from TSV.
- Reports and forecasts
- Local data. Private. Nothing is sent to the cloud.
jcb is written in Go. To build, you need to first install Go v1.18+.
Running go build -o jcb cmd/main.go
will produce a binary for your system at ./jcb
. To install it, run sudo mv ./jcb /usr/local/bin
.
Transactions can be imported from or exported to tab separated values (TSV). The format is:
Date Category Description Amount Notes
- The format of
Date
isYYYY-MM-DD
. - Category is a single word that is less than 11 characters.
- Description is a string that is less than 33 characters.
- Amount is number that takes the form
<dollars>.<cents>
. - Notes is a string that is less than 201 characters.
The savefile is a regular SQLite database file. You can query or modify it with the sqlite3
command or anything else that understands SQLite databases.
When the application starts, it copies the database to .<savefile>.tmp
. Saving will write the data back to <savefile>
.
The default location of the savefile is ${HOME}/.local/share/jcb/data.db
.
The user interface has been inspired quite a bit by the Mutt email editor and the Vim text editor.
Every transaction has a set of three attributes which are displayed in the first column of the transactions table.
Attributes are:
C
: Transaction is committed.n
: Transaction has a note.+
: Transaction is modified, but not saved.
At the bottom-right of your screen you will find an info panel. It provides an overview of the transactions table. It might look something like this:
[13:27] [1] [0]
That tells you that:
- The thirteenth transaction is selected.
- There are a total of twenty-seven transactions.
- That one transaction has been modified but not saved.
- That zero transactions are tagged.