jsumners/udm-pro-api-client — explained in plain English
Analysis updated 2026-08-03 · repo last pushed 2024-03-30
Generate a hosts file from your router's connected devices and feed it to Dnsmasq for local DNS resolution by device name.
Remotely restart a managed Wi-Fi access point from the terminal without logging into the router's web interface.
Automate network documentation by pulling device lists programmatically into your own Go application.
Keep a local DNS hosts file in sync automatically whenever devices join or change on your network.
| jsumners/udm-pro-api-client | aeneasr/github-trends | bxcodec/go-simple-flatbuffer | |
|---|---|---|---|
| Stars | 4 | 4 | 4 |
| Language | Go | Go | Go |
| Last pushed | 2024-03-30 | 2020-12-18 | 2017-06-09 |
| Maintenance | Dormant | Dormant | Dormant |
| Setup difficulty | moderate | easy | easy |
| Complexity | 2/5 | 2/5 | 2/5 |
| Audience | ops devops | pm founder | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires access to a Ubiquiti UDM Pro router with known credentials and compatible UniFi OS firmware version.
The udm-pro-api-client is a tool for talking to a Ubiquiti UDM Pro router, the device that manages a home or small-office network. It lets you programmatically pull information about what's connected to your network and trigger actions like restarting a wireless access point, rather than clicking through the router's web interface every time. The project provides two things: a Go library (for developers who want to build this functionality into their own software) and a command-line tool (for anyone who just wants to run it from a terminal). The CLI currently supports two main actions. The first, get-hosts, retrieves a list of connected devices and generates a hosts file, a plain-text mapping of device names to IP addresses. This file can be fed into Dnsmasq, a common tool that handles local DNS resolution, so you can refer to devices by name instead of remembering IP addresses. The second action, device restart, lets you remotely restart a managed device like a Wi-Fi access point. Configuration is flexible: you can use a YAML file, environment variables, or command-line flags to specify the router's address and your login credentials. You can also add custom name-IP pairs for devices the router doesn't track itself, such as the router's own address. By default, the tool focuses on devices with manually assigned (static) IP addresses, which tends to be the more useful subset for tasks like generating a hosts file. This tool would appeal to network tinkerers, home-lab enthusiasts, or IT staff managing a small office who want to automate network documentation and maintenance. For example, someone running local DNS through Dnsmasq could use this to keep their hosts file in sync whenever devices join or change on the network, without manual updates. The README notes compatibility with specific UniFi OS and Network versions, so users would want to verify it works with their firmware.
A Go library and command-line tool that talks to a Ubiquiti UDM Pro router to list connected devices, generate a hosts file for local DNS, and remotely restart managed devices like Wi-Fi access points.
Mainly Go. The stack also includes Go, YAML, Dnsmasq.
Dormant — no commits in 2+ years (last push 2024-03-30).
No license information is provided in the repository, so usage rights are unclear and you should contact the author before using it.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.