Alpha software, not for production data. Bugs can cause data loss, formats may change without migration, and the cryptography has not been independently audited. Keep your own backups and check that you can restore from them.
Varsto

Your files. Your storage.

Varsto is an end-to-end encrypted sync and backup app that uses your own devices and storage services of your choice. A disk, a NAS share, an S3 bucket or any rclone remote; the app encrypts everything on your devices, keeps a signed record of where every block is, and lets devices that are never online at the same time stay in sync through that storage.

Download the alpha Quick start Source on GitHub

Diagram: your keys in the centre, connected by encrypted links to an S3 bucket, a cold archive, hard drives on a shelf, a NAS, a laptop and a phone; every place holds only locked, encrypted blocks.
Copies wherever you decide: a bucket, a cold archive, old disks on a shelf, your own machines. Every copy is ciphertext; the keys stay with you.

What works today (alpha, 0.0.1-alpha.11)

Encrypted before it leaves your device

Files are cut into content-defined chunks, each encrypted with XChaCha20-Poly1305 under keys derived from your vault. Storage sees opaque objects and sizes, never names, hashes or content. How it all works.

Bring your own storage

Any directory this device can reach, any S3-compatible bucket (AWS, Scaleway, Hetzner, B2, R2, MinIO) with your own keys, or any rclone remote. Cold storages and archive classes are written but never read without your confirmation.

Devices that never meet still converge

Each device keeps a signed, encrypted ledger and publishes it through the storage. Edits, deletions and conflicts resolve deterministically; concurrent edits keep both versions, deletions go to a trash.

Background app on every desktop

The background service starts at login, watches folders and syncs within seconds, with no buttons to press; the interface opens in your browser (its own window on macOS), served only to this computer. Updates are checked automatically and offered when a newer version exists.

Selective sync, transferrer disks, untrusted replicas, sharing

Placeholders until you fetch; a USB stick that carries only what the other device lacks; a friend's NAS that stores your copies without being able to open them; a folder shared with another user by its key. See Features, Use cases and Screenshots.

Post-quantum hybrid cryptography

Every ledger batch is signed with Ed25519 and ML-DSA-65, and both must verify. A share token is sealed to the recipient's X25519 + ML-KEM-768 key, so it can travel over any channel. Old Ed25519-only batches stay valid through the algorithm identifier they carry.

An assistant with limited access

An MCP server lets the AI assistant of your choice read, analyse and reorganise files in exactly the folders you grant, read-only unless you say otherwise. Varsto itself tracks when files were last used and suggests where idle data is cheapest to keep.

Policies that warn in time

"Two cloud copies and one at home, verified within 30 days." Every device checks it from the ledger and warns, in the app and by notification, before it stops being true.

Peer-to-peer, compressed

Your devices exchange encrypted blocks directly, torrent-style: on the LAN automatically, across the internet through NAT with hole punching, and through one of your own reachable devices when punching fails. No trackers, no vendor relay. Blocks are compressed before encryption, so every copy and transfer is small. From a home behind NAT, large files arrived from peers at 8 to 9 MB/s on a 100 Mbit/s line, up to 1.8 times as fast as from the bucket: Benchmarks.

Strongroom folders

A folder whose key exists only while you touch your FIDO2 security key. Cryptographic, not a dialog: no passphrase, vault key or stolen laptop opens it.

Old disks as a pool

Plug a disk into the dock, add it to the pool, and it fills with what the pool lacks until its reserve. Eject when told, keep it anywhere; when it comes back it is recognised by its marker, checked and topped up. A file whose only copy is on a disk that is away says so: "attach disk data-01 (shelf)".

Organizations for business use

Administrators approve devices for named people, remove a person with every device of theirs in one step, set what members may do, and keep a signed, chained log of it. A root key on paper appoints administrators. A vault without an organization sees none of it. More.

Bookkeeping you can check

varsto fsck --verify compares the ledger with what the storage actually holds and re-hashes every object. A device restored from an old backup is detected and fenced.

What is designed but not built yet

iOS, wider NAT testing

The iOS build on real devices is next. NAT traversal is built but tested on localhost and the maintainer's own networks only; a vault with every device behind NAT still has no path across the internet.

Honest status

Downloads

Release 0.0.1-alpha.10 · SHA256SUMS · manifest.json

Linux

Download for Linux

varsto-0.0.1-alpha.10-x86_64-unknown-linux-musl.tar.gz
7.7 MB · SHA-256 11d8674523a9…

x86_64, static binary. Unpack and run ./varsto once: it installs itself for your user (varsto on your PATH, the background service as a systemd user unit, the tray at login, Varsto in the application menu; no root). Tray icon, background service, browser interface and command line in one file.

macOS

Download Varsto.app (Apple Silicon)

Varsto-0.0.1-alpha.10-macos.dmg
8.0 MB · SHA-256 0c7f3880adea…

Apple Silicon. Open the disk image and drag Varsto to Applications. The app has its own window, a menu-bar item, Finder actions (right-click a file: Download or Free up space with Varsto; double-click a placeholder to download and open it), the background service and the varsto command line inside the bundle. Unsigned: right-click, Open the first time.

Windows

Download for Windows

varsto-0.0.1-alpha.10-x86_64-pc-windows-gnu.zip
10.2 MB · SHA-256 525f5e3b7bb2…

x86_64 zip. Double-click Varsto.cmd for the tray icon and the interface. Cross-compiled, not yet tested on Windows.

Android

Download for Android

varsto-0.0.1-alpha.10-android-debug.apk
18.1 MB · SHA-256 d0f136b97739…

Debug-signed APK for sideloading: allow the install when the phone asks. Runs the same core as a foreground service. Tested in the Android 15 emulator only.

iOS

Not available yet

Not downloadable yet: the app shell is in the repository (apps/ios) and needs a Mac with Xcode to build.

Source

Download for Source

varsto-0.0.1-alpha.10-source.tar.gz
15.3 MB · SHA-256 1726c990009a…

Git archive of the tagged release. Build with a stable Rust toolchain: cargo build --release.

All files and checksums
FilePlatformSizeSHA-256
varsto-0.0.1-alpha.10-x86_64-unknown-linux-musl.tar.gzLinux x86_647.7 MB11d8674523a9984a0a302b6208c75eaf51a746840617e9c31dc35e7af0404820
varsto-0.0.1-alpha.10-x86_64-pc-windows-gnu.zipWindows x86_6410.2 MB525f5e3b7bb23c99d9ce06e0d332ccfea05db916cc596a570b0bb2eb176a4169
Varsto-0.0.1-alpha.10-macos.dmgmacOS app (Apple Silicon)8.0 MB0c7f3880adea8aca6799bc3dab5f28ce73d9d6e2aa3c075a081adab7935efb3f
varsto-0.0.1-alpha.10-android-debug.apkAndroid (arm64, x86_64)18.1 MBd0f136b977394040d377b76afe329b586c1bee08a7a28cfe8bf6c83323ceb572
varsto-0.0.1-alpha.10-source.tar.gzSource15.3 MB1726c990009aead4d5efa66bcbc5e6b201c6d0a18e82f07a512dbbc63e7ae0f2
Verify your download

SHA256SUMS is signed with the Varsto release key (SHA256SUMS.sig, minisign format). The key is kept offline, built into every varsto binary and published in the repository and here; key ID 2861CE1D220B07F3:

RWTzBwsiHc5hKJfkPOF6AQQWdIOHE1jf/UMs/GUCoOqocAJftz915FBF

With Varsto already installed, put SHA256SUMS and SHA256SUMS.sig next to the download (or leave them out to fetch them) and run

varsto verify-release varsto-0.0.1-alpha.10-x86_64-unknown-linux-musl.tar.gz --github

--github also compares the checksum with the list attached to the GitHub release, a second channel. Without Varsto, use minisign and then check the hash:

minisign -Vm SHA256SUMS -x SHA256SUMS.sig -P RWTzBwsiHc5hKJfkPOF6AQQWdIOHE1jf/UMs/GUCoOqocAJftz915FBF
sha256sum -c --ignore-missing SHA256SUMS

varsto update does all of this by itself and refuses an update whose signature or checksum does not match.

Verify a download: the checksum list is signed with the Varsto release key (see "Verify your download" above): varsto verify-release <file> --github, or minisign and sha256sum -c SHA256SUMS --ignore-missing. varsto update checks the signature and the GitHub release by itself.

Latest from the blog