README.md
March 2, 2026 · View on GitHub
☁️ R2Drop
A native macOS uploader for Cloudflare R2
Finder · Menu Bar · Dock · CLI
🚀 What is R2Drop?
R2Drop makes Cloudflare R2 uploads feel native on macOS. No dashboards, no context switching — just drag, drop, and get a URL.
- 📁 Finder right-click → Send to R2
- 🔽 Drag & drop onto menu bar or Dock icon
- 📂 File picker for files and folders
- 🔗 Deep links (
r2drop://...) for automation - 💻 CLI companion for terminal workflows
✨ Features
| Feature | Description |
|---|---|
| 🔄 Background queue | Progress tracking, retries, pause/resume/cancel |
| 👥 Multi-account | Switch accounts from the menu bar |
| 🪣 Bucket routing | Per-account bucket + path prefix config |
| 🔗 Public URLs | Auto-copy with custom domain support |
| 🔔 Notifications | Success, failure, and token expiry alerts |
| 🔒 Privacy | Optional anonymous telemetry (can be fully disabled) |
📦 Install
macOS App (Direct Download)
Download the latest .dmg from GitHub Releases.
CLI
Homebrew (coming soon):
brew tap superhumancorp/tap
brew install --formula superhumancorp/tap/r2drop
Quick install:
curl -fsSL https://r2drop.com/install.sh | bash
From the macOS app: Open Settings → Install CLI (installs to /usr/local/bin)
🏁 Quick Start
- Launch R2Drop
- Complete onboarding — paste a Cloudflare API token, select a bucket
- Upload via Finder right-click, drag-and-drop, or CLI
- Copy the URL from the notification or queue UI
💻 CLI Usage
r2drop login # Interactive or scripted auth
r2drop upload <path> # Upload files or folders
r2drop status # Check upload status
r2drop queue # View upload queue
r2drop accounts # Manage accounts
r2drop history # Browse upload history
r2drop config get/set # Configuration
JSON output supported for automation: r2drop upload file.png --json
Full CLI reference: CLI.md
🏗️ Project Structure
├── src/
│ ├── app/ # macOS app (Swift/SwiftUI)
│ │ ├── R2Drop/ # Main app target
│ │ ├── FinderExtension/ # Finder Sync extension
│ │ └── Packages/ # Local Swift packages (R2Core, R2Bridge)
│ ├── app/engine/r2-cli/ # CLI companion (Rust crate + binary target)
│ └── www/ # Marketing website (r2drop.com)
├── src/homebrew/ # Homebrew tap templates
├── scripts/ # Install scripts
├── src/releases/ # Release notes per version
└── .github/workflows/ # CI/CD (build, release, deploy)
🔧 Development
# Clone
git clone https://github.com/superhumancorp/r2drop.git
cd r2drop
# Build the macOS app
cd app
xcodebuild build -scheme R2Drop -destination 'platform=macOS'
# Build the CLI
cd app/engine/r2-cli
cargo build --release
📊 Analytics
R2Drop uses PostHog for anonymous telemetry with full user control:
- Toggle in onboarding and Settings
- Sensitive values sanitized/hashed
- Error tracking is rate-limited and deduplicated
See TELEMETRY.md for the event catalog.
🛠️ CI/CD
| Workflow | Trigger | What it does |
|---|---|---|
ci.yml | Push/PR to main | Build + lint |
release.yml | Tag v* | Sign, notarize, publish DMGs, bump Homebrew tap |
cli-release.yml | Tag cli-v* | Build CLI (macOS arm64 + x86_64) |
deploy-www.yml | Push to www/ | Deploy website to Cloudflare R2 |
🐛 Troubleshooting
Finder right-click item missing
Finder Sync extensions are cached aggressively:
- System Settings → Privacy & Security → Extensions → Finder Extensions
- Toggle R2Drop extension off/on
killall Finder
r2drop command not found
Add ~/.local/bin to your PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
📄 License
Copyright © 2026 Superhuman Intelligence LLC. All rights reserved.
Built with ❤️ by Superhuman Intelligence LLC