A note to self – but I’m posting it because sometimes other people are interested to know how I work. More than usually techy, may not appeal to everyone.
I’ve been spending some time lately in the Terminal – the command line interface that sits beneath the friendly surface of my Mac and Chromebook.
I’m learning to do things in a more deliberate, text-based way. I started with file organisation and newsletter subscriber backups, and have now extended to accounting.
The tool I’m using is called hledger. You give it a CSV export from your bank and a “rules file” that tells it how to interpret the data – which column is income, which is expenditure, how to categorise things. It then produces reports.
There’s no subscription. No cloud. No one else’s server. It’s not being quietly scanned by Google1. Just simple text files that I control, backed up to a private GitHub repository (which tracks all changes).
I’m getting help from Claude in setting this up, which is mildly ironic given that one of my reasons for doing any of this is to reduce dependence on proprietary software that tends to get more expensive over time – something I’ve written about before in the context of posting to my own site first. Claude is helping me build something I’ll own outright when we’re done, and manage myself, which feels different from being helped into someone else’s walled garden.
To be clear: my actual financial data never goes near Claude. I only need to describe the structure of what I’m doing – which columns, which categories – without letting the CSV files off my own machines.
The most interesting thing I’ve learned so far: Claude told me not to edit my raw CSV files, even when they contain transactions categorised in ways that aren’t useful to me. My instinct was to just go in and fix the data. The right approach, it appears, is to leave the CSV alone – a faithful record of what the bank gave me – and instead write rules in a separate file that interpret the data the way I want it.
This is part of a broader approach called plain text accounting, which has a small but serious community behind it.
What I like about this, once I’d got over my instinct, is that the rules file becomes a kind of audit trail of my thinking.
And because it’s in Git, I don’t have just the current rules – I have the full history of every change I’ve ever made to them, with timestamps.
An edited CSV would give me none of that. It would just give me data I’d quietly changed and might later not be able to trust.
Early days. But I’m enjoying it.
1 Scanned by Google. In fact, one of my next projects with the Terminal is to get all my Google Docs and Sheets and Forms back. For several years I have not known how I could do that, and have paid approximately £20 a month for the privilege of Google supervising it reading it all.
-
If you enjoyed this post, please consider sharing it by email or on social media. Here's the link. Thanks, JPF.