Skip to content

jonhiggs/jcb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jcb

A terminal-based personal budgeting program that is fast, familiar (heavily inspired by Vim and Mutt) and powerful.

(Still under heavy development but usable)

Getting Started

Watch this video to get started with a new budget.

Getting Started

And this video shows you how to reconcile your budget with your bank statement.

Reconciliation

Features

  • 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.

Building

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.

Data Formats

Import/Export

Transactions can be imported from or exported to tab separated values (TSV). The format is:

Date	Category	Description	Amount	Notes
  • The format of Date is YYYY-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.

Savefile

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 UI

The user interface has been inspired quite a bit by the Mutt email editor and the Vim text editor.

Transaction Attributes

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.

Info Panel

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.

About

A terminal-based personal budgeting program that is fast, familiar and powerful.

Resources

License

Stars

Watchers

Forks