Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Detects your Python environment and guides you through installing plugin dependencies. Use on first-time setup or when MCP server fails to start.
.claude/skills/bitwize-music-studio-setup/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 65% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 232% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 138% | 0% |
Base directory for this skill: ${CLAUDE_PLUGIN_BASE_DIR}
Guide the user through installing bitwize-music plugin dependencies based on their Python environment and requested components.
You help users install and verify plugin dependencies.
Run these checks in parallel:
bash# 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
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!
bash# 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 $VENV_PYTHON -c "import mcp; print('✅ mcp installed')" 2>&1 || echo "❌ mcp not installed" $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.
Always use the unified venv approach — it works on all platforms and is automatically detected by the plugin.
bash# 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:
Present a clear, simple installation guide:
bash 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)
/plugin status/bitwize-music:setup again to verifyAfter user reports they've installed, re-run the checks from Step 2 and confirm:
✅ MCP server: Ready ✅ Audio mastering: Ready ✅ Cloud uploads: Ready ✅ Document hunter: Ready
Next steps: Run /bitwize-music:configure to set up your workspace paths.
Use clear sections with checkboxes for status:
markdown## bitwize-music Setup ### Environment - Python: 3.12.3 - System: Linux ### Component Status - [❌] MCP server - [❌] Audio mastering - [❌] Cloud uploads - [❌] Document hunter ### Installation Run these commands to install all plugin dependencies (macOS/Linux/WSL shown; see Step 3 for the Windows native `py -3` / `Scripts\` equivalents):
python3 -m venv ~/.bitwize-music/venv
~/.bitwize-music/venv/bin/pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt
~/.bitwize-music/venv/bin/playwright install chromium
**After installation:**
1. Restart Claude Code
2. All components will work automatically
3. Run `/bitwize-music:setup` to verify
The plugin automatically detects `~/.bitwize-music/venv` — everything just works!| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | fail→fail | 8,771 | 7,787 | -11% | 1 | 1 | 0% | 1,557 | 2,341 | +50% | 0 | 0 | — |
case-01 | fail→fail | 9,954 | 7,958 | -20% | 1 | 1 | 0% | 1,735 | 2,401 | +38% | 0 | 0 | — |
case-02 | fail→fail | 11,202 | 6,133 | -45% | 1 | 1 | 0% | 2,090 | 2,330 | +11% | 0 | 0 | — |
case-03 | fail→fail | 11,289 | 7,097 | -37% | 1 | 1 | 0% | 2,107 | 2,469 | +17% | 0 | 0 | — |
case-04 | fail→fail | 10,456 | 10,535 | +1% | 1 | 1 | 0% | 1,664 | 2,380 | +43% | 0 | 0 | — |
case-05 | pass→fail | 11,318 | 6,861 | -39% | 1 | 1 | 0% | 1,657 | 2,156 | +30% | 0 | 0 | — |
case-07 | fail→fail | 10,696 | 14,058 | +31% | 1 | 1 | 0% | 1,866 | 2,262 | +21% | 0 | 0 | — |
case-08 | fail→pass | 9,824 | 5,272 | -46% | 1 | 1 | 0% | 1,795 | 2,964 | +65% | 0 | 0 | — |
case-09 | pass→fail | 7,676 | 7,462 | -3% | 1 | 1 | 0% | 1,221 | 2,317 | +90% | 0 | 0 | — |
case-10 | fail→fail | 10,398 | 8,559 | -18% | 1 | 1 | 0% | 1,836 | 2,574 | +40% | 0 | 0 | — |
case-11 | fail→fail | 11,088 | 11,736 | +6% | 1 | 1 | 0% | 1,985 | 2,544 | +28% | 0 | 0 | — |
case-12 | pass→pass | 6,100 | 2,047 | -66% | 1 | 1 | 0% | 939 | 2,273 | +142% | 0 | 0 | — |
case-13 | pass→pass | 6,705 | 1,892 | -72% | 1 | 1 | 0% | 1,093 | 2,206 | +102% | 0 | 0 | — |
case-14 | fail→pass | 8,523 | 2,257 | -74% | 1 | 1 | 0% | 1,334 | 2,334 | +75% | 0 | 0 | — |
case-15 | fail→pass | 4,596 | 2,549 | -45% | 1 | 1 | 0% | 734 | 2,440 | +232% | 0 | 0 | — |
case-16 | pass→pass | 8,967 | 2,362 | -74% | 1 | 1 | 0% | 1,489 | 2,305 | +55% | 0 | 0 | — |
case-17 | fail→pass | 9,751 | 3,167 | -68% | 1 | 1 | 0% | 1,662 | 2,432 | +46% | 0 | 0 | — |
case-18 | fail→pass | 6,482 | 2,238 | -65% | 1 | 1 | 0% | 946 | 2,255 | +138% | 0 | 0 | — |
case-19 | pass→pass | 8,446 | 6,230 | -26% | 1 | 1 | 0% | 1,458 | 2,420 | +66% | 0 | 0 | — |
case-20 | pass→pass | 10,192 | 3,472 | -66% | 1 | 1 | 0% | 1,894 | 2,292 | +21% | 0 | 0 | — |
case-21 | pass→fail | 9,396 | 7,243 | -23% | 1 | 1 | 0% | 1,679 | 2,409 | +43% | 0 | 0 | — |
case-22 | pass→pass | 14,375 | 7,659 | -47% | 1 | 1 | 0% | 2,652 | 3,331 | +26% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 11 counted toward the lift figure. The other 11 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 11 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.