CLI UtilitiesDocumentedScanned

airfoil

Control AirPlay speakers via Airfoil from the command line.

Share:

Installation

npx clawhub@latest install airfoil

View the full skill documentation and source below.

Documentation

πŸ”Š 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

WhatDetails
OSmacOS (uses AppleScript)
App[Airfoil]() by Rogue Amoeba
Price$35 (free trial available)

Installation

  • Install Airfoil:

  • # Via Homebrew
       brew install --cask airfoil
       
       # Or download from rogueamoeba.com/airfoil/mac/

  • Launch Airfoil and grant Accessibility permissions (System Settings β†’ Privacy & Security β†’ Accessibility)
  • Skill is ready! πŸš€

  • πŸ› οΈ Commands

    list β€” Show All Speakers

    ./airfoil.sh list

    Output:

    Computer, Andy's M5 Macbook, Sonos Move, Living Room TV


    connect β€” Connect to Speaker

    ./airfoil.sh connect "Sonos Move"

    Output:

    Connected: Sonos Move

    πŸ’‘ Speaker name must match exactly (case-sensitive!)

    disconnect β€” Disconnect Speaker

    ./airfoil.sh disconnect "Sonos Move"

    Output:

    Disconnected: Sonos Move


    volume <0-100> β€” Set Volume

    # 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

    ./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"

    ./airfoil.sh connect "Sonos Move"
    ./airfoil.sh volume "Sonos Move" 50
    # β†’ Now fire up Spotify/Apple Music and enjoy!

    🎬 "Movie Night Setup"

    ./airfoil.sh connect "Living Room TV"
    ./airfoil.sh volume "Living Room TV" 70
    ./airfoil.sh disconnect "Sonos Move"  # If still connected

    πŸŒ™ "All Off"

    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:

  • Check exact spelling: ./airfoil.sh list

  • Speaker name is case-sensitive ("sonos move" β‰  "Sonos Move")

  • Speaker must be on the same network

  • Speaker must be powered on and reachable

  • ❌ "Airfoil Won't Start / No Permission"

    Problem: AppleScript can't control Airfoil

    Solutions:

  • System Settings β†’ Privacy & Security β†’ Accessibility

  • Add Terminal (or iTerm)

  • Add Airfoil

  • Restart macOS (sometimes necessary πŸ™„)

  • ❌ "Volume Doesn't Work"

    Problem: Volume command has no effect

    Solutions:

  • Speaker must be connected before volume can be set

  • First connect, then volume

  • Some speakers have hardware-side limits

  • ❌ "Airfoil Not Installed"

    Problem: execution error: Application isn't running

    Solution:

    # Start Airfoil
    open -a Airfoil
    
    # Or install it
    brew install --cask airfoil


    ❌ "bc: command not found"

    Problem: Volume calculation fails

    Solution:

    # Install bc (should be standard on macOS)
    brew install bc


    πŸ“‹ Known Speakers

    These speakers have been tested:

    SpeakerTypeNotes
    ComputerLocalAlways available
    Andy's M5 MacbookMacWhen on the network
    Sonos MoveSonosBluetooth or WiFi
    Living Room TVApple TVVia 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

    VersionDateChanges
    1.0.02025-01-25Initial release
    1.1.02025-06-10Documentation polished 🐸
    1.2.02025-06-26Translated to English, ClawdHub-ready!

    🐸 Credits

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

    Powered by: [Airfoil]() by Rogue Amoeba
    Part of: [Clawdbot]() Skills Collection


    Made with πŸ’š for the Clawdbot Community

    Ribbit! 🐸