Your remote storage, as an ordinary folder.
Caution
Drivel is a work in progress. Do not use it for anything you cannot afford to lose. It is unfinished and under-tested, and it will probably lose data for somebody before it stops being either. Keep backups, make them often, and check that you can restore from them.
Drivel turns a folder on a storage provider into an ordinary directory on your machine. Open, edit and save files with the tools you already use — Drivel proxies every operation to a real local directory and syncs it with the provider in the background, in both directions. Reads and lookups never touch the network, so your file manager never spins waiting on the cloud.
The provider sits behind a small path-addressed interface, and everything peculiar to one lives behind its own prefix or its own config table. Two backends ship today: Google Drive, and SFTP — any machine you have an SSH account on, with nothing to install at the other end.
It is a client you run yourself: there is no Drivel service, and it ships no credentials of its own. You supply the ones for whatever backend you point it at, so Drivel reaches your storage under an identity that is yours to inspect and revoke.
Free software under the Mozilla Public License 2.0. What the project is trying to be, and what that costs: MANIFESTO.md.
sudo apt install fuse3 # or: dnf install fuse3
go install github.com/syshlted/drivel/cmd/drivel@latest
go install github.com/syshlted/drivel/cmd/drivel-provider-gdrive@latest # the backend
drivel login -account personal # one-time OAuth wizard
drivel mount # serves your config fileA single mount needs no config file at all:
drivel mount -mount ./mnt -data ./data \
-credentials credentials.json -token token.jsonOmit -credentials and Drivel runs log-only: it mounts and prints what it would
sync, without contacting the provider.
Syncing to a server you can ssh to needs no login step and no credentials of its
own — it is your existing SSH key. See SFTP.
On Linux a mount can also be an /etc/fstab line, brought up by mount -a or at
boot with no terminal attached — see mounting from
/etc/fstab.
Full walkthrough: docs/user/quickstart.md. You will need credentials for your provider — for Google Drive, your own Google API credentials, free and about five minutes.
Using Drivel — quickstart ·
installing ·
Google credentials ·
SFTP ·
configuration ·
lazy mode ·
data safety ·
troubleshooting ·
platform support ·
fstab mounts ·
drivel(1)
Developing Drivel — architecture · workflows · storage schema · dependencies · conventions · building · testing · writing a provider · glossary
What Drivel stands for — MANIFESTO.md · why MPL-2.0
Release history is in CHANGELOG.md. Contributions: CONTRIBUTING.md. Vulnerabilities: SECURITY.md.
- Bidirectional background sync — edit locally or in the cloud; both converge.
- Instant filesystem operations — nothing blocks on the network, ever.
- Lazy mode (
-lazy) — a whole remote tree visible as placeholders, content fetched on first read. A directory listing costs nothing. - Smart uploads — an unchanged rebuild or an editor rewriting an identical buffer sends nothing; large files upload in resumable chunks.
- Conflict-safe — concurrent edits produce a conflict copy, never silent loss.
- Guarded deletions — inferred only from a sync baseline, so a first run deletes nothing and a suspicious count refuses the whole pass.
- In-place mode (Linux) — mount a directory onto itself; the files just stay put when Drivel exits.
- Several accounts at once — N mounts in one process, each with its own credentials and state, validated against each other before any of them opens.
- HTTP/3 (QUIC) transport with automatic HTTP/2 fallback.
- Pluggable backends — the cloud side is a narrow path-addressed interface rather than a Drive-shaped one. Google Drive is the provider that ships today.
- Bring your own credentials — Drivel ships none of its own; you supply the credentials for the backend you point it at.
| Platform | Status |
|---|---|
| Linux (all architectures) | Supported — built and tested; what CI exercises. |
| FreeBSD | Supported — full suite run on 15.1. Needs fusefs; -data required. |
| macOS (Intel, Apple Silicon) | Builds; never run. Needs macFUSE; -data required. Treat as unverified. |
| Windows | Not supported, not planned. Use WSL2, or Google Drive for Desktop. |
Details, and what changes off Linux — in-place mode, extended attributes, case-insensitive filesystems, macFUSE and licensing — are in docs/user/platforms.md.
Bidirectional sync, lazy hydration, smart uploads, restart-safe path resolution, initial enumeration and multi-account mounts are all shipped. See CHANGELOG.md for what landed when, and what is planned next.
There are no tagged releases yet; build from source with make build, or
go install …@latest — the command and at least one drivel-provider-* backend.
make build # or: go build -o ./bin/drivel ./cmd/drivel
make check # everything CI runs, in CI's ordermake help lists every target. See
docs/dev/building.md.
Copyright (C) 2026 SystemHalted and Jeremy Melanson.
Drivel is free software licensed under the Mozilla Public License, version 2.0 — see LICENSE. MPL is copyleft per file, with an explicit patent grant: ship a modified Drivel source file and that file's source stays open; everything you build around it stays yours. Commercial products, linking into proprietary software, and closed-source backends written against the provider interface are all fine and always will be. There is no CLA.
What we ask, and deliberately do not require. The licence reaches Drivel's
own files and stops. Past that line we can only ask, so we do: if you write a
drivel-provider-* backend, publish it; if you run Drivel somewhere we cannot
test, tell us what happened. The provider seam is public precisely so backends
can live outside this tree — a fix that stays in your fork is a fix the next
person has to find again. That is a request, not a term, and nothing in it
conditions your rights under the licence.
The name is the exception. The licence covers the code, not the trademark, so please don't ship a fork calling itself Drivel. Call it something else and we'll cheer for it.
Drivel bundles no application secrets. The provider credentials you supply are yours; how you use a storage provider through them is governed by that provider's own terms, not by this project.