Frostvex started in autumn 2024 as a weekend hack — I'd lost a directory of family photos to a botched rsync --delete the night before, and decided I wasn't going to keep apologizing for that class of mistake. The first 0.1.0 was 800 lines of Rust and could only push one direction. It took about six months to admit it was useful enough to keep working on.
It's a one-and-a-half-person project. I do the bulk of the work and a few people have been generous with code review and patches over the months — credits in humans.txt. There's no company behind it; there's no roadmap aiming at monetization. If that changes I'll say so. The Apache-2.0 license is a deliberate choice — it lets you embed frostvex in commercial products without asking, and that's fine by me.
Mostly by me. I sync three home pools (photos, project archive, music) plus a small media library on a NAS at my parents' place. Beyond that I know of:
If you're using it for something interesting, drop me a line — I keep meaning to write a "in production" page and would like to point at real cases.
Frostvex is a small CLI for moving files between machines I trust. It is not:
The reliable way is hello@frostvex.icu. I read it within a day or two; please attach frostvex log -n 200 --json if you're reporting a bug.
Source repository, issue tracker, and CI are all self-hosted at frostvex.icu/git. Sourcehut-shaped, since you asked.
I don't put my real name on this site. It's not a secret — anyone who's met me knows — but the project should stand on its own without name-dropping, and putting a face on a single-author project tends to invite weird parasocial expectations. So: I'm "f.v." here. Email is the same person.
The code is Apache-2.0 (full text). The name "frostvex" and the snowflake mark above are not trademarked — feel free to refer to the project by its name in derivative work, just don't use the mark to imply endorsement of something I'm not actually endorsing. Common-sense rules.
If you have questions about how frostvex compares to other tools, the benchmarks post answers most of the obvious ones with numbers. For the philosophical version, the merge engine post is a fair tour of how I think about the problem.