Smart Home & IoTDocumentedScanned

home-music

Whole-house music scenes with Spotify + Airfoil speakers.

Share:

Installation

npx clawhub@latest install home-music

View the full skill documentation and source below.

Documentation

♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫
    
    🏠  H O M E   M U S I C  🎵
    
    ╔══════════════════════════════════════════╗
    ║   Whole-House Music Scenes               ║
    ║   One command. All speakers. Perfect.    ║
    ╚══════════════════════════════════════════╝
    
    ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫
"Why click 17 times when one command does the job?" – Owen 🐸

🎯 What Does This Skill Do?

Home Music combines Spotify + Airfoil into magical music scenes. One command – and the right playlist plays on the right speakers at the perfect volume.

Imagine:

  • You wake up → home-music morning → Gentle tunes in the bathroom

  • Friends arrive → home-music party → All speakers blasting rock

  • Time to relax → home-music chill → Lounge vibes everywhere

  • Done for the day → home-music off → Silence. Peace. Serenity.



📋 Dependencies

WhatWhyLink
🍏 macOSThis skill uses AppleScript
🟢 Spotify Desktop AppThe music source! Must be running.[spotify.com]()
📡 AirfoilRoutes audio to AirPlay speakers[rogueamoeba.com]()
🎵 spotify-applescriptClawdbot skill for Spotify controlskills/spotify-applescript/
⚠️ Important: Both Spotify and Airfoil must be running before you start any scenes!

🎬 Scenes

🌅 Morning

A gentle start to your day
home-music morning
  • Speaker: Sonos Move
  • Volume: 40%
  • Playlist: Morning Playlist
  • Vibe: ☕ Coffee + good vibes

🎉 Party

Time to celebrate!
home-music party
  • Speaker: ALL (Computer, MacBook, Sonos Move, Living Room TV)
  • Volume: 70%
  • Playlist: Rock Party Mix
  • Vibe: 🤘 Neighbors hate this one trick

😌 Chill

Pure relaxation
home-music chill
  • Speaker: Sonos Move
  • Volume: 30%
  • Playlist: Chill Lounge
  • Vibe: 🧘 Om...

🔇 Off

Silence
home-music off
  • Pauses Spotify
  • Disconnects all speakers
  • Vibe: 🤫 Finally, peace and quiet

📊 Status

What's playing right now?
home-music status

Shows:

  • Current Spotify track

  • Connected speakers



🔧 Installation

# Make the script executable
chmod +x ~/clawd/skills/home-music/home-music.sh

# Symlink for global access
sudo ln -sf ~/clawd/skills/home-music/home-music.sh /usr/local/bin/home-music

Now home-music works from anywhere in your terminal! 🎉


🎨 Custom Playlists & Scenes

Changing Playlists

Open home-music.sh and find the playlist configuration:

# === PLAYLIST CONFIGURATION ===
PLAYLIST_MORNING="spotify:playlist:19n65kQ5NEKgkvSAla5IF6"
PLAYLIST_PARTY="spotify:playlist:37i9dQZF1DXaXB8fQg7xif"
PLAYLIST_CHILL="spotify:playlist:37i9dQZF1DWTwnEm1IYyoj"

How to find Playlist URIs:

  • Right-click on a playlist in Spotify

  • "Share" → "Copy Spotify URI"

  • Or copy the URL and extract the /playlist/ part
  • Adding a New Scene

    Add a new case in the main block:

    # In home-music.sh after the "scene_chill" function:
    
    scene_workout() {
        echo "💪 Starting Workout scene..."
        airfoil_set_source_spotify
        airfoil_connect "Sonos Move"
        sleep 0.5
        airfoil_volume "Sonos Move" 0.8
        "$SPOTIFY_CMD" play "spotify:playlist:YOUR_WORKOUT_PLAYLIST"
        "$SPOTIFY_CMD" volume 100
        echo "✅ Workout: Sonos Move @ 80%, Pump it up!"
    }
    
    # And in the case block:
        workout)
            scene_workout
            ;;

    Available Speakers

    ALL_SPEAKERS=("Computer" "Andy's M5 Macbook" "Sonos Move" "Living Room TV")

    You can add any AirPlay speaker – they just need to be visible in Airfoil.


    🐛 Troubleshooting

    ❌ "Speaker won't connect"

    Check 1: Is Airfoil running?

    pgrep -x Airfoil || echo "Airfoil is not running!"

    Check 2: Is the speaker on the network?

    • Open the Airfoil app

    • Check if the speaker appears in the list

    • Try connecting manually


    Check 3: Is the name exactly correct?
    • Speaker names are case-sensitive!

    • Open Airfoil and copy the exact name



    ❌ "No sound"

    Check 1: Is Spotify playing?

    ~/clawd/skills/spotify-applescript/spotify.sh status

    Check 2: Is the Airfoil source correct?

    • Open Airfoil

    • Check if "Spotify" is selected as the audio source

    • If not: Click "Source" → Select Spotify


    Check 3: Speaker volume?
    # Manually check volume
    osascript -e 'tell application "Airfoil" to get volume of (first speaker whose name is "Sonos Move")'


    ❌ "Spotify won't start"

    Is Spotify open?

    pgrep -x Spotify || open -a Spotify

    Is spotify-applescript installed?

    ls ~/clawd/skills/spotify-applescript/spotify.sh


    ❌ "Permission denied"

    chmod +x ~/clawd/skills/home-music/home-music.sh

    🔊 Direct Airfoil Commands

    If you want to control Airfoil manually:

    # Connect a speaker
    osascript -e 'tell application "Airfoil" to connect to (first speaker whose name is "Sonos Move")'
    
    # Set speaker volume (0.0 - 1.0)
    osascript -e 'tell application "Airfoil" to set (volume of (first speaker whose name is "Sonos Move")) to 0.5'
    
    # Disconnect a speaker
    osascript -e 'tell application "Airfoil" to disconnect from (first speaker whose name is "Sonos Move")'
    
    # List connected speakers
    osascript -e 'tell application "Airfoil" to get name of every speaker whose connected is true'
    
    # Set audio source
    osascript -e 'tell application "Airfoil"
        set theSource to (first application source whose name contains "Spotify")
        set current audio source to theSource
    end tell'

    📁 Files

    skills/home-music/
    ├── SKILL.md        # This documentation
    └── home-music.sh   # The main script

    💡 Pro Tips

  • Set aliases for even faster access:

  • alias mm="home-music morning"
       alias mp="home-music party"
       alias mc="home-music chill"
       alias mo="home-music off"

  • Use with Clawdbot:

  • > "Hey, start party mode"
    > "Put on some chill music"
    > "Stop the music"

  • Combine scenes: Create a dinner scene with a jazz playlist at 25% – perfect for guests!

  • 🐸 Credits

    ╭─────────────────────────────────────────────╮
    │                                             │
    │   Crafted with 💚 by Owen the Frog 🐸      │
    │                                             │
    │   "Ribbit. Music makes everything better."  │
    │                                             │
    ╰─────────────────────────────────────────────╯

    Version: 1.0.0

    Pond: The one with the water lilies 🪷


    Did this skill improve your life? Owen appreciates flies. 🪰