ClawSkills logoClawSkills

Airfoil

Control AirPlay speakers via Airfoil from the command line. Connect, disconnect, set volume, and manage multi-room audio with simple CLI commands.

Introduction

# šŸ”Š Airfoil Skill

``` ╔═══════════════════════════════════════════════════════════╗ ā•‘ ā•‘ ā•‘ šŸŽµ A I R F O I L S P E A K E R C O N T R O L šŸŽµ ā•‘ ā•‘ ā•‘ ā•‘ Stream audio to any AirPlay speaker ā•‘ ā•‘ from your Mac via CLI ā•‘ ā•‘ ā•‘ ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā• ```

> *"Why hop to your Mac when you can croak at it?"* 🐸

---

## šŸ“– What Does This Skill Do?

The **Airfoil Skill** gives you full control over your AirPlay speakers directly from the terminal – or through Clawd! Connect speakers, control volume, check status – all without touching the mouse.

**Features:** - šŸ“” **List** — Show all available speakers - šŸ”— **Connect** — Connect to a speaker - šŸ”Œ **Disconnect** — Disconnect from a speaker - šŸ”Š **Volume** — Control volume (0-100%) - šŸ“Š **Status** — Show connected speakers with volume levels

---

## āš™ļø Requirements

| What | Details | |------|---------| | **OS** | macOS (uses AppleScript) | | **App** | [Airfoil](https://rogueamoeba.com/airfoil/mac/) by Rogue Amoeba | | **Price** | $35 (free trial available) |

### Installation

1. **Install Airfoil:** ```bash # Via Homebrew brew install --cask airfoil # Or download from rogueamoeba.com/airfoil/mac/ ```

2. **Launch Airfoil** and grant Accessibility permissions (System Settings → Privacy & Security → Accessibility)

3. **Skill is ready!** šŸš€

---

## šŸ› ļø Commands

### `list` — Show All Speakers

```bash ./airfoil.sh list ```

**Output:** ``` Computer, Andy's M5 Macbook, Sonos Move, Living Room TV ```

---

### `connect <speaker>` — Connect to Speaker

```bash ./airfoil.sh connect "Sonos Move" ```

**Output:** ``` Connected: Sonos Move ```

> šŸ’” Speaker name must match exactly (case-sensitive!)

---

### `disconnect <speaker>` — Disconnect Speaker

```bash ./airfoil.sh disconnect "Sonos Move" ```

**Output:** ``` Disconnected: Sonos Move ```

---

### `volume <speaker> <0-100>` — Set Volume

```bash # Set to 40% ./airfoil.sh volume "Sonos Move" 40

# Set to maximum ./airfoil.sh volume "Living Room TV" 100

# Quiet mode for night time ./airfoil.sh volume "Sonos Move" 15 ```

**Output:** ``` Volume Sonos Move: 40% ```

---

### `status` — Show Connected Speakers

```bash ./airfoil.sh status ```

**Output:** ``` Sonos Move: 40% Living Room TV: 65% ```

Or if nothing is connected: ``` No speakers connected ```

---

## šŸŽÆ Example Workflows

### šŸ  "Music in the Living Room" ```bash ./airfoil.sh connect "Sonos Move" ./airfoil.sh volume "Sonos Move" 50 # → Now fire up Spotify/Apple Music and enjoy! ```

### šŸŽ¬ "Movie Night Setup" ```bash ./airfoil.sh connect "Living Room TV" ./airfoil.sh volume "Living Room TV" 70 ./airfoil.sh disconnect "Sonos Move" # If still connected ```

### šŸŒ™ "All Off" ```bash for speaker in "Sonos Move" "Living Room TV"; do ./airfoil.sh disconnect "$speaker" 2>/dev/null done echo "All speakers disconnected šŸŒ™" ```

---

## šŸ”§ Troubleshooting

### āŒ "Speaker Not Found"

**Problem:** `execution error: Airfoil got an error: Can't get speaker...`

**Solutions:** 1. Check exact spelling: `./airfoil.sh list` 2. Speaker name is **case-sensitive** ("sonos move" ≠ "Sonos Move") 3. Speaker must be on the same network 4. Speaker must be powered on and reachable

---

### āŒ "Airfoil Won't Start / No Permission"

**Problem:** AppleScript can't control Airfoil

**Solutions:** 1. **System Settings → Privacy & Security → Accessibility** 2. Add Terminal (or iTerm) 3. Add Airfoil 4. Restart macOS (sometimes necessary šŸ™„)

---

### āŒ "Volume Doesn't Work"

**Problem:** Volume command has no effect

**Solutions:** 1. Speaker must be **connected** before volume can be set 2. First `connect`, then `volume` 3. Some speakers have hardware-side limits

---

### āŒ "Airfoil Not Installed"

**Problem:** `execution error: Application isn't running`

**Solution:** ```bash # Start Airfoil open -a Airfoil

# Or install it brew install --cask airfoil ```

---

### āŒ "bc: command not found"

**Problem:** Volume calculation fails

**Solution:** ```bash # Install bc (should be standard on macOS) brew install bc ```

---

## šŸ“‹ Known Speakers

These speakers have been tested:

| Speaker | Type | Notes | |---------|------|-------| | `Computer` | Local | Always available | | `Andy's M5 Macbook` | Mac | When on the network | | `Sonos Move` | Sonos | Bluetooth or WiFi | | `Living Room TV` | Apple TV | Via AirPlay |

> šŸ’” Use `./airfoil.sh list` to discover your own speakers!

---

## šŸ”— Integration with Clawd

This skill works perfectly with Clawd! Examples:

``` "Hey Clawd, connect the Sonos Move" → ./airfoil.sh connect "Sonos Move"

"Turn the music down" → ./airfoil.sh volume "Sonos Move" 30

"Which speakers are on?" → ./airfoil.sh status ```

---

## šŸ“œ Changelog

| Version | Date | Changes | |---------|------|---------| | 1.0.0 | 2025-01-25 | Initial release | | 1.1.0 | 2025-06-10 | Documentation polished 🐸 | | 1.2.0 | 2025-06-26 | Translated to English, ClawdHub-ready! |

---

## 🐸 Credits

``` @..@ (----) ( >__< ) "This skill was crafted with love ^^ ^^ by a frog and his human!" ```

**Author:** Andy Steinberger (with help from his Clawdbot Owen the Frog 🐸) **Powered by:** [Airfoil](https://rogueamoeba.com/airfoil/mac/) by Rogue Amoeba **Part of:** [Clawdbot](https://clawdhub.com) Skills Collection

---

<div align="center">

**Made with šŸ’š for the Clawdbot Community**

*Ribbit!* 🐸

</div>

More Products