Categories
Productivity Technology

What I Have Built With Claude Code (So Far)

It’s been a long time since I posted anything here, but I’ve been busy. Since the start of 2026, and especially over the last couple of months, I’ve been using Claude Code (Anthropic’s AI coding agent) to turn a Raspberry Pi 4 sitting at home into something that does a surprising amount of my life admin for me.

This post is a snapshot of where it has all got to, mostly so that I have a record of it, and partly because I think it’s a good illustration of what these tools can now do for someone who can code but doesn’t have the time to build all this by hand.

The ground rules

Before the list of projects, it’s worth explaining the conventions Claude works to, because they’re what stop this turning into a pile of unmaintainable scripts:

  • Every project gets its own folder, its own git repo and a private GitHub repository, with a README that is kept up to date as things change.
  • Every change gets documented in my Obsidian vault: what changed, why, and how to reverse it.
  • Every service has a regression test, and the test suite has to pass before a change counts as finished.
  • Secrets never appear in code, commands or notes. They live in locked-down files on the Pi and are read at run time.
  • Claude keeps its own memory of decisions, gotchas and things I’ve told it not to touch, so each new session doesn’t start from scratch.

A lot of my effort has gone into these rules rather than into the code itself, and that’s been the right call.

The platform

The Pi runs a set of Docker services behind a reverse proxy, each with its own friendly web address on my home network:

  • Pi-hole for DNS and ad blocking, and Nginx Proxy Manager as the reverse proxy
  • Homepage, a dashboard that pulls everything together, with tabs for services, documentation, finances and stats
  • Home Assistant and Mosquitto (MQTT) for home automation
  • n8n for workflow automation
  • Paperless-ngx for document management
  • Actual Budget for budgeting
  • Watchtower to keep the containers updated, and Portainer and CloudBeaver for management

All the persistent data lives on my Synology NAS, which also keeps a synced copy of my Obsidian vault, and that vault turns out to be the hub of almost everything below.

The Obsidian vault

If the Pi is the engine, my Obsidian vault is the memory. It’s a folder of plain Markdown files that now holds around 5,600 notes across nearly 40 topic folders: people, places, trips, events, books, films, companies, cars, watches, the garden, medical history, finances, and much more. It lives in Google Drive, so I have the whole thing on my phone and PC, and it’s synced down to the NAS, where the Pi and its automations work on exactly the same files I do.

A few things make it work well with an AI that can read and write files:

  • Templates for everything. Every type of note (person, place, trip, event, book, film and so on) has its own template, so notes have consistent frontmatter and Claude knows what shape a new note should be.
  • A description of the vault, inside the vault. A note at the root explains, folder by folder, what lives where and the conventions each folder follows. Claude and the automations refer to it when deciding where things go, and it’s kept up to date as the structure evolves.
  • Links over folders. An event links to the place it happened, the people who were there, and the trip it was part of. The graph above is the result: years of notes, plus everything the automations have added, all connected.
  • Daily notes. One a day, filed by year and month, which the automations use to understand what I’ve actually been doing.
  • The system documents itself. Each device and service has its own section under Systems/ (over 300 notes now) with a changelog entry for every change Claude makes: what changed, why, and how to undo it. When something breaks months later, that’s where I look first.
  • Tasks as notes. I can drop a task into the Inbox folder and Claude carries it out (see InboxProcessor below), and completed tasks stay in the vault as a record.

The biggest single folder is Music, with over 3,700 notes generated from my music collection, but the parts I value most are the ones that would otherwise never get written: the restaurants, shows and trips that now get recorded automatically each week.

The things I’ve built

Trains and dashboards

  • RailData: the first project, back in March. A small Flask API that queries National Rail for my commute between Haymarket and Shotts and shows the next trains on the dashboard. It has since become the home for a lot of small status pages for the other projects.
  • Pulse: renders GitHub-style heatmaps and charts of my daily activity (email, documents, vault notes, tasks, spending) on the dashboard’s Stats tab.
  • GmailStats: collects daily email metrics for Pulse, now fed by an n8n workflow.

Paperwork and money

  • InvoiceCapture: some suppliers only send an email saying “your bill is ready”. This logs into their website with a headless browser, downloads the PDF, files it in Paperless and pulls out the amounts. Each supplier is just a config file.
  • Evernote migration: a one-off tool that moved over a decade of Evernote notebooks into Paperless, one document per note, keeping the original dates and tags.
  • PaperlessGeminiSync: pushes selected Paperless documents into Google Gemini notebooks so I can ask questions of them.
  • BankSync and FinanceImport: getting bank transactions into Actual Budget. BankSync used Open Banking; FinanceImport takes the bank export files I drop into a folder, reconciles them against the bank balances, works out my net worth, and then deletes the file. Transaction data never goes into git and is never shown to the AI.
  • FinancialReview: once a month Claude writes a financial review note in my vault covering spending, savings, mortgage and debt, and “items to watch”, and follows up on last month’s.

My Obsidian vault, on autopilot

  • InboxProcessor: I can drop a task note into an Inbox folder in the vault, from my phone or anywhere, and every 15 minutes Claude picks it up and does it. There’s a Windows version too.
  • VaultMaintenance: a monthly tidy-up audit of the vault that reports inconsistencies and fixes a couple of well-defined categories itself.
  • PeopleReview: a monthly look through email and calendar to keep my notes on family and friends up to date.
  • EventCapture: a weekly scan of email and calendar for things I actually went to (shows, cinema trips, restaurants, places) that records them in the vault.
  • MusicNotes: creates a note for every artist and album in my music collection on the NAS.
  • RemarkableSync: every Sunday it archives my handwritten reMarkable work notebook as a PDF and creates a fresh one for the week ahead.

Reading, watching and listening

  • InstapaperCurator: every Friday Claude picks ten articles it thinks I’ll want to read, based on my reading history and what I’ve been doing, and saves them to Instapaper.
  • YouTubeReview: the newest project. A monthly review of my YouTube and YouTube Music history that flags uploads I missed and subscriptions I’ve neglected, and builds “Claude Picks” playlists.

Gadgets

  • UnicornDisplay: a Pi Zero with a Pimoroni Unicorn HAT HD LED matrix that scrolls messages sent over MQTT and runs fire, plasma, Game of Life and Matrix animations in the background. It has a little web control page, and the next train can be sent to it with one tap.
  • WifiWatchdog: because that Pi Zero kept falling off the mesh WiFi and not reconnecting by itself.
  • KeybowLayout: a backup of the configuration for my 12-key Keybow macro pad, which until now only existed on its SD card.
  • GeminiImageGen: a small command-line tool for generating images.

Keeping it all running

  • Regression tests: 38 test scripts covering every service, plus a watchdog that runs them regularly, restarts things that have fallen over, and tells me when it can’t.
  • claude-dotfiles: keeps my Claude Code agents and commands in sync between the Pi and my Windows PC.

What I’ve learned

  • The speed is real. Most of these projects were built between August and October 2026. A few of them went from idea to running in an evening.
  • Headless Claude is the killer feature. Running Claude Code non-interactively on a timer means “a job that needs judgement” can be scheduled just like a cron job. Over half of the projects above work this way.
  • It isn’t magic. Things break: OAuth tokens expire, banks revoke consents, websites change their login pages. The regression tests and the documentation habit are what make it manageable, because when something breaks I can find out what it was meant to do and why.
  • Decide where the line is. Some automations change my notes with nobody reviewing them first, and I’m comfortable with that. My financial data, on the other hand, is kept well away from the AI except where I’ve made a deliberate exception.

A note on how this post was written: it was drafted using Claude Code, which went through the READMEs, code history and vault notes of every project described here, so that the post was accurate and complete. It wrote the draft directly into WordPress through the WordPress API, and I then reviewed and edited it before publishing.

Categories
Fun Gardening

New Lawnmower

I can’t wait for this to be back in stock. I’m assuming for £15,099.99 it includes a gardener to come and do my garden at the same time!

Searched for a petrol lawnmower – this was out of stock – at least they are suggesting comparable products:

  • Mole Traps
  • Pocker Deck Shuffler
  • Handrails
  • Water Filters
Categories
Fun Video Of The Week

Amazing Archery

Categories
Fun Site Of The Week

Commit Strip Comic

This web comic – Commit Strip is mostly IT focused but I love it.

A bit like Dilbert it captures the humor of the industry perfectly.

Categories
Fun Video Video Of The Week

Wonder Woman Theme Tune – Overview

I loved this explanation of the musical development within Wonder Woman.

Categories
Fun Things That Annoy Me

Things That Annoy Me – Scottish Children’s Lottery

After all of these years I’ve never heard of anyone actually winning a Scottish child!

Categories
Fun Uncategorized

Breaking Bad and Pulp Fiction Comparison

WOW – obvious with hindsight!

Categories
Fun

The Magic iPod – Music MashUp

I’m absolutely loving this site at the moment: http://themagicipod.com/

Take some of your favourite tunes and create a mash up – just drag and drop!

Categories
Fun

Secret World of Stuff

Categories
Microsoft Office Productivity Technology

Outlook Meeting Attendees In The Invite Body

Personally I do not like the way that Microsoft Outlook prints out meetings especially the fact that attendees are a comma separated list.
I prefer to see all the attendees as a tabular list – with their acceptance response so that I can tick them off as they join the meeting.

The following macro will do this for you.
NOTE 1 : this macro is amending the text of the body of the meeting invite, if you save this and send an update – everyone will see this. I prefer to just run the macro, print the meeting and then close without saving.
NOTE 2 : this is a one off snapshot of the attendee status, if further responses or updates are received you will have to delete the old text then re-run the macro.