airfoil
Control AirPlay speakers via Airfoil from the command line. Connect, disconnect, set volume, and manage multi-room audio with simple CLI commands.
Best use case
airfoil is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Control AirPlay speakers via Airfoil from the command line. Connect, disconnect, set volume, and manage multi-room audio with simple CLI commands.
Teams using airfoil 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
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/airfoil/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How airfoil Compares
| Feature / Agent | airfoil | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Control AirPlay speakers via Airfoil from the command line. Connect, disconnect, set volume, and manage multi-room audio with simple CLI commands.
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
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
SKILL.md Source
# 🔊 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>Related Skills
---
name: article-factory-wechat
humanizer
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
tavily-search
Use Tavily API for real-time web search and content extraction. Use when: user needs real-time web search results, research, or current information from the web. Requires Tavily API key.
baidu-search
Search the web using Baidu AI Search Engine (BDSE). Use for live information, documentation, or research topics.
agent-autonomy-kit
Stop waiting for prompts. Keep working.
Meeting Prep
Never walk into a meeting unprepared again. Your agent researches all attendees before calendar events—pulling LinkedIn profiles, recent company news, mutual connections, and conversation starters. Generates a briefing doc with talking points, icebreakers, and context so you show up informed and confident. Triggered automatically before meetings or on-demand. Configure research depth, advance timing, and output format. Walking into meetings blind is amateur hour—missed connections, generic small talk, zero leverage. Use when setting up meeting intelligence, researching specific attendees, generating pre-meeting briefs, or automating your prep workflow.
self-improvement
Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Claude ('No, that's wrong...', 'Actually...'), (3) User requests a capability that doesn't exist, (4) An external API or tool fails, (5) Claude realizes its knowledge is outdated or incorrect, (6) A better approach is discovered for a recurring task. Also review learnings before major tasks.
botlearn-healthcheck
botlearn-healthcheck — BotLearn autonomous health inspector for OpenClaw instances across 5 domains (hardware, config, security, skills, autonomy); triggers on system check, health report, diagnostics, or scheduled heartbeat inspection.
linkedin-cli
A bird-like LinkedIn CLI for searching profiles, checking messages, and summarizing your feed using session cookies.
notebooklm
Google NotebookLM 非官方 Python API 的 OpenClaw Skill。支持内容生成(播客、视频、幻灯片、测验、思维导图等)、文档管理和研究自动化。当用户需要使用 NotebookLM 生成音频概述、视频、学习材料或管理知识库时触发。
小红书长图文发布 Skill
## 概述