

Preview Multiple SwiftUI View States with #Preview(arguments:)
artemnovichkov.comI got tired of calibre being 1 GB, so I built a 3 MB macOS app that syncs my library to the Kindle
I read a lot of sideloaded books, and getting them onto my Paperwhite always meant one of two things:
- Send to Kindle — needs an Amazon account, goes through their servers, and it's email-shaped for something that's plugged into my Mac with a cable.
- calibre — genuinely great, genuinely does everything, and also 1 GB of app I mostly don't use. The UI hasn't changed much in a decade.
So I built the small thing I actually wanted. It's called Octavo, it's free and open source (MIT), and it's about 3 MB.
What it does
- Plug the Kindle in over USB, it notices, and shows you exactly what's missing from the device. Hit sync. No cloud, no account, no email.
- Converts EPUB / CBZ / FB2 / TXT to MOBI on the way out, since the Kindle won't open those. Results are cached.
- Edits metadata — title, author, series, tags, cover, ISBN — with online lookup (Open Library, Google Books, and FantLab, which is the only one that makes a Russian library actually searchable).
- Imports books by drag and drop. Pulls metadata out of the file itself.
- Browse by author / series / tag with counts.
The important part: it doesn't fight calibre. It works in place on your existing ~/Calibre Library — same database, same folder layout. Nothing to migrate, nothing to export, and calibre keeps working alongside it. If you don't have calibre at all, Octavo will create a library for you, and it's a real calibre library, so you can install calibre later and it just opens.
On safety, since we're all paranoid about our devices:
- It only ever writes into documents/. It never touches the storage root — a .bin file there is what the Kindle treats as a firmware update.
- .sdr folders (your reading progress, highlights, annotations) are never deleted. That's enforced in code, not by good intentions.
- It backs up the device before the first sync, and your metadata.db before the first edit.
The honest caveats:
- macOS 26+, Apple Silicon only.
- It's ad-hoc signed, not notarized — a Developer ID cert is $99/year and this is a hobby project. So you'll need to run xattr -dr com.apple.quarantine on it after downloading. Instructions are in the README.
- Tested against a Paperwhite (firmware 5.19.5). Other models should work, they all speak the same MTP protocol, but I only own the one, so reports welcome.
- Not implemented yet: TOC in converted books, .apnx page numbers, and the converter doesn't compress yet so converted files are bigger than calibre's.
Not trying to replace calibre — it does a hundred things this doesn't. I just wanted the ten things I actually use, in an app that launches instantly.
https://github.com/artemnovichkov/Octavo
Happy to answer anything. If it breaks on your Kindle model I'd genuinely like to know.