One-way, encrypted backup of your local folders to your own Google Drive. Fast, battery- and network-aware, with an in-app restore browser. Desktop app for Windows, macOS, and Linux, built with Tauri 2 + Vue 3 + Rust.
Driven mirrors the folders you choose into your own Google Drive in one direction only: local additions and changes are uploaded, and your source folders stay the single source of truth. With per-source client-side encryption turned on, file names and contents are encrypted on your machine before they ever leave it, so Google stores only ciphertext.
Driven uses your own Google OAuth credentials, so your files never pass through anyone else's servers. The first-run wizard includes a step-by-step, plain-English guide to creating that credential in the Google Cloud Console:
- One-way backup to your own Google Drive (no second cloud bill, no two-way sync surprises).
- Optional per-source client-side encryption (XChaCha20-Poly1305 for contents and file names; a BIP39 recovery phrase guards the master key).
- Scanner that honors
.gitignore, built-in and custom exclude rules, and a configurable symlink policy. - Concurrent, paced executor with retries and resumable uploads.
- Battery and network awareness: backups defer on battery and on metered or offline networks, then resume automatically.
- Windows Volume Shadow Copy support so locked files (Outlook PSTs, running DB files, VM disks) still back up.
- In-app restore browser with full-text file-name search and streaming decrypt.
- Activity dashboard with a live tail and filterable history.
- In-app auto-update with signed update manifests and a stable / dev channel selector.
- Anonymous, opt-out telemetry (coarse counts only; never file names, paths, or content).
Download the installer for your platform from the GitHub Releases page. Pick the latest release and grab the asset for your OS:
- Windows:
.msior.exe(NSIS) installer - macOS:
.dmg(universal, Apple Silicon and Intel) - Linux:
.AppImage(portable) or.deb(Debian / Ubuntu)
Driven's V1 binaries are not yet code-signed with a paid OS certificate, so the operating system will warn you the first time you run them. The binaries are the same artifacts the public CI release pipeline produced; the warnings are about the missing certificate, not about the contents. You bypass them once.
When you run the installer, Windows SmartScreen may show "Windows protected your PC". Click "More info", then "Run anyway". After the first install, SmartScreen stops warning for that version.
macOS will refuse to open an unsigned app on a double-click. Either:
-
Right-click (or Control-click) the app in Finder, choose "Open", then confirm "Open" in the dialog, or
-
Remove the quarantine attribute from a terminal:
xattr -dr com.apple.quarantine "/Applications/Driven.app"
Because the macOS build is not signed with a Developer ID in V1, the in-app
auto-updater is NOT reliable on macOS: the OS may block the silently-staged
update from launching. This is a known V1 limitation. On macOS, update Driven by
re-downloading the latest .dmg from the Releases page and reinstalling, rather
than relying on the in-app updater. On Windows and Linux the in-app updater works
normally. Code signing on macOS is tracked for a future release, after which the
in-app updater will be supported there too.
Driven uses YOUR own Google OAuth client credentials rather than a shared app-wide client. This keeps you in control of your Google project and avoids a shared rate-limit / verification bottleneck. On first launch, the setup wizard walks you through:
- Creating (or reusing) a Google Cloud project and enabling the Google Drive API.
- Creating an OAuth 2.0 Client ID of type "Desktop app" and pasting its client id and client secret into the wizard. Driven uses the PKCE loopback flow, so the secret stays on your machine; refresh tokens are stored only in the OS keychain.
- Signing in to the Google account you want to back up to and granting Drive access.
- Choosing the folders to back up and (optionally) enabling encryption, which generates and shows your recovery phrase. Write the recovery phrase down: it is the only way to decrypt your backup if you lose the machine.
The wizard explains each step in-app. If you skip a step you can finish it later from Settings.
Driven has two update channels, selectable in Settings > About:
- Stable: tagged releases (recommended for everyone).
- Dev: pre-release builds for testing upcoming changes; expect rough edges.
The About screen shows the current version, the active channel, and the release
notes for the installed version (sourced from CHANGELOG.md). See the macOS
updater caveat above before relying on in-app updates on macOS.
Prereqs:
- Rust stable (
rustup install stable) - Node.js 22+ and pnpm 10+
cargo install tauri-cli@^2 cargo-deny cargo-watch just(Windows users can installjustviascoop install just)- Linux build deps:
libwebkit2gtk-4.1-dev libxdo-dev libssl-devlibayatana-appindicator3-dev librsvg2-dev libsoup-3.0-devjavascriptcoregtk-4.1
Clone and run in dev mode:
git clone https://github.com/pmaxhogan/driven
cd driven
pnpm --dir ui install
cargo tauri devProduce installers (output under src-tauri/target/release/bundle/):
cargo tauri buildUseful recipes (see the justfile):
just test # cargo test --workspace + vitest
just lint # cargo fmt --check + clippy + eslint
just bundle # cargo tauri build
just deny # cargo deny checkThe headless tools - the debugging CLI (driven-cli) and the stress / chaos
harness (driven-chaos) - ship as a public image at
ghcr.io/pmaxhogan/driven. The image does not include the desktop GUI; use
the native installers above for that.
Tags:
:latest/:stable- the highest stable release.:dev/:nightly- the latestmaincommit.:vX.Y.Z- an exact release;:vX- the highest stable build of majorX.
# Default (no args) prints the CLI help:
docker run --rm ghcr.io/pmaxhogan/driven
# Run the CLI as normal:
docker run --rm ghcr.io/pmaxhogan/driven driven-cli --help
# Run the long chaos soak (issue #23) - the hermetic sweep then a seeded fuzz:
docker run --rm ghcr.io/pmaxhogan/driven:dev chaos-soak --duration 6h
# Or invoke the chaos harness directly:
docker run --rm ghcr.io/pmaxhogan/driven driven-chaos fuzz --duration 6hdesign/DESIGN.md- architecture, locked decisions, resolved defaultsdesign/SPEC.md- concrete crate / schema / IPC / config detaildesign/ROADMAP.md- M0..M10 phased milestonesdesign/STRESS_HARNESS.md- chaos / fuzz / soak test cataloguedesign/IMPLEMENTATION.md- implementation orchestration plan
See CONTRIBUTING.md for the local gates, the Conventional Commits requirement, and the branch / PR flow, and CODE_OF_CONDUCT.md for community expectations.
Dual-licensed under either of:
- MIT license (LICENSE-MIT)
- Apache License, Version 2.0 (LICENSE-APACHE)
at your option. See LICENSE for the summary and SPDX identifier.
Contributions intentionally submitted for inclusion in Driven by you, as defined in the Apache-2.0 license, shall be dual-licensed as above, without any additional terms or conditions.

