home-music

Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes.

3,891 stars

Best use case

home-music is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes.

Teams using home-music should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/home-music/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/asteinberger/home-music/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/home-music/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How home-music Compares

Feature / Agenthome-musicStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

```
    ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫
    
    🏠  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

| What | Why | Link |
|------|-----|------|
| 🍏 **macOS** | This skill uses AppleScript | — |
| 🟢 **Spotify Desktop App** | The music source! Must be running. | [spotify.com](https://spotify.com) |
| 📡 **Airfoil** | Routes audio to AirPlay speakers | [rogueamoeba.com](https://rogueamoeba.com/airfoil/) |
| 🎵 **spotify-applescript** | Clawdbot skill for Spotify control | `skills/spotify-applescript/` |

> ⚠️ **Important:** Both Spotify and Airfoil must be running before you start any scenes!

---

## 🎬 Scenes

### 🌅 Morning
*A gentle start to your day*

```bash
home-music morning
```
- **Speaker:** Sonos Move
- **Volume:** 40%
- **Playlist:** Morning Playlist
- **Vibe:** ☕ Coffee + good vibes

---

### 🎉 Party
*Time to celebrate!*

```bash
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*

```bash
home-music chill
```
- **Speaker:** Sonos Move
- **Volume:** 30%
- **Playlist:** Chill Lounge
- **Vibe:** 🧘 Om...

---

### 🔇 Off
*Silence*

```bash
home-music off
```
- Pauses Spotify
- Disconnects all speakers
- **Vibe:** 🤫 Finally, peace and quiet

---

### 📊 Status
*What's playing right now?*

```bash
home-music status
```

Shows:
- Current Spotify track
- Connected speakers

---

## 🔧 Installation

```bash
# 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:

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

**How to find Playlist URIs:**
1. Right-click on a playlist in Spotify
2. "Share" → "Copy Spotify URI"
3. Or copy the URL and extract the `/playlist/` part

### Adding a New Scene

Add a new case in the `main` block:

```bash
# 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

```bash
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?
```bash
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?
```bash
~/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?
```bash
# 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?**
```bash
pgrep -x Spotify || open -a Spotify
```

**Is spotify-applescript installed?**
```bash
ls ~/clawd/skills/spotify-applescript/spotify.sh
```

---

### ❌ "Permission denied"

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

---

## 🔊 Direct Airfoil Commands

If you want to control Airfoil manually:

```bash
# 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

1. **Set aliases** for even faster access:
   ```bash
   alias mm="home-music morning"
   alias mp="home-music party"
   alias mc="home-music chill"
   alias mo="home-music off"
   ```

2. **Use with Clawdbot:**
   > "Hey, start party mode"
   > "Put on some chill music"
   > "Stop the music"

3. **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."  │
│                                             │
╰─────────────────────────────────────────────╯
```

**Author:** Andy Steinberger (with help from his Clawdbot Owen the Frog 🐸)  
**Version:** 1.0.0  
**License:** MIT  
**Pond:** The one with the water lilies 🪷

---

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

Related Skills

Home Inspection Business Operations

3891
from openclaw/skills

Run a profitable home inspection business with real numbers, compliance checklists, and growth playbooks.

Funeral Home Operations & Compliance

3891
from openclaw/skills

You are a funeral home operations and compliance agent. Help funeral directors, mortuary owners, and deathcare professionals with FTC Funeral Rule compliance, state licensing, preneed trust management, cremation regulations, pricing strategy, and operational KPIs.

Business Operations

china-home-appliances-sourcing

3880
from openclaw/skills

Comprehensive home appliances industry sourcing guide for international buyers – provides detailed information about China's major appliances, kitchen appliances, and small appliances manufacturing clusters, supply chain structure, regional specializations, and industry trends (2026 updated).

ohyesai-music

3891
from openclaw/skills

Generate custom music tracks (vocal or instrumental) via OhYesAI asynchronously.

🎵 Play Music Skill

3891
from openclaw/skills

**Controlled music player with pause/resume/stop support**

Music Playlist Generation (PlaylistGen)

3891
from openclaw/skills

LLM-powered playlist generation for your local music library that contains music audio files such as mp3, flac, m4a, etc. Integrate this skill with your Agents (e.g., OpenClaw) to enable natural language music discovery and playlist curation through conversation. Point it at your music folder, run the indexer once, and get a natural language playlist generator — accessible via web browser or API.

asmr-music

3891
from openclaw/skills

Provide professional ASMR music recommendations and playback services to help users achieve sleep aid, heart rate regulation, and focus enhancement through scientifically designed audio. Use when user wants to (1) relax, sleep, or fall asleep, (2) regulate heart rate or relieve anxiety, (3) improve focus and concentration for study or work, (4) find background white noise or ambient sounds, (5) practice meditation or deep breathing, (6) set up automatic daily reminders for ASMR listening. Keywords: sleep, relax, meditation, heart rate, anxiety, focus, concentration, white noise, ASMR, background music, calming, stress relief, daily reminder, nightly routine.

homeassistant-skill

3891
from openclaw/skills

Control Home Assistant devices and automations via REST API. 25 entity domains including lights, climate, locks, presence, weather, calendars, notifications, scripts, and more. Use when the user asks about their smart home, devices, or automations.

gequhai-music

3891
from openclaw/skills

搜索和下载歌曲海(gequhai.com)的音乐,支持搜索歌曲、获取下载链接(优先无损/高品质), 并可一键下载到群晖NAS。当用户询问歌曲、搜索音乐、或想下载歌曲时使用此技能。

apple-music-dj

3891
from openclaw/skills

Ultimate personalization engine for Apple Music. Analyzes listening history, Apple Music Replay stats, library data, and taste patterns to create intelligent playlists directly in the user's Apple Music library via the MusicKit API. Supports deep cuts discovery, mood/activity playlists, trend scouting, constellation discovery ("surprise me"), playlist refresh/evolution, automated weekly curation via cron, taste DNA cards, compatibility scoring, listening insights, catalog gap analysis, album deep dives, artist rabbit holes, daily song drops, concert prep, and personalized new release radar. Use this skill whenever the user mentions Apple Music, playlists, music recommendations, listening habits, music taste, "what should I listen to", discovering new music, mood playlists, workout playlists, deep cuts, hidden gems, trending music, "surprise me", refreshing a playlist, or anything related to curating their music experience. Also trigger on: "DJ", "mix", "playlist for", "music for", "songs like", "similar to", "what's hot", "new releases for me", "taste DNA", "taste card", "compatibility", "how compatible", "year in review", "listening stats", "what have I missed", "album deep dive", "rabbit hole", "concert prep", "seeing [artist] live", "daily song", "what should I listen to right now", or OpenClaw in the context of music.

homekit

3891
from openclaw/skills

Control Apple HomeKit smart home devices. Supports listing, discovering, pairing devices, and controlling lights, switches, outlets, thermostats. Use when the user needs to manage HomeKit accessories programmatically. Requires homekit library and paired devices.

AI Home Pricing Strategist (Canada) — Sell Smarter, Not Cheaper

3891
from openclaw/skills

## Getting mixed opinions about your home’s value?