Skip to main content
NervesHubLink is the client for devices running Nerves. It is the reference implementation of the device protocol — the one the server is developed against, and the one the other clients are measured by. Added to your project as an Elixir dependency, it maintains the WebSocket connection, reports the firmware the device is running, downloads and applies updates through fwup, serves the remote console, and carries the extensions that report health, metrics, geo and logs.

Library documentation

The library documents itself on HexDocs, and that is the authoritative reference — it ships with the library, so it is always current for the version you are running.

nerves_hub_link on HexDocs

Full documentation for the library: every configuration key, the client behaviour, the extensions, and the module reference.
Worth knowing where things are:

Getting a device connected

These pages cover the NervesHub side — creating the product, getting credentials, and pointing a device at them:

Add to Project

Add the dependency, pick an authentication method, and configure config/target.exs.

Connecting

Point a device at NervesCloud or your own instance, and configure runtime credentials.

Not running Nerves?

If your device runs Linux without Nerves, or an ESP32 under AtomVM, see Choosing a Device Client for the other options.