As I mentioned in an older post about storage alternatives, I’ve been running YoYotta to back up to LTO tape, but for a while now, I’ve been looking for alternatives.
Don’t get me wrong, YoYotta is an excellent piece of software, very solid and has a million features for managing huge libraries of video material. But for several reasons, I can’t use 80% of what YoYotta is best at.
For instance, it’s fantastic for locating and collating video material for reuse, but first of all that’s not what we do, and secondly that doesn’t work for ScreenFlow files since they’re proprietary and YoYotta can’t decode them. So I’ve been using only the LTFS part of YoYotta and for my use it is lacking a number of features I’d love to have.
On top of that, they switched from a “buy it once” model to a yearly subscription recently and even reading old tapes is not enabled without an ongoing subscription1 So this makes it slightly iffy to ensure recovery over the long term. Not to speak of the MacOS support for SAS adapters and stuff like that.
So, ideally, I would have liked a Linux based system, open source preferably, to run tape backups, also incorporating a lot of tape management functions YoYotta does not have2.
At this point in time, ChatGPT and Claude arrive at the scene (my scene) and all of a sudden it’s not out of the question to create custom software for all this. Especially if I don’t have to do the heavy lifting myself. So about three months back I started working (i.e. ordering Claude around) on cairnfs as I call it. A command-line utility running on Debian that does everything I can dream up for an LTO utility to do. And I can dream up way too many things, just look at the command line overview.


For each of those commands, there are options galore. The thing is, I always dream up new functions and features and without much of a damper on my ideas, I just have Claude implement it right away. My problem now is the abundance of options. It has even happened that as I try to implement a new bright idea, Claude tells me I already did that very thing not long ago.

This whole thing was written in Python using TDD. It’s now around 30k lines of code, of which more than half is testing. Around 1200 tests total.
At the start, I tried to review code as it was produced, but since I never really had any corrections to make, I stopped doing that. Now I only look at the code every now and then just to be amazed at the productivity, but even that is unnecessary.
Oh, and I built a machine for this software. All it runs is cairnfs on Debian, nothing else. The only special stuff in there is a Broadcom 9400-8e SAS HBA to connect the tape drive and an Intel X520 dual-port 10 GbE SFP+ network adapter. 1 Gb ethernet is really not enough.

