Skip to main content
The nh CLI is a standalone binary that lets you manage your NervesHub organization, devices, firmware, and deployment groups directly from the command line or inside CI/CD pipelines — no Elixir toolchain required. Choose the installation method that fits your operating system and workflow below.

Install Options

The quickest way to install nh. Homebrew also handles future upgrades.
To upgrade an existing installation:
The same tap also carries an older Elixir build of the CLI as nerves-hub/tap/nh, which provides its own nh command. If you have it installed, remove it first so the two do not collide:
If macOS reports that the nh binary is not trusted after installation, open System Settings → Privacy & Security, scroll to the Security section, and click Open Anyway next to the nh entry. Then re-run nh in your terminal.

Verify Installation

After installing, confirm that nh is available and check the installed version:
To see top-level help and a summary of all available commands:
A successful installation prints the version string, for example:

Runtime Dependency

Signing and uploading firmware shells out to fwup, which must be on your PATH. No other command needs it, and it is not required when uploading with --skip-signing.

Migrating from the Elixir CLI

If you previously used the Elixir nerves_hub_cli, import its settings once:
This reads that CLI’s data directory (~/.nerves-hub, or $NERVES_HUB_HOME) and copies your saved defaults, API token, and signing keys into nh’s own data directory. It leaves the original files in place, and signing keys are re-encoded rather than decrypted, so no key password is required and password-protected keys keep theirs.
nh is open source under the MIT license. View the source code, report issues, and track releases at github.com/nerves-hub/nh.