<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        
        
        <!-- This is broken by doc revisioning.
         -->
        <link rel="shortcut icon" href="../../img/favicon.ico">

        <title>Install Newtmgr On Mac OS - Apache Mynewt</title>

        <link href="../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
        <link rel="stylesheet" href="../../css/highlight.css">
        <link href="../../css/base.css" rel="stylesheet">
        <link href="../../css/custom.css" rel="stylesheet">
        <link href="../../css/v2.css" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
        <![endif]-->

        
            <script>
            (function(i, s, o, g, r, a, m) {
    i["GoogleAnalyticsObject"] = r;
    (i[r] =
        i[r] ||
        function() {
            (i[r].q = i[r].q || []).push(arguments);
        }),
        (i[r].l = 1 * new Date());
    (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
    a.async = 1;
    a.src = g;
    m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");

ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
        
    </head>


    <body class="Install Newtmgr On Mac OS">


        <div class="container">
    <div class="row v2-main-banner">
        <a class="logo-cell" href="/">
            <img class="logo" src="/img/logo.png">
        </a>
        <div class="tagline-cell">
            <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
        </div>
        <div class="news-cell">
            <div class="well">
                <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released (April 4, 2024)
            </div>
        </div>
    </div>
</div>

        






<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" role="navigation">
    <div class="container">
        <!-- Collapsed navigation -->
        <div class="navbar-header">
            <!-- Expander button -->
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>

        </div>

        <!-- Expanded navigation -->
        <div class="navbar-collapse collapse">
            <!-- Main navigation -->
            <ul class="nav navbar-nav navbar-right">
                <li 
  class=""
>
                    <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
                </li>
                <li 
  class="important"
>
                    <a href="/quick-start/">Quick Start</a>
                </li>
                <li 
  class=""
>
                    <a href="/about/">About</a>
                </li>
                <li 
  class=""
>
                    <a href="/talks/">Talks</a>
                </li>
                <li 
  class="active"
>
                    <a href="/documentation/">Documentation</a>
                </li>
                <li 
  class=""
>
                    <a href="/download/">Download</a>
                </li>
                <li 
  class=""
>
                    <a href="/community/">Community</a>
                </li>
                <li 
  class=""
>
                    <a href="/events/">Events</a>
                </li>
            </ul>

        </div>
    </div>
</nav>

        

        <div class="container">
            
                <div class="row">
                    <div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
    <div class="top">
        <div role="search">
            <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
                <div class="form-group">
                    <input type="text" name="q" class="form-control" placeholder="Search documentation" />
                </div>
            </form>
        </div>
    </div>
    <ul class="toc-nav">
      <li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value">
  <option value="/latest">
    Version: master
  </option>
  <option value="/v1_12_0/" >
    Version: 1.12.0
  </option>
  <option value="/v1_11_0/" >
    Version: 1.11.0
  </option>
  <option value="/v1_10_0/" >
    Version: 1.10.0
  </option>
  <option value="/v1_9_0/" >
    Version: 1.9.0
  </option>
    <option value="/v1_8_0/" >
    Version: 1.8.0
  </option>
  <option value="/v1_7_0/" >
    Version: 1.7.0
  </option>
  <option value="/v1_6_0/" >
    Version: 1.6.0
  </option>
  <option value="/v1_5_0/" >
    Version: 1.5.0
  </option>
  <option value="/v1_4_0/" >
    Version: 1.4.0
  </option>
  <option value="/v1_3_0/os/introduction" >
    Version: 1.3.0
  </option>
  <option value="/v1_2_0/os/introduction" >
    Version: 1.2.0
  </option>
  <option value="/v1_1_0/os/introduction" selected="selected" >
    Version: 1.1.0
  </option>
  <option value="/v1_0_0/os/introduction" >
    Version: 1.0.0
  </option>
  <option value="/v0_9_0/os/introduction" >
    Version: 0.9.0
  </option>
</select></li>
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
          
  
  
    <li ><a href="../../os/introduction/">Mynewt Documentation</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li ><a href="../../os/get_started/get_started/">Basic Setup</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../os/get_started/vocabulary/">Concepts</a>
  </li>

              
          
              
                
  
  
    <li ><a href="../../os/tutorials/tutorials/">Tutorials</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../os/os_user_guide/">OS User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../network/ble/ble_intro/
">BLE User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../newt/newt_intro/">Newt Tool Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../overview/">Newt Manager Guide</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li><a href="
  ../command_list/newtmgr_config/
">Command Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ./
">Install</a>
  
  
    <ul>
          
              
                
  <li class="active">
    <a href="./">Install Newtmgr On Mac OS</a>
  </li>

              
          
              
                
  <li >
    <a href="../install_linux/">Install Newtmgr On Linux</a>
  </li>

              
          
              
                
  <li >
    <a href="../install_windows/">Install Newtmgr On Windows</a>
  </li>

              
          
    </ul>
  
    </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  <li >
    <a href="../../known_issues/">Known Issues</a>
  </li>

              
          
    </ul>
  
    </li>

        
      
        
          
  
  
    <li><a href="
  ../../faq/go_env/
">Appendix</a>
  
  
    </li>

        
      
    </ul>
</div></div>

                    <div class="col-md-9" role="main">
                        <div class="doc-header">
                            <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="/documentation/">Docs</a></li>
    
    
        
          <li>&raquo; Install</li>
        
      
        
          <li>&raquo; <a href="newtmgr/overview/">Newt Manager Guide</a></li>
        
      
        
          <li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
        
      
      
        <li>&raquo; Install Newtmgr On Mac OS</li>
      
    
    
      <li class="wy-breadcrumbs-aside">
        
          <a href="https://github.com/apache/mynewt-site/blob/master/docs/newtmgr/install_mac.md"
            class="icon icon-github"> Edit on GitHub</a>
        
      </li>
    
  </ul>
</div>
                        </div>
                        
                          
                        
                          
                        
                          
                        
                          
                            <div class="alert alert-warning">
                                <p>
                                    Version 1.1.0 is not the most recent version of the Apache Mynewt
                                    documentation. Click <a href="/latest">here</a> to read the latest
                                    version.
                                </p>
                            </div>
                          
                        
                        
                            <h2 id="installing-newtmgr-on-mac-os">Installing Newtmgr on Mac OS</h2>
<p>Newtmgr is supported on Mac OS X 64 bit platforms and has been tested on Mac OS 10.10 and higher.</p>
<p>This page shows you how to install the following versions of newtmgr:</p>
<ul>
<li>Upgrade to or install the latest release version (1.1.0).</li>
<li>Install earlier release versions.</li>
<li>Install the latest from the master branch (unstable).</li>
</ul>
<p><strong>Note:</strong> If you would like to contribute to the newtmgr tool, see <a href="/faq/go_env">Setting Up Go Environment to Contribute to Newt and Newtmgr Tools</a>.</p>
<h3 id="adding-the-mynewt-homebrew-tap">Adding the Mynewt Homebrew Tap</h3>
<p>You should have added the <strong>runtimeco/homebrew-mynewt</strong> tap when you installed the <strong>newt</strong> tool. Run the following commands if you have not done so:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ brew tap runtimeco/homebrew-mynewt
$ brew update
</code></pre></div>

<h3 id="upgrading-to-or-installing-the-latest-release-version">Upgrading to or Installing the Latest Release Version</h3>
<p>Perform the following to upgrade or install the latest release version of newtmgr (1.1.0).</p>
<h4 id="upgrading-to-the-latest-release-version-of-newtmgr">Upgrading to the Latest Release Version of Newtmgr</h4>
<p>If you previously installed newtmgr 1.0.0 using brew, run the following commands to upgrade to newtmgr 1.1.0:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ brew update
$ brew upgrade mynewt-newtmgr
</code></pre></div>

<p><br></p>
<h4 id="installing-the-latest-release-version-of-newtmgr">Installing the Latest Release Version of Newtmgr</h4>
<p>Run the following command to install the latest release version (1.1.0) of newtmgr:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ brew update
$ brew install mynewt-newtmgr
==&gt; Installing mynewt-newtmgr from runtimeco/mynewt
==&gt; Downloading https://github.com/runtimeco/binary-releases/raw/master/mynewt-newt-tools_1.1.0/mynewt-newtmgr-1.1.0.sierra.bottle.tar.gz
==&gt; Downloading from https://raw.githubusercontent.com/runtimeco/binary-releases/master/mynewt-newt-tools_1.1.0/mynewt-newtmgr-1.1.0.sierra.bottle.tar.gz
######################################################################## 100.0%
==&gt; Pouring mynewt-newtmgr-1.1.0.sierra.bottle.tar.gz
🍺  /usr/local/Cellar/mynewt-newtmgr/1.1.0: 3 files, 17MB
</code></pre></div>

<p><br>
<strong>Notes:</strong> Homebrew bottles for newtmgr 1.1.0 are available for Mac OS Sierra, El Captian and Yosemite.  If you are running an earlier version of Mac OS, the installation will install the latest version of Go and compile newtmgr locally.</p>
<p><br></p>
<h3 id="checking-the-installed-version">Checking the Installed Version</h3>
<p>Check that you are using the installed version of newtmgr:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$which newtmgr
/usr/local/bin/newtmgr
ls -l /usr/local/bin/newtmgr
lrwxr-xr-x  1 user  staff  42 Jul 25 21:15 /usr/local/bin/newtmgr -&gt; ../Cellar/mynewt-newtmgr/1.1.0/bin/newtmgr
</code></pre></div>

<p><strong>Note:</strong> If you previously built newtmgr from source and the output of <code>which newtmgr</code> shows "$GOPATH/bin/newtmgr", you will need to move "$GOPATH/bin"  after "/usr/local/bin" for your PATH in  ~/.bash_profile, and source ~/.bash_profile.</p>
<p><br>
Get information about newtmgr:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ newtmgr help
Usage:
  newtmgr [flags]
  newtmgr [command]

Available Commands:
  config      Read or write a config value on a device
  conn        Manage newtmgr connection profiles
  crash       Send a crash command to a device
  datetime    Manage datetime on a device
  echo        Send data to a device and display the echoed back data
  fs          Access files on a device
  help        Help about any command
  image       Manage images on a device
  log         Manage logs on a device
  mpstat      Read mempool statistics from a device
  reset       Perform a soft reset of a device
  run         Run test procedures on a device
  stat        Read statistics from a device
  taskstat    Read task statistics from a device

Flags:
  -c, --conn string       connection profile to use
  -h, --help              help for newtmgr
  -l, --loglevel string   log level to use (default &quot;info&quot;)
      --name string       name of target BLE device; overrides profile setting
  -t, --timeout float     timeout in seconds (partial seconds allowed) (default 10)
  -r, --tries int         total number of tries in case of timeout (default 1)

Use &quot;newtmgr [command] --help&quot; for more information about a command.
</code></pre></div>

<p><br></p>
<h3 id="installing-earlier-release-versions-of-newtmgr">Installing Earlier Release Versions of Newtmgr</h3>
<p>If you want to install newtmgr 1.0, run the following commands:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ brew update
$ brew install mynewt-newtmgr@1.0
</code></pre></div>

<p><strong>Note:</strong> This is a keg-only installation.  newt 1.0 is installed in /usr/local/Cellar/mynewt-newtmgr@1.0/1.0.0/bin but not symlinked into /usr/local/bin.  </p>
<p>If you need this version of newt first in your PATH, run the following commands:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ echo &#39;export PATH=/usr/local/Cellar/mynewt-newtmgr@1.0/1.0.0/bin:$PATH&#39; &gt;&gt; ~/.bash_profile
$ source ~/.bash_profile
</code></pre></div>

<p><br>
You can also manually symlink into /usr/local/bin as follows:</p>
<ol>
<li>
<p>Unlink newtmgr if you have the latest version of newt installed:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ brew unlink mynewt-newtmgr
</code></pre></div>

</li>
<li>
<p>Link mynewt-newt@1.0 into /usr/local/bin:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ brew link -f mynewt-newt@1.0
</code></pre></div>

</li>
</ol>
<p><br></p>
<h3 id="installing-newtmgr-from-the-master-branch">Installing Newtmgr from the Master Branch</h3>
<p>We recommend that you use the latest release version (1.1.0) of newtmgr. If you would like to use the master branch with the latest updates, you can install newtmgr from the HEAD of the master branch. </p>
<p>** Notes: **</p>
<ul>
<li>The master branch may be unstable.</li>
<li>This installation will install the latest version of Go on your computer, if it is not installed, and compile newtmgr locally. </li>
</ul>
<p><br>
If you already installed newtgmr, unlink the current version:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$brew unlink mynewt-newtmgr
</code></pre></div>

<p><br>
Install the latest unstable version of newtmgr from the master branch:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$brew install mynewt-newtmgr --HEAD
==&gt; Installing mynewt-newtmgr from runtimeco/mynewt
==&gt; Cloning https://github.com/apache/mynewt-newtmgr.git
Cloning into &#39;/Users/wanda/Library/Caches/Homebrew/mynewt-newtmgr--git&#39;...
remote: Counting objects: 650, done.
remote: Compressing objects: 100% (511/511), done.
remote: Total 650 (delta 192), reused 345 (delta 114), pack-reused 0
Receiving objects: 100% (650/650), 4.67 MiB | 4.58 MiB/s, done.
Resolving deltas: 100% (192/192), done.
==&gt; Checking out branch master
==&gt; go get github.com/currantlabs/ble
==&gt; go get github.com/raff/goble
==&gt; go get github.com/mgutz/logxi/v1
==&gt; go install
🍺  /usr/local/Cellar/mynewt-newtmgr/HEAD-7bdd773: 3 files, 17MB, built in 22 seconds
</code></pre></div>

<p><br>
To switch back to the latest stable release version (1.1.0) of newtmgr, you can run:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$brew switch mynewt-newtmgr 1.1.0
Cleaning /usr/local/Cellar/mynewt-newtmgr/1.1.0
Cleaning /usr/local/Cellar/mynewt-newtmgr/HEAD-7bdd773
1 links created for /usr/local/Cellar/mynewt-newtmgr/1.1.0
</code></pre></div>

<p><br></p>
                        
                        <div class="row">
                            



<ul class="nav nav-pills" style="margin-bottom: 10px">
    <li>
    
    </li>
    <li class="pull-right">
    
    </li>
</ul>
                        </div>
                        <footer class="row">
    <div class="col-xs-12">
        
            <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
        
    </div>
    <div class="col-xs-12">
        <div class="logos">
            <a href="https://www.apache.org/">
                <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
            </a>
            <p>
                Copyright © 2015-2021 The Apache Software Foundation.<br>
                <small class="footnote">
                    Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt
                    project logo are either registered trademarks or trademarks of the Apache
                    Software Foundation in the United States and other countries.
                </small>
            </p>
            <a href="">
                <img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
            </a>
        </div>
    </div>
    <a href="https://www.apache.org/licenses/">
        <button class="button-footer-asf">
            License
        </button>
    </a>
    <a href="https://www.apache.org/foundation/sponsorship.html">
        <button class="button-footer-asf">
            Sponsorship
        </button>
    </a>
    <a href="https://www.apache.org/foundation/thanks.html">
        <button class="button-footer-asf">
            Thanks
        </button>
    </a>
    <a href="https://www.apache.org/security/">
        <button class="button-footer-asf">
            Security
        </button>
    </a>
    <a href="https://apache.org/events/current-event">
        <button class="button-footer-asf">
            ASF Events
        </button>
    </a>
</footer>
                    </div>
                </div>
            
            
        </div>

        <script src="../../js/jquery-1.10.2.min.js"></script>
        <script src="../../js/bootstrap-3.0.3.min.js"></script>
        <script src="../../js/highlight.pack.js"></script>
        <script src="../../js/base.js"></script>
        <script src="../../js/custom.js"></script>
            <script src="search/main.js"></script>

    </body>
</html>