Change System Volume from Command Line on Mac OS

By  on  
Mac Volume

Oftentimes the awesome GUI applications we love are simply gloss over a command line functionality.  While I do love a visual app, it's always good to know how to do things from command line, if only for the sake of automation.  I've covered loads of command line secrets, most notably Mac Camera Access, so I wanted to figure out if I could control volume from command line.

Change Mac System Volume

The secret to changing Mac system volume from command line is through osascript:

# Max volume
sudo osascript -e "set Volume 10"

# Mute
sudo osascript -e "set Volume 0"

# 50% volume
sudo osascript -e "set Volume 5"

Values range from 0 (muted) to 10 (maximum volume).  Note that you don't get to see a nice volume change indicator -- the volume simply changes without any feedback.

Recent Features

  • By
    Camera and Video Control with HTML5

    Client-side APIs on mobile and desktop devices are quickly providing the same APIs.  Of course our mobile devices got access to some of these APIs first, but those APIs are slowly making their way to the desktop.  One of those APIs is the getUserMedia API...

  • By
    Write Better JavaScript with Promises

    You've probably heard the talk around the water cooler about how promises are the future. All of the cool kids are using them, but you don't see what makes them so special. Can't you just use a callback? What's the big deal? In this article, we'll...

Incredible Demos

  • By
    Element Position Swapping Using MooTools 1.2

    We all know that MooTools 1.2 can do some pretty awesome animations. What if we want to quickly make two element swap positions without a lot of fuss? Now you can by implementing a MooTools swap() method. MooTools 1.2 Implementation MooTools 1.2 Usage To call the swap...

  • By
    Morphing Elements Using MooTools and CSS

    Morphing an element between CSS classes is another great trick the MooTools JavaScript library enables you to do. Morphing isn't the most practical use of MooTools, but it's still a trick at your disposal. Step 1: The XHTML The block of content that will change is...

Discussion

  1. Akis

    Thank you for this tip. Are you sure that the maximum value is 10? On my Mac with High Sierra, the maximum value get on 7. The 8, 9, 10 also change the value to maximum. I did double check it by viewing the pop-up small window on volume indicator on menu bar.

  2. Simon Andersen

    This is how it’s done on Mojave:

    sudo osascript -e "set volume output volume [0-100]"

    The deprecated way is to specify a number between 0 and 7 for “set volume”

  3. Br. Bill

    Is there a way to similarly look up the current volume setting (let’s say, in Mojave or Catalina)?

  4. Syd Salmon

    Options to get the current volume setting:

    osascript -e 'output volume of (get volume settings)' # show current volume level

    or

    osascript -e 'get volume settings' # show all volume settings

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!