music-cloud-uploader
Uploads promo videos and content to Cloudflare R2 or AWS S3.
Skill by netzkontrast
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/netzkontrast-music-cloud-uploader
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: cloud, writing, marketing, research
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/music-cloud-uploader
What's inside
- Skill name
music-cloud-uploader- Description
- Uploads promo videos and content to Cloudflare R2 or AWS S3. Use when the user wants to host promo content for social media or distribution.
- License
- MIT
- Instructions
- 343 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: "music-cloud-uploader" does not match folder "cloud-uploader"
- allowed-tools: must be a space-separated string
Files (1)
- SKILL.md
SKILL.md (first lines)
# Cloud Uploader Skill
Upload promo videos and other album content to cloud storage (Cloudflare R2 or AWS S3).
## Purpose
After generating promo videos with `/bitwize-music:promo-director`, upload them to cloud storage for:
- Hosting on websites
- Sharing via direct links
- CDN distribution
- Backup and archival
## When to Use
- After promo videos generated, user wants to upload to cloud
- User says "upload promos to R2" or "upload to S3"
- User says "upload promo videos for [album]"
- Manual invocation only (not automatic)
## Position in Workflow
```
Generate → Master → Promo Videos → **[Cloud Upload]** → Release
```
Optional step after promo-director, before release-director.
## Prerequisites
### Cloud Configuration
Cloud credentials must be configured in `~/.bitwize-music/config.yaml`:
```yaml
cloud:
enabled: true
provider: "r2" # or "s3"
# For Cloudflare R2
r2:
account_id: "your-account-id"
access_key_id: "your-access-key"
secret_access_key: "your-secret-key"
bucket: "promo-videos"
# For AWS S3
s3:
region: "us-west-2"
access_key_id: "your-access-key"
secret_access_key: "your-secret-key"
bucket: "promo-videos"
```
See `${CLAUDE_PLUGIN_ROOT}/reference/cloud/setup-guide.md` for detailed setup instructions.
### Required Files
- Promo videos generated (run `/bitwize-music:promo-director` first)
- Located at: `{audio_root}/artists/{artist}/albums/{genre}/{album}/promo_videos/`
- Album sampler at: `{audio_root}/artists/{artist}/albums/{genre}/{album}/album_sampler.mp4`
### Python Dependencies
```bash
# If using the shared venv (recommended)
~/.bitwize-music/venv/bin/pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt
# Or install separately
pip install boto3
```
The upload script uses `~/.bitwize-music/venv` if available, otherwise falls back to system Python.
## Workflow
### 1. Verify Prerequisites
**Check config:**
```bash
cat ~/.bitwize-music/config.yaml | grep -A 20 "cloud:"
```
Verify:
- `cloud.enabled: true`
- Provider credentials configured (r2 or s3)
- Bucket name set
**Check promo videos exist:**
```bash
ls {audio_root}/artists/{artist}/albums/{genre}/{album}/promo_videos/
ls {audio_root}/artists/{artist}/albums/{genre}/{album}/album_sampler.mp4
```
If missing:
```
Error: Promo videos not found.
Generate with: /bitwize-music:promo-director {album}
```
### 2. Get Python Command
**Call `get_python_command()` first** to get the venv Python path and plugin root. Use these for all bash invocations below.
```
PYTHON="{python from get_python_command}"
PLUGIN_DIR="{plugin_root from get_python_command}"
```
### 3. Preview Upload (Dry Run)
Preview first:
```bash
$PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --dry-run
```
Output shows:
- Provider and bucket
- Files to uploadFrom netzkontrast/agency, MIT.
More from netzkontrast/agency
- 0.479score
loop-library
netzkontrast
Discover, find, compare, audit, repair, adapt, and design repeatable AI-agent loops with explicit triggers, actions, verification, stopping conditions…
SkillCFreshness: CClaude Code +9 - 0.474score
silent-fail-recovery
netzkontrast
Deterministic recovery for Jules sessions that reach COMPLETED state without producing a remote branch (the "silent-fail" bug).
SkillCFreshness: CClaude Code +9 - 0.474score
context-safe-patch-handling
netzkontrast
Never echo a Jules patch body into the orchestrator's context — always route through `tools/jules-patch-extract.py` which writes the patch to…
SkillCFreshness: CClaude Code +9 - 0.474score
ponytail
netzkontrast
Use when building or reviewing agency's frugal discipline (Spec 332) or multi-agent self-installer (Spec 333), or when you want the minimal-code "lazy senior…
SkillCFreshness: CClaude Code +9 - 0.474score
jules-orchestrator-discipline
netzkontrast
Six hard-won orchestrator rules for dispatching, watching, and harvesting Google Jules sessions — derived from the 2026-05-17 silent-fail incidents.
SkillCFreshness: CClaude Code +9 - 0.471score
jules-orchestrator
netzkontrast
Delegates long-running codebase tasks (refactors, multi-file edits, test generation, feature implementation, automated PR creation) to the Google Jules…
SkillCFreshness: CClaude Code +9 - 0.471score
orchestrate
netzkontrast
Run a Jules session through its full lifecycle — dispatch, plan approval, monitor, verify, integrate — driven by the jules-row state machine.
SkillCFreshness: CClaude Code +9 - 0.469score
research
netzkontrast
Research a topic and return findings as a tool-result envelope.
SkillCFreshness: CClaude Code +9 - 0.469score
recover
netzkontrast
Recover a silent-failed Jules session — extract its patch metadata into the ontology and (optionally) apply it locally.
SkillCFreshness: CClaude Code +9 - 0.467score
music-clipboard
netzkontrast
Copies track content (lyrics, style prompts, streaming lyrics) to the system clipboard.
SkillCFreshness: CClaude Code +9 - 0.467score
music-document-hunter
netzkontrast
Searches and retrieves documents from free public sources using automated browser navigation.
SkillCFreshness: CClaude Code +9 - 0.467score
music-album-ideas
netzkontrast
Tracks and manages album ideas including brainstorming, planning, and status updates.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 8, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/netzkontrast/agency
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from netzkontrast
- 0.479score
loop-library
netzkontrast
Discover, find, compare, audit, repair, adapt, and design repeatable AI-agent loops with explicit triggers, actions, verification, stopping conditions…
SkillCFreshness: CClaude Code +9 - 0.474score
silent-fail-recovery
netzkontrast
Deterministic recovery for Jules sessions that reach COMPLETED state without producing a remote branch (the "silent-fail" bug).
SkillCFreshness: CClaude Code +9 - 0.474score
context-safe-patch-handling
netzkontrast
Never echo a Jules patch body into the orchestrator's context — always route through `tools/jules-patch-extract.py` which writes the patch to…
SkillCFreshness: CClaude Code +9 - 0.474score
ponytail
netzkontrast
Use when building or reviewing agency's frugal discipline (Spec 332) or multi-agent self-installer (Spec 333), or when you want the minimal-code "lazy senior…
SkillCFreshness: CClaude Code +9 - 0.474score
jules-orchestrator-discipline
netzkontrast
Six hard-won orchestrator rules for dispatching, watching, and harvesting Google Jules sessions — derived from the 2026-05-17 silent-fail incidents.
SkillCFreshness: CClaude Code +9 - 0.471score
orchestrate
netzkontrast
Run a Jules session through its full lifecycle — dispatch, plan approval, monitor, verify, integrate — driven by the jules-row state machine.
SkillCFreshness: CClaude Code +9
Cite this page
music-cloud-uploader skill. Agent Mart. https://agentmart.dev/skills/netzkontrast-music-cloud-uploader (last updated 2026-10-24)