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
    Vibration API

    Many of the new APIs provided to us by browser vendors are more targeted toward the mobile user than the desktop user.  One of those simple APIs the Vibration API.  The Vibration API allows developers to direct the device, using JavaScript, to vibrate in...

  • By
    Chris Coyier’s Favorite CodePen Demos

    David asked me if I'd be up for a guest post picking out some of my favorite Pens from CodePen. A daunting task! There are so many! I managed to pick a few though that have blown me away over the past few months. If you...

Incredible Demos

  • By
    Smooth Scrolling with MooTools Fx.SmoothScroll

    I get quite a few support requests for my previous MooTools SmoothScroll article and the issue usually boils down to the fact that SmoothScroll has become Fx.SmoothScroll. Here's a simple usage of Fx.SmoothScroll. The HTML The only HTML requirement for Fx.SmoothScroll is that all named...

  • By
    Basic AJAX Requests Using MooTools 1.2

    AJAX has become a huge part of the modern web and that wont change in the foreseeable future. MooTools has made AJAX so simple that a rookie developer can get their dynamic pages working in no time. Step 1: The XHTML Here we define two links...

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!