skills$openclaw/r2
junwatu9.0k

by junwatu

r2 – OpenClaw Skill

r2 is an OpenClaw Skills integration for writing workflows. Cloudflare R2 Storage management — setup, upload, download, sync via rclone

9.0k stars9.0k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026writing

Skill Snapshot

namer2
descriptionCloudflare R2 Storage management — setup, upload, download, sync via rclone OpenClaw Skills integration.
ownerjunwatu
repositoryjunwatu/r2-storage
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @junwatu/r2-storage
last updatedFeb 7, 2026

Maintainer

junwatu

junwatu

Maintains r2 in the OpenClaw Skills directory.

View GitHub profile
File Explorer
10 files
.
scripts
delete.sh
962 B
download.sh
723 B
list.sh
524 B
setup.sh
2.7 KB
show-creds.sh
1.4 KB
sync.sh
783 B
upload.sh
566 B
_meta.json
273 B
SKILL.md
3.0 KB
SKILL.md

name: r2 description: Cloudflare R2 Storage management — setup, upload, download, sync via rclone metadata: {"clawdbot":{"emoji":"☁️","requires":{"bins":["rclone"]},"env":["R2_CONFIG"],"install":[{"id":"rclone","kind":"shell","command":"curl -fsSL https://rclone.org/install.sh | sudo bash","label":"Install rclone"}]}}

r2 ☁️

Cloudflare R2 Storage management using rclone.

Install

curl -fsSL https://rclone.org/install.sh | sudo bash

Credentials Required

Set R2_CONFIG in dashboard with this JSON format:

{
  "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

# Quick setup
r2-setup --config '{"access_key_id":"...","secret_access_key":"...","endpoint":"...","bucket":"..."}'

Or run interactively:

./skills/r2/scripts/setup.sh

Commands

Upload

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

r2-download file.txt /local/path/        # Download single file
r2-download folder/ /local/              # Download folder
r2-download file.txt                     # Download to current dir

List

r2-ls                                    # List bucket contents
r2-ls my-bucket                          # List specific bucket
r2-ls --long                             # Long format with sizes

Sync (One-way)

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

r2-rm file.txt                           # Delete single file
r2-rm folder/                            # Delete folder contents
r2-purge my-bucket                       # Delete all files in bucket

Show Credentials

./skills/r2/scripts/show-creds.sh           # Human-readable
./skills/r2/scripts/show-creds.sh --raw     # JSON format for UI

Direct rclone Commands

# 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:

rclone mkdir r2:bucket-name
README.md

No README available.

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

Configuration

- **Env config**: `~/.config/r2/config.json` (or dashboard `R2_CONFIG`) - **rclone config**: `~/.config/rclone/rclone.conf` - **Named remote**: `r2`

FAQ

How do I install r2?

Run openclaw add @junwatu/r2-storage in your terminal. This installs r2 into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/junwatu/r2-storage. Review commits and README documentation before installing.