v0.1.60 Free & open source · MIT

One desktop client for every S3-compatible bucket.

R2 Client is a fast, native app for Cloudflare R2, AWS S3, MinIO, and RustFS. Manage multiple accounts, transfer between providers, and preview files — without ever opening a browser tab.

macOS · Windows · Linux — universal builds, auto-updates
Works with every S3-compatible backend
Cloudflare R2
AWS S3
MinIO
RustFS

Built for moving bytes, not clicking through dashboards.

Every feature you expect from a serious storage client — and the ones you didn't know you needed.

Four providers. One workflow.

Add any combination of R2, S3, MinIO, or RustFS accounts — plus multiple API tokens per account with different bucket permissions. Switch backends with a click.

cloudflare-r2 aws-s3 minio rustfs s3-compatible

Cross-account transfers that fly.

Stream files directly between accounts and providers — no temp files, no local disk hit. Server-side copy when possible. Up to 5 concurrent transfers with 4 parallel parts each.

R2 · prod S3 · archive

Preview anything.

Images, video, PDFs, Markdown, and 30+ code languages — rendered with Monaco, inline.

jpg mp4 pdf md tsx json yaml sql svg +25

Batch everything.

Select hundreds of files. Download, move, delete, rename. Pause, resume, cancel.

release-v0.1.60.dmg82%
assets.zip54%
logs-2026-04.tar21%

Resumable multipart uploads.

Drop a 10 GB file, close your laptop, pick up where you left off. Parallel parts by default.

Tauri-native.

Rust backend, tiny binary, no Electron tax. Opens in under a second.

Signed & public URLs.

Copy provider-aware links to the clipboard with one shortcut. Custom domains supported.

Video thumbnails.

Auto-generated via ffmpeg. Scrub through a bucket of .mp4s the way you expect.

Configured the way each provider expects.

Provider-aware auth, endpoints, path-style rules, and public-link builders — not a leaky S3 abstraction.

Cloudflare R2

Account ID + API Token, multiple tokens per account, per-bucket public domain.

zero egress

AWS S3

Access keys, region, optional custom endpoint and force path-style for clones.

regions · endpoints

MinIO

Self-hosted friendly. Custom endpoint + scheme, optional path-style toggle.

self-hosted

RustFS

Path-style always on. Drop in the endpoint and your keys — done.

path-style forced

From zero to bucket in under a minute.

1

Install

Download the installer for your platform, or build from source with Bun + Rust. Tauri keeps the binary small and the boot fast.

2

Add an account

On first launch the Add Account dialog opens. Pick your provider, paste your credentials, and click Load to fetch buckets.

3

Browse & manage

Click any bucket in the sidebar. Upload, preview, rename, generate signed URLs, or select across folders for a batch transfer.

4

Move between providers

Select files → Batch Move → pick a destination account and bucket. Toggle Delete original for move vs. copy. Queue runs in the background.

# The easy way — install via Homebrew
brew install dickwu/tap/r2

# Optional: ffmpeg enables video thumbnail previews
brew install ffmpeg

# If you grabbed the .dmg instead, macOS may block the app.
# Open System Settings → Privacy & Security → "Open Anyway",
# or remove the quarantine flag manually:
sudo xattr -d com.apple.quarantine /Applications/r2.app/

# Fresh-start fix if the app refuses to launch
rm -rf ~/Library/Application\ Support/com.lifefarmer.r2/
rm -rf ~/Library/Caches/com.lifefarmer.r2/

Shipped every week. Sometimes more.

The main changes from recent releases.

v0.1.74
Apr 17, 2026
Latest
Sharper video previews
Shared lazy-loaded thumbnail hook with modal poster support — video previews load faster and stay consistent across list, grid, and full-screen views.
v0.1.73
Mar 31, 2026
Auto-rename uploads
Upload modal can now auto-append a timestamp before the extension to avoid S3 key collisions — handles .tar.gz, dotfiles, and relative paths correctly.
v0.1.71
Mar 22, 2026
Multi-threaded download engine
Parallel HTTP Range requests — files ≥ 10 MB split into ~8 MB chunks, with per-chunk progress, sparkline, and always-visible status bar.
v0.1.68
Mar 18, 2026
Progressive lazy sync
Every folder opens in under a second regardless of bucket size — works on buckets with 1M+ objects across R2, AWS, and MinIO.
v0.1.65
Mar 6, 2026
Homebrew cask & auto-update
Install on macOS via brew install dickwu/tap/r2, with in-app update checks that prompt to restart.
View all releases on GitHub

Ready when you are.

Native builds for every desktop OS. No account required.

Auto-updates · Code-signed · MIT licensed