From chu-gallery
Upload files to Cloudflare R2 storage. Supports images and videos with optional optimization. Returns public URLs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/chu-gallery:upload-to-r2The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generic skill to upload files to Cloudflare R2 storage.
Generic skill to upload files to Cloudflare R2 storage.
wrangler installed and authenticated (npm install -g wrangler && wrangler login)chu-videos for videos, chu-images for images)/upload-to-r2 {file-or-folder} {bucket-path} [--optimize]
Examples:
/upload-to-r2 ./video.mp4 cabo-2025/ - Upload single video/upload-to-r2 ./optimized/ cabo-2025/ - Upload folder contents/upload-to-r2 ./videos/ cabo-2025/ --optimize - Optimize then upload| Bucket | Domain | Use Case |
|---|---|---|
chu-videos | play.chu.fyi | Video files (.mp4) |
chu-images | images.chu.fyi | Image files (future) |
When --optimize flag is passed, runs optimization before upload:
./scripts/optimize-videos.sh {input} ./tmp-optimized
Optimization settings:
wrangler r2 object put chu-videos/{bucket-path}/{filename} --file {local-file} --remote
for file in {folder}/*.mp4; do
filename=$(basename "$file")
wrangler r2 object put chu-videos/{bucket-path}/$filename --file "$file" --remote
done
Returns URLs for uploaded files:
Uploaded 3 files to chu-videos/cabo-2025/:
- https://play.chu.fyi/cabo-2025/drinks-at-cuzi.mp4
- https://play.chu.fyi/cabo-2025/water-balloon-fight.mp4
- https://play.chu.fyi/cabo-2025/shark-attack.mp4
import LazyVideo from "../../../components/LazyVideo.svelte";
<LazyVideo
src="https://play.chu.fyi/{bucket-path}/video-name.mp4"
ariaLabel="Description of video"
client:visible
/>
This skill is used by:
/gallery - When gallery includes video contentnpx claudepluginhub joshuarweaver/cascade-content-creation-misc-1 --plugin chufucious-chu-gallery-pluginGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.
Dispatches multiple subagents concurrently for independent tasks without shared state. Use when facing 2+ unrelated failures or subsystems that can be investigated in parallel.