Skip to content
Content
Skill

/setup

Detects your Python environment and guides you through installing plugin dependencies. Use on first-time setup or when MCP server fails to start.

From plugin
bitwize-music
64853 skills1 hook1 MCP

Claude Code

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

SKILL.md

setup.SKILL.md
name: setup
description: Detects your Python environment and guides you through installing plugin dependencies. Use on first-time setup or when MCP server fails to start.
argument-hint: <blank for full check | "mcp" | "mastering" | "document-hunter">
model: haiku
allowed-tools:
  - Bash

Base directory for this skill: ${CLAUDE_PLUGIN_BASE_DIR}

Your Task

Guide the user through installing bitwize-music plugin dependencies based on their Python environment and requested components.

---

Setup Assistant

You help users install and verify plugin dependencies.

---

Step 1: Detect Environment

**Run these checks in parallel:**

# Python version
python3 --version

# Check if externally managed
python3 -c "import sysconfig; print(sysconfig.get_path('purelib'))" 2>&1 | grep -q "/usr" && echo "EXTERNALLY_MANAGED" || echo "USER_MANAGED"

# Check for pipx
command -v pipx >/dev/null 2>&1 && echo "pipx: installed" || echo "pipx: not installed"

# Check for venv support
python3 -m venv --help >/dev/null 2>&1 && echo "venv: supported" || echo "venv: not supported"

# Platform
uname -s

---

Step 2: Check Component Status

**IMPORTANT:** Run these checks **sequentially**, not in parallel. If one check fails, continue with the remaining checks to show complete status.

**CRITICAL:** Always check the venv, not system Python!

# Set venv path (macOS/Linux/WSL uses bin/python3; native Windows uses Scripts/python.exe)
VENV_PYTHON=~/.bitwize-music/venv/bin/python3
[ -f "$VENV_PYTHON" ] || VENV_PYTHON=~/.bitwize-music/venv/Scripts/python.exe

# Check if venv exists
if [ -f "$VENV_PYTHON" ]; then
    echo "✅ Venv exists at ~/.bitwize-music/venv"

    # Check each component in the venv
    # 2.x serves MCPServer from mcp.server.mcpserver, 1.x serves FastMCP from
    # mcp.server.fastmcp; the server takes either, so probe both (#537).
    $VENV_PYTHON -c "import mcp.server.mcpserver" 2>/dev/null || $VENV_PYTHON -c "import mcp.server.fastmcp" 2>/dev/null && echo "✅ mcp installed" || echo "❌ mcp not installed (need mcp[cli]>=1.28.1,<3)"
    $VENV_PYTHON -c "import matchering; print('✅ matchering installed')" 2>&1 || echo "❌ matchering not installed"
    $VENV_PYTHON -c "import boto3; print('✅ boto3 installed')" 2>&1 || echo "❌ boto3 not installed"
    $VENV_PYTHON -c "from playwright.sync_api import sync_playwright; print('✅ playwright installed')" 2>&1 || echo "❌ playwright not installed"

    # Check for version drift against requirements.txt
    $VENV_PYTHON -c "
import importlib.metadata, pathlib
reqs = pathlib.Path('${CLAUDE_PLUGIN_ROOT}/requirements.txt').read_text()
stale = []
for line in reqs.splitlines():
    line = line.split('#')[0].strip()
    if not line or '==' not in line:
        continue
    name, _, ver = line.partition('==')
    name = name.split('[')[0].strip()
    try:
        installed = importlib.metadata.version(name)
        if installed != ver:
            stale.append(f'  {name}: {installed} → {ver}')
    except importlib.metadata.PackageNotFoundError:
        stale.append(f'  {name}: missing (needs {ver})')
if stale:
    print('⚠️  Version drift detected:')
    print('\n'.join(stale))
else:
    print('✅ All package versions match requirements.txt')
" 2>&1
else
    echo "❌ Venv not found at ~/.bitwize-music/venv"
    echo "   Run: python3 -m venv ~/.bitwize-music/venv   # macOS/Linux/WSL"
    echo "   Or:  py -3 -m venv ~/.bitwize-music/venv      # Windows"
fi

All components are installed together in the venv via requirements.txt.

---

Step 3: Show Installation Commands

**Always use the unified venv approach** — it works on all platforms and is automatically detected by the plugin.

# Create unified venv (if it doesn't exist)
python3 -m venv ~/.bitwize-music/venv                                                    # macOS/Linux/WSL
py -3 -m venv ~/.bitwize-music/venv                                                       # Windows (native)

# Install ALL plugin dependencies
~/.bitwize-music/venv/bin/pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt                     # macOS/Linux/WSL
~/.bitwize-music/venv/Scripts/python.exe -m pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt   # Windows (native)

# Set up document hunter browser
~/.bitwize-music/venv/bin/playwright install chromium                                     # macOS/Linux/WSL
~/.bitwize-music/venv/Scripts/playwright.exe install chromium                             # Windows (native)

**That's it!** The plugin automatically detects and uses the platform venv (`~/.bitwize-music/venv` on macOS/Linux/WSL, `%USERPROFILE%\.bitwize-music\venv` on native Windows). No configuration needed.

**Works on:**

  • ✅ Linux (externally-managed Python)
  • ✅ macOS
  • ✅ Windows (native — Core tier, best-effort; audio tooling needs WSL2)
  • ✅ Windows (WSL)
  • ✅ All other systems

---

Step 4: Installation Guide

Present a clear, simple installation guide:

1. **Environment detected**: [Python version, Platform] 2. **Missing components**: [list what needs to be installed] 3. **Installation commands**:

   python3 -m venv ~/.bitwize-music/venv                                                  # macOS/Linux/WSL
   ~/.bitwize-music/venv/bin/pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt         # macOS/Linux/WSL
   ~/.bitwize-music/venv/bin/playwright install chromium                                   # macOS/Linux/WSL

   py -3 -m venv ~/.bitwize-music/venv                                                               # Windows (native)
   ~/.bitwize-music/venv/Scripts/python.exe -m pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt # Windows (native)
   ~/.bitwize-music/venv/Scripts/playwright.exe install chromium                                     # Windows (native)

4. **After installation**:

  • Restart Claude Code to reload the plugin
  • MCP server should show as running in `/plugin` status
  • Run `/bitwize-music:setup` again to verify

---

Step

Read more
@bitwize-music-studio
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.

64853 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
648
Star history of bitwize-music-studio/claude-ai-music-skills on GitHub, a chart by star-history.com

Other skills on bitwize-music.

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli11d33k
@iofficeai@iofficeaiInstall Skill

Questions about setup.

Which coding agents can use setup?
setup installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.