Skip to content

superhumancorp/r2drop

Repository files navigation

R2Drop

☁️ R2Drop

A native macOS uploader for Cloudflare R2
Finder Β· Menu Bar Β· Dock Β· CLI

Website Install Homebrew CI


πŸš€ 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

  1. Launch R2Drop
  2. Complete onboarding β€” paste a Cloudflare API token, select a bucket
  3. Upload via Finder right-click, drag-and-drop, or CLI
  4. 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:

  1. System Settings β†’ Privacy & Security β†’ Extensions β†’ Finder Extensions
  2. Toggle R2Drop extension off/on
  3. 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