{"id":"e37d1e2b-08a3-40c0-a0dd-4c31944b6692","entityType":"agent","slug":"clawhub-terrycarter1985-home-music-terry","name":"Home Music","canonicalUrl":"https://www.xpersona.co/agent/clawhub-terrycarter1985-home-music-terry","canonicalPath":"/agent/clawhub-terrycarter1985-home-music-terry","generatedAt":"2026-10-12T03:02:05.832Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T21:04:28.629Z","emptyReason":null},"description":"Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes. Skill: Home Music Owner: terrycarter1985 Summary: Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes. Tags: latest:1.1.1 Version history: v1.1.1 | 2026-05-12T00:07:42.984Z | user Added reading scene: ambient playlist on Living Room + Bedroom at 20% volume v1.1.0 | 2026-05-06T20:29:17.785Z | user Added Python interface (__init__.py) w","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 993 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17brwfrqyjhbjgadkvar20h8x8492g8:home-music-terry","sourceUrl":"https://clawhub.ai/terrycarter1985/home-music-terry","homepage":"https://clawhub.ai/terrycarter1985/skills/home-music-terry","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/terrycarter1985/home-music-terry","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/terrycarter1985/skills/home-music-terry","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes. Skill: Home Music Owner"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:04:28.629Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:04:28.629Z","emptyReason":null},"stars":null,"forks":null,"downloads":993,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.1.1","tractionLabel":"993 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:04:28.566Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T21:04:28.629Z","lastCrawledAt":"2026-10-11T21:04:28.566Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T21:04:28.566Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.1","createdAt":"2026-05-12T00:07:42.984Z","changelog":"Added reading scene: ambient playlist on Living Room + Bedroom at 20% volume","fileCount":4,"zipByteSize":7024},{"version":"1.1.0","createdAt":"2026-05-06T20:29:17.785Z","changelog":"Added Python interface (__init__.py) with stop_music(); updated SKILL.md with Python API docs","fileCount":4,"zipByteSize":6640}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17brwfrqyjhbjgadkvar20h8x8492g8:home-music-terry","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-terrycarter1985-home-music-terry/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-terrycarter1985-home-music-terry/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-terrycarter1985-home-music-terry/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-terrycarter1985-home-music-terry/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-terrycarter1985-home-music-terry/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-terrycarter1985-home-music-terry/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T03:02:05.832Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-terrycarter1985-home-music-terry/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-terrycarter1985-home-music-terry/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-terrycarter1985-home-music-terry/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-terrycarter1985-home-music-terry/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T21:04:28.629Z","emptyReason":null},"readme":"Skill: Home Music\n\nOwner: terrycarter1985\n\nSummary: Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes.\n\nTags: latest:1.1.1\n\nVersion history:\n\nv1.1.1 | 2026-05-12T00:07:42.984Z | user\n\nAdded reading scene: ambient playlist on Living Room + Bedroom at 20% volume\n\nv1.1.0 | 2026-05-06T20:29:17.785Z | user\n\nAdded Python interface (__init__.py) with stop_music(); updated SKILL.md with Python API docs\n\nArchive index:\n\nArchive v1.1.1: 4 files, 7024 bytes\n\nFiles: _meta.json (135b), home-music.sh (7123b), skill-card.md (2194b), SKILL.md (8033b)\n\nFile v1.1.1:SKILL.md\n\n---\nname: home-music\ndescription: Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes.\nhomepage: local\nmetadata: {\"clawdbot\":{\"emoji\":\"🏠\",\"os\":[\"darwin\"]}}\ntriggers:\n  - music scene\n  - morning music\n  - party mode\n  - chill music\n  - reading music\n  - house music\n  - stop music\n---\n\n```\n    ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫\n    \n    🏠  H O M E   M U S I C  🎵\n    \n    ╔══════════════════════════════════════════╗\n    ║   Whole-House Music Scenes               ║\n    ║   One command. All speakers. Perfect.    ║\n    ╚══════════════════════════════════════════╝\n    \n    ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫\n```\n\n> *\"Why click 17 times when one command does the job?\"* – Owen 🐸\n\n---\n\n## 🎯 What Does This Skill Do?\n\n**Home Music** combines Spotify + Airfoil into magical music scenes. One command – and the right playlist plays on the right speakers at the perfect volume.\n\n**Imagine:**\n- You wake up → `home-music morning` → Gentle tunes in the bathroom\n- Friends arrive → `home-music party` → All speakers blasting rock\n- Time to relax → `home-music chill` → Lounge vibes everywhere\n- Done for the day → `home-music off` → Silence. Peace. Serenity.\n\n---\n\n## 📋 Dependencies\n\n| What | Why | Link |\n|------|-----|------|\n| 🍏 **macOS** | This skill uses AppleScript | — |\n| 🟢 **Spotify Desktop App** | The music source! Must be running. | [spotify.com](https://spotify.com) |\n| 📡 **Airfoil** | Routes audio to AirPlay speakers | [rogueamoeba.com](https://rogueamoeba.com/airfoil/) |\n| 🎵 **spotify-applescript** | Clawdbot skill for Spotify control | `skills/spotify-applescript/` |\n\n> ⚠️ **Important:** Both Spotify and Airfoil must be running before you start any scenes!\n\n---\n\n## 🎬 Scenes\n\n### 🌅 Morning\n*A gentle start to your day*\n\n```bash\nhome-music morning\n```\n- **Speaker:** Sonos Move\n- **Volume:** 40%\n- **Playlist:** Morning Playlist\n- **Vibe:** ☕ Coffee + good vibes\n\n---\n\n### 🎉 Party\n*Time to celebrate!*\n\n```bash\nhome-music party\n```\n- **Speaker:** ALL (Computer, MacBook, Sonos Move, Living Room TV)\n- **Volume:** 70%\n- **Playlist:** Rock Party Mix\n- **Vibe:** 🤘 Neighbors hate this one trick\n\n---\n\n### 😌 Chill\n*Pure relaxation*\n\n```bash\nhome-music chill\n```\n- **Speaker:** Sonos Move\n- **Volume:** 30%\n- **Playlist:** Chill Lounge\n- **Vibe:** 🧘 Om...\n\n---\n\n### 📖 Reading\n*Ambient sounds for getting lost in a book*\n\n```bash\nhome-music reading\n```\n- **Speaker:** Living Room + Bedroom\n- **Volume:** 20%\n- **Playlist:** Ambient Reading\n- **Vibe:** 📚 Turn the page...\n\n---\n\n### 🔇 Off\n*Silence*\n\n```bash\nhome-music off\n```\n- Pauses Spotify\n- Disconnects all speakers\n- **Vibe:** 🤫 Finally, peace and quiet\n\n---\n\n### 📊 Status\n*What's playing right now?*\n\n```bash\nhome-music status\n```\n\nShows:\n- Current Spotify track\n- Connected speakers\n\n---\n\n## 🔧 Installation\n\n```bash\n# Make the script executable\nchmod +x ~/clawd/skills/home-music/home-music.sh\n\n# Symlink for global access\nsudo ln -sf ~/clawd/skills/home-music/home-music.sh /usr/local/bin/home-music\n```\n\nNow `home-music` works from anywhere in your terminal! 🎉\n\n---\n\n## 🎨 Custom Playlists & Scenes\n\n### Changing Playlists\n\nOpen `home-music.sh` and find the playlist configuration:\n\n```bash\n# === PLAYLIST CONFIGURATION ===\nPLAYLIST_MORNING=\"spotify:playlist:19n65kQ5NEKgkvSAla5IF6\"\nPLAYLIST_PARTY=\"spotify:playlist:37i9dQZF1DXaXB8fQg7xif\"\nPLAYLIST_CHILL=\"spotify:playlist:37i9dQZF1DWTwnEm1IYyoj\"\n```\n\n**How to find Playlist URIs:**\n1. Right-click on a playlist in Spotify\n2. \"Share\" → \"Copy Spotify URI\"\n3. Or copy the URL and extract the `/playlist/` part\n\n### Adding a New Scene\n\nAdd a new case in the `main` block:\n\n```bash\n# In home-music.sh after the \"scene_chill\" function:\n\nscene_workout() {\n    echo \"💪 Starting Workout scene...\"\n    airfoil_set_source_spotify\n    airfoil_connect \"Sonos Move\"\n    sleep 0.5\n    airfoil_volume \"Sonos Move\" 0.8\n    \"$SPOTIFY_CMD\" play \"spotify:playlist:YOUR_WORKOUT_PLAYLIST\"\n    \"$SPOTIFY_CMD\" volume 100\n    echo \"✅ Workout: Sonos Move @ 80%, Pump it up!\"\n}\n\n# And in the case block:\n    workout)\n        scene_workout\n        ;;\n```\n\n### Available Speakers\n\n```bash\nALL_SPEAKERS=(\"Computer\" \"Andy's M5 Macbook\" \"Sonos Move\" \"Living Room TV\")\n```\n\nYou can add any AirPlay speaker – they just need to be visible in Airfoil.\n\n---\n\n## 🐛 Troubleshooting\n\n### ❌ \"Speaker won't connect\"\n\n**Check 1:** Is Airfoil running?\n```bash\npgrep -x Airfoil || echo \"Airfoil is not running!\"\n```\n\n**Check 2:** Is the speaker on the network?\n- Open the Airfoil app\n- Check if the speaker appears in the list\n- Try connecting manually\n\n**Check 3:** Is the name exactly correct?\n- Speaker names are case-sensitive!\n- Open Airfoil and copy the exact name\n\n---\n\n### ❌ \"No sound\"\n\n**Check 1:** Is Spotify playing?\n```bash\n~/clawd/skills/spotify-applescript/spotify.sh status\n```\n\n**Check 2:** Is the Airfoil source correct?\n- Open Airfoil\n- Check if \"Spotify\" is selected as the audio source\n- If not: Click \"Source\" → Select Spotify\n\n**Check 3:** Speaker volume?\n```bash\n# Manually check volume\nosascript -e 'tell application \"Airfoil\" to get volume of (first speaker whose name is \"Sonos Move\")'\n```\n\n---\n\n### ❌ \"Spotify won't start\"\n\n**Is Spotify open?**\n```bash\npgrep -x Spotify || open -a Spotify\n```\n\n**Is spotify-applescript installed?**\n```bash\nls ~/clawd/skills/spotify-applescript/spotify.sh\n```\n\n---\n\n### ❌ \"Permission denied\"\n\n```bash\nchmod +x ~/clawd/skills/home-music/home-music.sh\n```\n\n---\n\n## 🔊 Direct Airfoil Commands\n\nIf you want to control Airfoil manually:\n\n```bash\n# Connect a speaker\nosascript -e 'tell application \"Airfoil\" to connect to (first speaker whose name is \"Sonos Move\")'\n\n# Set speaker volume (0.0 - 1.0)\nosascript -e 'tell application \"Airfoil\" to set (volume of (first speaker whose name is \"Sonos Move\")) to 0.5'\n\n# Disconnect a speaker\nosascript -e 'tell application \"Airfoil\" to disconnect from (first speaker whose name is \"Sonos Move\")'\n\n# List connected speakers\nosascript -e 'tell application \"Airfoil\" to get name of every speaker whose connected is true'\n\n# Set audio source\nosascript -e 'tell application \"Airfoil\"\n    set theSource to (first application source whose name contains \"Spotify\")\n    set current audio source to theSource\nend tell'\n```\n\n---\n\n## 📁 Files\n\n```\nskills/home-music/\n├── SKILL.md        # This documentation\n└── home-music.sh   # The main script\n```\n\n---\n\n## 💡 Pro Tips\n\n1. **Set aliases** for even faster access:\n   ```bash\n   alias mm=\"home-music morning\"\n   alias mp=\"home-music party\"\n   alias mc=\"home-music chill\"\n   alias mo=\"home-music off\"\n   ```\n\n2. **Use with Clawdbot:**\n   > \"Hey, start party mode\"\n   > \"Put on some chill music\"\n   > \"Stop the music\"\n\n3. **Combine scenes:** Create a `dinner` scene with a jazz playlist at 25% – perfect for guests!\n\n---\n\n## 🐸 Credits\n\n```\n╭─────────────────────────────────────────────╮\n│                                             │\n│   Crafted with 💚 by Owen the Frog 🐸      │\n│                                             │\n│   \"Ribbit. Music makes everything better.\"  │\n│                                             │\n╰─────────────────────────────────────────────╯\n```\n\n**Author:** Andy Steinberger (with help from his Clawdbot Owen the Frog 🐸)  \n**Version:** 1.1.0  \n**License:** MIT  \n**Pond:** The one with the water lilies 🪷\n\n---\n\n*Did this skill improve your life? Owen appreciates flies. 🪰*\n\nFile v1.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn72jmd20ws94jr0p8b3p24wyn82abgj\",\n  \"slug\": \"home-music-terry\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1778544462984\n}\n\nFile v1.1.1:skill-card.md\n\n## Description:\n\nControl whole-house music scenes combining Spotify playback with Airfoil speaker routing.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[terrycarter1985](https://clawhub.ai/user/terrycarter1985)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and home automation operators use this skill to ask an agent for macOS-based Spotify and Airfoil music scenes such as morning, party, chill, reading, off, and status.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill controls Spotify playback and Airfoil speaker routing on macOS, so broad or accidental triggers could change home-audio state unexpectedly.\n\nMitigation: Use it only where macOS Spotify and Airfoil control is intended, and narrow the trigger phrases if accidental activation would be disruptive.\n\nRisk: The documented install path includes an optional sudo symlink that exposes the command globally.\n\nMitigation: Skip the global symlink unless it is needed, or install it only after reviewing the script path and local permissions.\n\nRisk: The reading scene references Living Room and Bedroom speakers that are not listed in the configured speaker inventory.\n\nMitigation: Confirm and correct Airfoil speaker names before using the reading scene.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/terrycarter1985/skills/home-music-terry)\n- [Publisher Profile](https://clawhub.ai/user/terrycarter1985)\n- [Spotify](https://spotify.com)\n- [Airfoil](https://rogueamoeba.com/airfoil/)\n\n## Skill Output:\n\n**Output Type(s):** [Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with inline bash commands and scene names]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces macOS home-audio control guidance and commands for Spotify and Airfoil scenes.]\n\n## Skill Version(s):\n\n1.1.1 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.0: 4 files, 6640 bytes\n\nFiles: __init__.py (2051b), _meta.json (135b), home-music.sh (6278b), SKILL.md (8548b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: home-music\ndescription: Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes.\nhomepage: local\nmetadata: {\"clawdbot\":{\"emoji\":\"🏠\",\"os\":[\"darwin\"]}}\ntriggers:\n  - music scene\n  - morning music\n  - party mode\n  - chill music\n  - house music\n  - stop music\n---\n\n```\n    ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫\n    \n    🏠  H O M E   M U S I C  🎵\n    \n    ╔══════════════════════════════════════════╗\n    ║   Whole-House Music Scenes               ║\n    ║   One command. All speakers. Perfect.    ║\n    ╚══════════════════════════════════════════╝\n    \n    ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫\n```\n\n> *\"Why click 17 times when one command does the job?\"* – Owen 🐸\n\n---\n\n## 🎯 What Does This Skill Do?\n\n**Home Music** combines Spotify + Airfoil into magical music scenes. One command – and the right playlist plays on the right speakers at the perfect volume.\n\n**Imagine:**\n- You wake up → `home-music morning` → Gentle tunes in the bathroom\n- Friends arrive → `home-music party` → All speakers blasting rock\n- Time to relax → `home-music chill` → Lounge vibes everywhere\n- Done for the day → `home-music off` → Silence. Peace. Serenity.\n\n---\n\n## 📋 Dependencies\n\n| What | Why | Link |\n|------|-----|------|\n| 🍏 **macOS** | This skill uses AppleScript | — |\n| 🟢 **Spotify Desktop App** | The music source! Must be running. | [spotify.com](https://spotify.com) |\n| 📡 **Airfoil** | Routes audio to AirPlay speakers | [rogueamoeba.com](https://rogueamoeba.com/airfoil/) |\n| 🎵 **spotify-applescript** | Clawdbot skill for Spotify control | `skills/spotify-applescript/` |\n\n> ⚠️ **Important:** Both Spotify and Airfoil must be running before you start any scenes!\n\n---\n\n## 🎬 Scenes\n\n### 🌅 Morning\n*A gentle start to your day*\n\n```bash\nhome-music morning\n```\n- **Speaker:** Sonos Move\n- **Volume:** 40%\n- **Playlist:** Morning Playlist\n- **Vibe:** ☕ Coffee + good vibes\n\n---\n\n### 🎉 Party\n*Time to celebrate!*\n\n```bash\nhome-music party\n```\n- **Speaker:** ALL (Computer, MacBook, Sonos Move, Living Room TV)\n- **Volume:** 70%\n- **Playlist:** Rock Party Mix\n- **Vibe:** 🤘 Neighbors hate this one trick\n\n---\n\n### 😌 Chill\n*Pure relaxation*\n\n```bash\nhome-music chill\n```\n- **Speaker:** Sonos Move\n- **Volume:** 30%\n- **Playlist:** Chill Lounge\n- **Vibe:** 🧘 Om...\n\n---\n\n### 🔇 Off\n*Silence*\n\n```bash\nhome-music off\n```\n- Pauses Spotify\n- Disconnects all speakers\n- **Vibe:** 🤫 Finally, peace and quiet\n\n---\n\n### 📊 Status\n*What's playing right now?*\n\n```bash\nhome-music status\n```\n\nShows:\n- Current Spotify track\n- Connected speakers\n\n---\n\n## 🔧 Installation\n\n```bash\n# Make the script executable\nchmod +x ~/clawd/skills/home-music/home-music.sh\n\n# Symlink for global access\nsudo ln -sf ~/clawd/skills/home-music/home-music.sh /usr/local/bin/home-music\n```\n\nNow `home-music` works from anywhere in your terminal! 🎉\n\n---\n\n## 🎨 Custom Playlists & Scenes\n\n### Changing Playlists\n\nOpen `home-music.sh` and find the playlist configuration:\n\n```bash\n# === PLAYLIST CONFIGURATION ===\nPLAYLIST_MORNING=\"spotify:playlist:19n65kQ5NEKgkvSAla5IF6\"\nPLAYLIST_PARTY=\"spotify:playlist:37i9dQZF1DXaXB8fQg7xif\"\nPLAYLIST_CHILL=\"spotify:playlist:37i9dQZF1DWTwnEm1IYyoj\"\n```\n\n**How to find Playlist URIs:**\n1. Right-click on a playlist in Spotify\n2. \"Share\" → \"Copy Spotify URI\"\n3. Or copy the URL and extract the `/playlist/` part\n\n### Adding a New Scene\n\nAdd a new case in the `main` block:\n\n```bash\n# In home-music.sh after the \"scene_chill\" function:\n\nscene_workout() {\n    echo \"💪 Starting Workout scene...\"\n    airfoil_set_source_spotify\n    airfoil_connect \"Sonos Move\"\n    sleep 0.5\n    airfoil_volume \"Sonos Move\" 0.8\n    \"$SPOTIFY_CMD\" play \"spotify:playlist:YOUR_WORKOUT_PLAYLIST\"\n    \"$SPOTIFY_CMD\" volume 100\n    echo \"✅ Workout: Sonos Move @ 80%, Pump it up!\"\n}\n\n# And in the case block:\n    workout)\n        scene_workout\n        ;;\n```\n\n### Available Speakers\n\n```bash\nALL_SPEAKERS=(\"Computer\" \"Andy's M5 Macbook\" \"Sonos Move\" \"Living Room TV\")\n```\n\nYou can add any AirPlay speaker – they just need to be visible in Airfoil.\n\n---\n\n## 🐛 Troubleshooting\n\n### ❌ \"Speaker won't connect\"\n\n**Check 1:** Is Airfoil running?\n```bash\npgrep -x Airfoil || echo \"Airfoil is not running!\"\n```\n\n**Check 2:** Is the speaker on the network?\n- Open the Airfoil app\n- Check if the speaker appears in the list\n- Try connecting manually\n\n**Check 3:** Is the name exactly correct?\n- Speaker names are case-sensitive!\n- Open Airfoil and copy the exact name\n\n---\n\n### ❌ \"No sound\"\n\n**Check 1:** Is Spotify playing?\n```bash\n~/clawd/skills/spotify-applescript/spotify.sh status\n```\n\n**Check 2:** Is the Airfoil source correct?\n- Open Airfoil\n- Check if \"Spotify\" is selected as the audio source\n- If not: Click \"Source\" → Select Spotify\n\n**Check 3:** Speaker volume?\n```bash\n# Manually check volume\nosascript -e 'tell application \"Airfoil\" to get volume of (first speaker whose name is \"Sonos Move\")'\n```\n\n---\n\n### ❌ \"Spotify won't start\"\n\n**Is Spotify open?**\n```bash\npgrep -x Spotify || open -a Spotify\n```\n\n**Is spotify-applescript installed?**\n```bash\nls ~/clawd/skills/spotify-applescript/spotify.sh\n```\n\n---\n\n### ❌ \"Permission denied\"\n\n```bash\nchmod +x ~/clawd/skills/home-music/home-music.sh\n```\n\n---\n\n## 🔊 Direct Airfoil Commands\n\nIf you want to control Airfoil manually:\n\n```bash\n# Connect a speaker\nosascript -e 'tell application \"Airfoil\" to connect to (first speaker whose name is \"Sonos Move\")'\n\n# Set speaker volume (0.0 - 1.0)\nosascript -e 'tell application \"Airfoil\" to set (volume of (first speaker whose name is \"Sonos Move\")) to 0.5'\n\n# Disconnect a speaker\nosascript -e 'tell application \"Airfoil\" to disconnect from (first speaker whose name is \"Sonos Move\")'\n\n# List connected speakers\nosascript -e 'tell application \"Airfoil\" to get name of every speaker whose connected is true'\n\n# Set audio source\nosascript -e 'tell application \"Airfoil\"\n    set theSource to (first application source whose name contains \"Spotify\")\n    set current audio source to theSource\nend tell'\n```\n\n---\n\n## 📁 Files\n\n```\nskills/home-music/\n├── SKILL.md        # This documentation\n├── __init__.py     # Python interface (play_chill_mode, stop_music, etc.)\n└── home-music.sh   # The main shell script\n```\n\n---\n\n## 🐍 Python API\n\nThe skill also ships a Python package (`home_music`) for programmatic control:\n\n```python\nfrom home_music import play_chill_mode, stop_music, get_status\n\n# Start chill focus music\nplay_chill_mode(volume=30)\n\n# Check what's playing\nprint(get_status())\n\n# Stop all music and disconnect speakers\nstop_music()\n```\n\nAvailable functions:\n\n| Function | Description |\n|----------|-------------|\n| `play_morning_mode(volume=40)` | Morning scene |\n| `play_party_mode(volume=70)` | Party scene |\n| `play_chill_mode(volume=30)` | Chill scene |\n| `stop_music()` | **Pause Spotify + disconnect all speakers** |\n| `get_status()` | Current status string |\n\n---\n\n## 💡 Pro Tips\n\n1. **Set aliases** for even faster access:\n   ```bash\n   alias mm=\"home-music morning\"\n   alias mp=\"home-music party\"\n   alias mc=\"home-music chill\"\n   alias mo=\"home-music off\"\n   ```\n\n2. **Use with Clawdbot:**\n   > \"Hey, start party mode\"\n   > \"Put on some chill music\"\n   > \"Stop the music\"\n\n3. **Combine scenes:** Create a `dinner` scene with a jazz playlist at 25% – perfect for guests!\n\n---\n\n## 🐸 Credits\n\n```\n╭─────────────────────────────────────────────╮\n│                                             │\n│   Crafted with 💚 by Owen the Frog 🐸      │\n│                                             │\n│   \"Ribbit. Music makes everything better.\"  │\n│                                             │\n╰─────────────────────────────────────────────╯\n```\n\n**Author:** Andy Steinberger (with help from his Clawdbot Owen the Frog 🐸)  \n**Version:** 1.1.0  \n**License:** MIT  \n**Pond:** The one with the water lilies 🪷\n\n---\n\n*Did this skill improve your life? Owen appreciates flies. 🪰*\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn72jmd20ws94jr0p8b3p24wyn82abgj\",\n  \"slug\": \"home-music-terry\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1778099357785\n}","readmeExcerpt":"Skill: Home Music Owner: terrycarter1985 Summary: Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes. Tags: latest:1.1.1 Version history: v1.1.1 | 2026-05-12T00:07:42.984Z | user Added reading scene: ambient playlist on Living Room + Bedroom at 20% volume v1.1.0 | 2026-05-06T20:29:17.785Z | user Added Python interface (__init__.py) w","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫\n    \n    🏠  H O M E   M U S I C  🎵\n    \n    ╔══════════════════════════════════════════╗\n    ║   Whole-House Music Scenes               ║\n    ║   One command. All speakers. Perfect.    ║\n    ╚══════════════════════════════════════════╝\n    \n    ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫"},{"language":"bash","snippet":"home-music morning"},{"language":"bash","snippet":"home-music party"},{"language":"bash","snippet":"home-music chill"},{"language":"bash","snippet":"home-music reading"},{"language":"bash","snippet":"home-music off"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: home-music\ndescription: Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes.\nhomepage: local\nmetadata: {\"clawdbot\":{\"emoji\":\"🏠\",\"os\":[\"darwin\"]}}\ntriggers:\n  - music scene\n  - morning music\n  - party mode\n  - chill music\n  - reading music\n  - house music\n  - stop music\n---\n\n```\n    ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫\n    \n    🏠  H O M E   M U S I C  🎵\n    \n    ╔══════════════════════════════════════════╗\n    ║   Whole-House Music Scenes               ║\n    ║   One command. All speakers. Perfect.    ║\n    ╚══════════════════════════════════════════╝\n    \n    ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫\n```\n\n> *\"Why click 17 times when one command does the job?\"* – Owen 🐸\n\n---\n\n## 🎯 What Does This Skill Do?\n\n**Home Music** combines Spotify + Airfoil into magical music scenes. One command – and the right playlist plays on the right speakers at the perfect volume.\n\n**Imagine:**\n- You wake up → `home-music morning` → Gentle tunes in the bathroom\n- Friends arrive → `home-music party` → All speakers blasting rock\n- Time to relax → `home-music chill` → Lounge vibes everywhere\n- Done for the day → `home-music off` → Silence. Peace. Serenity.\n\n---\n\n## 📋 Dependencies\n\n| What | Why | Link |\n|------|-----|------|\n| 🍏 **macOS** | This skill uses AppleScript | — |\n| 🟢 **Spotify Desktop App** | The music source! Must be running. | [spotify.com](https://spotify.com) |\n| 📡 **Airfoil** | Routes audio to AirPlay speakers | [rogueamoeba.com](https://rogueamoeba.com/airfoil/) |\n| 🎵 **spotify-applescript** | Clawdbot skill for Spotify control | `skills/spotify-applescript/` |\n\n> ⚠️ **Important:** Both Spotify and Airfoil must be running before you start any scenes!\n\n---\n\n## 🎬 Scenes\n\n### 🌅 Morning\n*A gentle start to your day*\n\n```bash\nhome-music morning\n```\n- **Speaker:** Sonos Move\n- **Volume:** 40%\n- **Playlist:** Morning Playlist\n- **Vibe:** ☕ Coffee + good vibes\n\n---\n\n### 🎉 Party\n*Time to celebrate!*\n\n```bash\nhome-music party\n```\n- **Speaker:** ALL (Computer, MacBook, Sonos Move, Living Room TV)\n- **Volume:** 70%\n- **Playlist:** Rock Party Mix\n- **Vibe:** 🤘 Neighbors hate this one trick\n\n---\n\n### 😌 Chill\n*Pure relaxation*\n\n```bash\nhome-music chill\n```\n- **Speaker:** Sonos Move\n- **Volume:** 30%\n- **Playlist:** Chill Lounge\n- **Vibe:** 🧘 Om...\n\n---\n\n### 📖 Reading\n*Ambient sounds for getting lost in a book*\n\n```bash\nhome-music reading\n```\n- **Speaker:** Living Room + Bedroom\n- **Volume:** 20%\n- **Playlist:** Ambient Reading\n- **Vibe:** 📚 Turn the page...\n\n---\n\n### 🔇 Off\n*Silence*\n\n```bash\nhome-music off\n```\n- Pauses Spotify\n- Disconnects all speakers\n- **Vibe:** 🤫 Finally, peace and quiet\n\n---\n\n### 📊 Status\n*What's playing right now?*\n\n```bash\nhome-music status\n```\n\nShows:\n- Current Spotify track\n- Connected speakers\n\n---\n\n## 🔧 Installation\n\n```bash\n# Make the script executable\nchmod +x ~/clawd/skills/home-music/home-music.sh\n\n# Symlink for global access"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn72jmd20ws94jr0p8b3p24wyn82abgj\",\n  \"slug\": \"home-music-terry\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1778544462984\n}"},{"path":"skill-card.md","content":"## Description:\n\nControl whole-house music scenes combining Spotify playback with Airfoil speaker routing.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[terrycarter1985](https://clawhub.ai/user/terrycarter1985)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and home automation operators use this skill to ask an agent for macOS-based Spotify and Airfoil music scenes such as morning, party, chill, reading, off, and status.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill controls Spotify playback and Airfoil speaker routing on macOS, so broad or accidental triggers could change home-audio state unexpectedly.\n\nMitigation: Use it only where macOS Spotify and Airfoil control is intended, and narrow the trigger phrases if accidental activation would be disruptive.\n\nRisk: The documented install path includes an optional sudo symlink that exposes the command globally.\n\nMitigation: Skip the global symlink unless it is needed, or install it only after reviewing the script path and local permissions.\n\nRisk: The reading scene references Living Room and Bedroom speakers that are not listed in the configured speaker inventory.\n\nMitigation: Confirm and correct Airfoil speaker names before using the reading scene.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/terrycarter1985/skills/home-music-terry)\n- [Publisher Profile](https://clawhub.ai/user/terrycarter1985)\n- [Spotify](https://spotify.com)\n- [Airfoil](https://rogueamoeba.com/airfoil/)\n\n## Skill Output:\n\n**Output Type(s):** [Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with inline bash commands and scene names]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces macOS home-audio control guidance and commands for Spotify and Airfoil scenes.]\n\n## Skill Version(s):\n\n1.1.1 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes. Skill: Home Music Owner: terrycarter1985 Summary: Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes. Tags: latest:1.1.1 Version history: v1.1.1 | 2026-05-12T00:07:42.984Z | user Added reading scene: ambient playlist on Living Room + Bedroom at 20% volume v1.1.0 | 2026-05-06T20:29:17.785Z | user Added Python interface (__init__.py) w","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":986,"uniquenessScore":53,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T21:04:28.629Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T21:04:28.629Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T03:02:05.832Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}