Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

TagCash - Finances with tags in CLI

semaphore coveralls

Missing a practical and easy-to-learn solution to keep track of your finances? Use tagcash to do it with simple text files!

TagCash is a little hack that I’m currently using after trying several solutions like GnuCash and Financisto. These are some of the features that I was missing and that are found in TagCash:

  • As simple as editing text files;

  • Text files are easy to sync between devices and people;

  • Simple CLI;

  • Quickly copy and paste statements from CLI to e-mail;

  • Simple and short Python source code.

Quick Start

Let’s choose 2 tags: wallet, and bank for your checking account. Now, write the following in a file (e.g.: finances.txt):

2018-01-13  100  Starting balance  bank
2018-01-14   40  Withdrawal        wallet,-bank

As there’s no starting balance for wallet, it will be $0.00. In the second line, there is a - (minus) sign next to the bank tag to make it -40 in the bank ledger. Now, let’s see what tagcash does without any option:

~$ tagcash finances.txt
┌bank────────┬────────┬─────────┬───────────────────┐
│ Date       │ Amount │ Balance │ Description       │
├────────────┼────────┼─────────┼───────────────────┤
│ 2018-01-13 │ 100.00 │  100.00 │ Starting balance  │
│ 2018-01-14 │ -40.00 │   60.00 │ Withdrawal        │
└────────────┴────────┴─────────┴───────────────────┘
┌wallet──────┬────────┬─────────┬───────────────────┐
│ Date       │ Amount │ Balance │ Description       │
├────────────┼────────┼─────────┼───────────────────┤
│ 2018-01-14 │  40.00 │   40.00 │ Withdrawal        │
└────────────┴────────┴─────────┴───────────────────┘

Tips

  • The parser is flexible. Just don’t use space in tags and separate them by comma;

  • Align as you wish. Use 1 or more spaces between fields (date, amount, …);

  • You can use as many files as you want;

  • There’s no need to keep the lines sorted by date. Thus, you can keep together all the monthly installments of a payment;

  • To choose tags, use for example --tags wallet (-t for short).

How to Install

Tested with Python >= 3.5: pip3 install tagcash.

Advanced Usage

To know how much money you have in total, including all specified tags, add the --all option:

$ tagcash --all finances.txt
(...)
┌All Tags────┬────────┬─────────┬───────────────────┐
│ Date       │ Amount │ Balance │ Description       │
├────────────┼────────┼─────────┼───────────────────┤
│ 2018-01-13 │ 100.00 │  100.00 │ Starting balance  │
│ 2018-01-14 │ -40.00 │   60.00 │ Withdrawal        │
│ 2018-01-14 │  40.00 │  100.00 │ Withdrawal        │
└────────────┴────────┴─────────┴───────────────────┘

As expected, because you withdrew money to your own wallet, the last table shows that you have $100 in total. To keep this overall balance consistent, adopt the simple rule: use negative numbers (or tags) whenever you spend money, and positive when you earn it.

Metadata

Release files for tagcash 1.0.0b2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tagcash 1.0.0b2
File Size Uploaded
tagcash-1.0.0b2.tar.gz 4.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tagcash 1.0.0b2
File Interpreter ABI Platform
tagcash-1.0.0b2-py3-none-any.whl Python 3 none any Details

Total release size: 12.6 kB

Release files / tagcash-1.0.0b2.tar.gz

Download URL tagcash-1.0.0b2.tar.gz
Size 4.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3ea8dff57cd526baf270677c0de729ee5abb06c1e52cb2d7ac98237dc255e2fc
BLAKE2b-256 checksum
How to use checksums
bf0cd9a99ea1cc33ae80cc54c697ee472d5353add2d066615b90ec584a882198
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / tagcash-1.0.0b2-py3-none-any.whl

Download URL tagcash-1.0.0b2-py3-none-any.whl
Size 7.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de40af5cde70df4c8686e1c91ab1745d37c0be75490f9ac95f5739c731cb71f5
BLAKE2b-256 checksum
How to use checksums
9d91ca360f6b9ea14e6ad1851cb8a9bd548919e59a697f2d2ffef4b5c95701f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page