macOS
brew install uhubctllocal Homebrew formula metadata
sudo port install uhubctlMacPorts ports tree · sysutils/uhubctl/Portfile · source: api.github.com
brew
USB hub per-port power control. Version 2.6.0 via Homebrew; verified from local package data.
install
brew install uhubctllocal Homebrew formula metadata
sudo port install uhubctlMacPorts ports tree · sysutils/uhubctl/Portfile · source: api.github.com
sudo apk add uhubctlAlpine Linux edge package indexes · uhubctl · source: dl-cdn.alpinelinux.org
sudo apt install uhubctlDebian stable package indexes · uhubctl · source: deb.debian.org
sudo dnf install uhubctlFedora Rawhide package metadata · uhubctl · source: dl.fedoraproject.org
nix profile install nixpkgs#uhubctlnixpkgs package indexes · pkgs/by-name/uh/uhubctl/package.nix · source: api.github.com
sudo zypper install uhubctlopenSUSE Tumbleweed package metadata · uhubctl · source: download.opensuse.org
overview
USB hub per-port power control
history
uhubctl is a command-line utility for controlling per-port power on USB hubs that implement USB per-port power switching.
The public uhubctl repository was created in 2015. Its README credits hub-ctrl.c by Niibe Yutaka as the original inspiration and defines the target hardware as smart USB hubs that can switch power per port.
The project grew around a practical compatibility table rather than only a codebase. The README tracks known working hubs, monitors, docks, keyboards, Raspberry Pi boards, and embedded devices, and asks users to report working hardware with uhubctl output and VBUS-off test results.
Release metadata shows v1.8 in 2017, v2.0.0 in 2018, a series of 2.x releases through 2022, and v2.6.0 in 2024.
uhubctl's adoption is closely tied to lab automation, embedded development, Raspberry Pi work, USB device testing, and remote recovery workflows where physically unplugging a device is inconvenient. The README documents Raspberry Pi models and many external hubs and docks as compatible or partially compatible devices.
The supplied package data records uhubctl in Homebrew, MacPorts, Nix, Alpine, Debian, Ubuntu, Fedora/dnf, and openSUSE. The official README likewise lists package-manager install commands for macOS, Debian-family systems, Red Hat-family systems, openSUSE, and FreeBSD.
The common command form is to list supported hubs, then turn a selected port off, on, toggle it, or cycle it with a configurable delay. The README documents location selection for multi-hub systems and cautions that switching built-in USB ports can disconnect keyboards or mice.
On Linux, the README documents udev rules for non-root access and notes that Linux kernel 6.0 and later provide a standard interface for disabling hub ports, which uhubctl tries to use instead of libusb where possible.
The README also explains USB 3.0 duality: a USB 3 hub can appear as separate USB2 and USB3 virtual hubs, and power changes may need to be applied to both for the physical port state to match the user's expectation.
uhubctl is significant because it turns a hardware capability that is inconsistently implemented by consumer devices into a scriptable package-manager tool. That makes it useful for test rigs, CI benches with attached hardware, home labs, and headless systems.
For packagers, the interesting part is not just compiling a small C program; it is carrying libusb behavior, OS-specific permissions, kernel interface changes, and documentation for hardware quirks that determine whether the command actually cuts power.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
uhubctl | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/mvp/uhubctl
install metadata
| Package key | brew:uhubctl |
|---|---|
| Version | 2.6.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/uhubctl |
| Homepage | https://github.com/mvp/uhubctl |
| Repository | https://github.com/mvp/uhubctl |
| Upstream docs | https://github.com/mvp/uhubctl |
| License | GPL-2.0-only |
| Source archive | https://github.com/mvp/uhubctl/archive/refs/tags/v2.6.0.tar.gz |
| Dependencies | libusb |
| Build dependencies | pkgconf |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | uhubctl |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
uhubctl 2.6.0-1
USB hub per-port power control
https://github.com/mvp/uhubctl
sudo apt install uhubctluhubctl
nix profile install nixpkgs#uhubctluhubctl 2.5.0-1
USB hub per-port power control
https://github.com/mvp/uhubctl
sudo apt install uhubctluhubctl 2.5.0-r0
USB hub per-port power control
https://github.com/mvp/uhubctl
sudo apk add uhubctluhubctl 2.6.0-5.fc44
USB hub per-port power control
https://github.com/mvp/uhubctl
sudo dnf install uhubctluhubctl 2.6.0-1.5
USB hub per-port power control
https://github.com/mvp/uhubctl
sudo zypper install uhubctluhubctl
sudo port install uhubctlsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.