Skip to content

/clipboard

Copies track content (lyrics, style prompts, streaming lyrics) to the system clipboard. Use when the user needs to paste lyrics or style prompts into Suno or other external tools.

shell
$ npx -y skills add bitwize-music-studio/claude-ai-music-skills --skill clipboard --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/clipboard
How auto-invocation works

Context preview

The summary Claude sees to decide when to auto-load this skill.

Copies track content (lyrics, style prompts, streaming lyrics) to the system clipboard. Use when the user needs to paste lyrics or style prompts into Suno or other external tools.

SKILL.md

clipboard.SKILL.md
name: clipboard
description: Copies track content (lyrics, style prompts, streaming lyrics) to the system clipboard. Use when the user needs to paste lyrics or style prompts into Suno or other external tools.
argument-hint: <content-type> <album-name> <track-number>
model: haiku
allowed-tools:
  - Read
  - Bash
  - bitwize-music-mcp

Your Task

**Input**: $ARGUMENTS

Copy content from track files to the system clipboard for pasting into Suno or other tools.

---

Clipboard Skill

Copy specific sections from track files directly to your clipboard.

Step 1: Detect Platform & Check Clipboard Tool

Run detection:

if command -v pbcopy >/dev/null 2>&1; then
  echo "macOS"
elif command -v clip.exe >/dev/null 2>&1; then
  # clip.exe is a built-in Windows utility (System32). Reachable both from WSL
  # via interop and from a native-Windows shell such as Git Bash, so this one
  # branch covers both. Verified on a windows-latest runner: Git Bash present,
  # clip.exe resolved at /c/Windows/system32/clip.exe, copy round-tripped.
  echo "Windows/WSL"
elif command -v xclip >/dev/null 2>&1; then
  echo "Linux-xclip"
elif command -v xsel >/dev/null 2>&1; then
  echo "Linux-xsel"
else
  echo "NONE"
fi

**If NONE:**

Error: No clipboard utility found.

Install instructions:
- macOS: pbcopy (built-in)
- Linux: sudo apt install xclip
- Windows (native) and WSL: clip.exe (built-in)

Step 2: Parse Arguments

Expected format: `<content-type> <album-name> <track-number>`

**Content types:**

  • `lyrics` - Suno Lyrics Box
  • `style` - Suno Style Box (auto-appends Exclude Styles if present)
  • `exclude` - Exclude Styles only (negative prompts)
  • `streaming-lyrics` - Streaming Lyrics (for distributors)
  • `all` - All Suno inputs (Style + Exclude + Lyrics combined)
  • `suno` - JSON object (title, style, exclude_styles, lyrics) for Suno auto-fill via Tampermonkey

Examples:

  • `/clipboard lyrics sample-album 03`
  • `/clipboard style sample-album 05`
  • `/clipboard streaming-lyrics sample-album 02`
  • `/clipboard all sample-album 01`

If arguments are missing:

Usage: /clipboard <content-type> <album-name> <track-number>

Content types: lyrics, style, exclude, streaming-lyrics, all, suno

Example: /clipboard lyrics sample-album 03

Step 3: Extract Content via MCP

Call `format_for_clipboard(album_slug, track_slug, content_type)` — extracts and formats the requested content in one call.

  • `content_type`: `"lyrics"`, `"style"`, `"exclude"`, `"streaming"`, `"all"`, or `"suno"`
  • Returns the formatted content ready for clipboard
  • Handles track resolution, section extraction, and formatting automatically

**If track not found:** MCP returns an error with available tracks.

Step 6: Copy to Clipboard

Use the detected platform's clipboard command:

| Platform | Command | |----------|---------| | macOS | `pbcopy` | | Windows (native) / WSL | `clip.exe` | | Linux (xclip) | `xclip -selection clipboard` | | Linux (xsel) | `xsel --clipboard --input` |

Example (use `printf '%s'` to safely handle special characters in lyrics):

printf '%s' "$content" | pbcopy  # macOS
printf '%s' "$content" | xclip -selection clipboard  # Linux

Step 7: Confirm

Report:

✓ Copied to clipboard: {content-type} from track {track-number}
  Album: {album}
  Track: {track-filename}

Error Handling

**Track file not found:**

Error: Track {track-number} not found in album {album}

Available tracks:
- 01-track-name.md
- 02-track-name.md

**Content section not found:**

Error: {content-type} section not found in track {track-number}

The track file may not have this section yet.

**Config missing:**

Error: Config not found at ~/.bitwize-music/config.yaml
Run /configure to set up.

---

Examples

Copy Suno Lyrics

/clipboard lyrics sample-album 03

Output:

✓ Copied to clipboard: lyrics from track 03
  Album: sample-album
  Track: 03-t-day-beach.md

Copy Style Prompt

/clipboard style sample-album 05

Copy Streaming Lyrics

/clipboard streaming-lyrics sample-album 02

Copy All Suno Inputs

/clipboard all sample-album 01

Output:

✓ Copied to clipboard: all suno inputs from track 01
  Album: sample-album
  Track: 01-intro.md

Contents:
- Style Box (with Exclude Styles if present)
- Lyrics Box

Copy Suno Auto-Fill JSON

/clipboard suno sample-album 01

Output:

✓ Copied to clipboard: suno auto-fill JSON from track 01
  Album: sample-album
  Track: 01-intro.md

Clipboard contains JSON with: title, style, exclude_styles, lyrics
Paste into Suno with the Tampermonkey auto-fill script (Ctrl+Shift+V).
See tools/userscripts/README.md for setup.

---

Implementation Notes

**Clipboard Detection:**

  • Check multiple tools in order of preference
  • `clip.exe` is built into Windows, so it serves both native Windows (via Git Bash) and WSL (via interop)
  • If no bash is available at all, PowerShell's `Set-Clipboard` is an equivalent native fallback (verified working)
  • Linux users may have either `xclip` or `xsel`

**Content Extraction:**

  • MCP `format_for_clipboard` handles all section extraction and formatting
  • No manual file parsing needed

**Multiple Matches:**

  • If track number matches multiple files (shouldn't happen), use the first match
  • Warn user if directory structure looks wrong
Read more
Read it on GitHub ↗
Ships withbitwize-music

I love music but never learned an instrument. AI became the creative outlet that was always out of reach. This project started as a way to go deep on Claude Code plugin architecture, agentic workflows, multi-model orchestration, and MCP tooling.

Get the whole plugin, auto-invoked
Stats
399
Stars
0
Views
93
Forks
Active
Maintenance
Python
Language
CC0-1.0
License
3d ago
Last commit
6mo ago
Created

Repo: bitwize-music-studio/claude-ai-music-skills