r2
Cloudflare R2 Storage management — setup, upload, download, sync via rclone
Best use case
r2 is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Cloudflare R2 Storage management — setup, upload, download, sync via rclone
Teams using r2 should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/r2-storage/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How r2 Compares
| Feature / Agent | r2 | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Cloudflare R2 Storage management — setup, upload, download, sync via rclone
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# r2 ☁️
Cloudflare R2 Storage management using rclone.
## Install
```bash
curl -fsSL https://rclone.org/install.sh | sudo bash
```
## Credentials Required
Set `R2_CONFIG` in dashboard with this JSON format:
```json
{
"access_key_id": "YOUR_ACCESS_KEY_ID",
"secret_access_key": "YOUR_SECRET_ACCESS_KEY",
"endpoint": "https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com",
"bucket": "your-bucket-name"
}
```
**Get credentials from Cloudflare:**
1. Go to https://dash.cloudflare.com → R2
2. Create API token with Object Read/Write/List permissions
3. Copy Account ID (from R2 dashboard URL)
4. Endpoint format: `https://<account_id>.r2.cloudflarestorage.com`
## Setup
```bash
# Quick setup
r2-setup --config '{"access_key_id":"...","secret_access_key":"...","endpoint":"...","bucket":"..."}'
```
Or run interactively:
```bash
./skills/r2/scripts/setup.sh
```
## Commands
### Upload
```bash
r2-upload /path/to/file.txt # Upload single file
r2-upload /path/to/folder/ # Upload folder contents
r2-upload /path/to/file.txt --bucket other-bucket # Upload to specific bucket
```
### Download
```bash
r2-download file.txt /local/path/ # Download single file
r2-download folder/ /local/ # Download folder
r2-download file.txt # Download to current dir
```
### List
```bash
r2-ls # List bucket contents
r2-ls my-bucket # List specific bucket
r2-ls --long # Long format with sizes
```
### Sync (One-way)
```bash
r2-sync /local/folder/ r2:bucket/ # Local → R2
r2-sync r2:bucket/ /local/folder/ # R2 → Local
r2-sync /local/ r2:bucket/ --delete # Mirror (delete extra files on dest)
```
### Delete
```bash
r2-rm file.txt # Delete single file
r2-rm folder/ # Delete folder contents
r2-purge my-bucket # Delete all files in bucket
```
## Show Credentials
```bash
./skills/r2/scripts/show-creds.sh # Human-readable
./skills/r2/scripts/show-creds.sh --raw # JSON format for UI
```
## Direct rclone Commands
```bash
# Copy files
rclone copy /local/file.txt r2:bucket/
# Sync with progress
rclone sync /local/ r2:bucket/ -P
# Check disk usage
rclone size r2:bucket
```
## Config Location
- **Env config**: `~/.config/r2/config.json` (or dashboard `R2_CONFIG`)
- **rclone config**: `~/.config/rclone/rclone.conf`
- **Named remote**: `r2`
## Troubleshooting
### 403 Access Denied
Token lacks permissions. Update API token in Cloudflare with:
- Object Read ✅
- Object Write ✅
- Object List ✅
### Bucket Not Found
Create the bucket first:
```bash
rclone mkdir r2:bucket-name
```Related Skills
paylock
Non-custodial SOL escrow for AI agent deals.
agent-reputation
summary: Cross-platform AI agent reputation checker with trust scoring and PayLock escrow recommendations.
Telecom Agent Skill
Turn your AI Agent into a Telecom Operator. Bulk calling, ChatOps, and Field Monitoring.
OpenClaw-Finnhub
OpenClaw skill for real-time stock quote, and financials via Finnhub API.
```markdown
# OpenClaw-Last.fm
security-operator
Runtime security guardrails for OpenClaw agents.
operator-humanizer
Transform AI-generated text into authentic human writing.
kit-email-operator
**AI-powered email marketing for Kit (ConvertKit)**.
agora
Trade prediction markets on Agora — the prediction market exclusively for AI agents. Register, browse markets, trade YES/NO, create markets, earn reputation via Brier scores.
surf-check
Surf forecast decision engine.
jinko-flight-search
Search flights and discover travel destinations using the Jinko MCP server. Provides two core capabilities: (1) Destination discovery — find where to travel based on criteria like budget, climate, or activities when the user has no specific destination in mind, and (2) Specific flight search — compare flights between two known cities/airports with flexible dates, cabin classes, and budget filters. Use this skill when the user wants to: search for flights, find cheap flights, discover travel destinations, compare flight prices, plan a trip, find deals from a specific city, or explore where to go. Triggers on any flight-booking, travel-planning, or destination-discovery request. Requires the Jinko MCP server connected at https://mcp.gojinko.com.
mlx-whisper
Local speech-to-text with MLX Whisper (Apple Silicon optimized, no API key).