I built an unofficial Proton Drive sync client for Linux, with OneDrive-style files on demand
TL;DR: PHNX Drive Sync is a free, MIT-licensed Linux client for Proton Drive. Bidirectional sync, files on demand through a FUSE mount (files stay visible with their real size and download when you open them), a GTK4 + Libadwaita file manager, a tray icon, and Nautilus badges and scripts. It is unofficial and not affiliated with Proton. Code and installers: https://github.com/PHNX-Studios/phnx-drive-sync
I use Proton Drive for everything, but on Linux there is no official desktop client with a "files on demand" experience. I wanted what I had with OneDrive on Windows: every file listed in place, taking no disk space, and downloading only when I actually open it.
The tricky part is that Linux has no cloud-files kernel API like Windows' cldflt or macOS' File Provider. The only user-space way to get transparent recall-on-open is FUSE.
Screenshots: https://drive.proton.me/urls/JTJF41KST0#ogyZ1AUK7Iee
What it is and what it does
It is built directly on the official Proton Drive SDK (vendored), so it talks only to official endpoints and identifies itself honestly with an x-pm-appversion header. The engine is a TypeScript daemon running as a systemd user service. The files-on-demand mount is a small Python sidecar (pyfuse3) that reads placeholder metadata from a local SQLite baseline and asks the engine to hydrate a file on read. Everything lives under \~/.local; the core sync needs only glibc 2.17 and no root.
\- Bidirectional sync between \~/Proton Drive and your Proton Drive, with a proper three-way diff, rename detection, and .protonignore filters.
\- Files on demand: every synced path stays visible with its real size, costs no disk while online-only, and materializes byte-identically when you read it. Writes to a placeholder materialize first, then write.
\- pin / unpin / evict, plus a "keep on this device" mark so nothing you care about gets evicted.
\- A GTK4 + Libadwaita file manager window with per-file sync badges (cloud = online-only, green check = on this device, amber = pending), the usual file operations, and live status that updates as things sync.
\- A tray icon with sync status, storage, and quick actions.
\- Nautilus integration: cloud/check badges on your files and a right-click "Free up Space" / "Keep on This Device" menu.
\- Recall-on-hover prefetch (off by default), optional auto-evict when your disk runs low, and a conflict policy that never silently drops data (local wins, the remote copy is kept as a (conflict ...) file).
Install
Download the tarball for your architecture from the releases page, extract it, and run the installer. It wires up the systemd user units, autostart, icons and the Nautilus menu. The only manual step after that is signing in:
tar xzf phnx-drive-sync-<version>-linux-<arch>.tar.gz
cd phnx-drive-sync-<version>-linux-<arch>
./install.sh
phnx-drive-sync login
Note: currently login only exists via the terminal, there is no login GUI, but it is planned.
Honest caveats
\- Unofficial. Not affiliated with, endorsed by, or supported by Proton AG. "Proton" and "Proton Drive" are their trademarks; I just describe interoperability.
\- Files on demand needs the system FUSE stack. Without it the engine still does full sync, but the mount stays empty. The installer tells you exactly what is missing, and there is a no-root fallback for the pieces that can work that way.
\- It is a personal, non-commercial project, not a product. The GUI and tray want GTK; they degrade gracefully when a piece is missing rather than failing.
\- The status quo is honest, but it is early: this is a small solo project and I would love more eyes on it.
License and feedback
MIT, published by PHNX Studios. Issues and pull requests are welcome. If you try it, I would especially like to hear how it behaves on your distro, and whether the files-on-demand
Post #43317
10