Features
- Rust support: rustup toolchains and rustup itself, plus the tools installed with
cargo install, checked against crates.io, with a Rust tab in Settings - Python support: tools installed with pipx and uv, grouped by manager, with a Python tab in Settings
- Node global packages from pnpm, Bun and Yarn 1, shown next to the Node versions
- Standard packages: one list per tool (Homebrew, Node, Ruby, Rust and Python) in its own window. Validate checks that each package exists, and Install missing installs what a version, a package manager or this Mac does not have yet. A banner offers the list when a new Node or Ruby version appears. Nothing installs until you choose Install
- Export and Import of the standard lists in the File menu, as JSON, with Merge or Replace
- Sync of the standard lists through a private GitHub repository. Connect an account in the new Accounts tab in Settings, and DevHub keeps the lists of your Macs the same. A sync never installs anything. GitHub's
repopermission is needed to create a private repository, and the tab explains it before you connect - New Node and Ruby versions: a banner offers a newer version, with Install and Install and set as default, when nvm, fnm, Volta, asdf, rbenv or rvm owns your versions. DevHub looks at nodejs.org and ruby-lang.org once a day, and a switch in Settings turns it off
- Uninstall a Node or Ruby version through its manager (nvm, fnm, asdf, rbenv or rvm), from the version's header or its sidebar menu, after a confirmation
Changed
- History can hold
installentries, which older versions of DevHub skip - History moves to
⌘6, because Rust takes⌘4and Python takes⌘5
Installation
Download the .dmg, open it and drag DevHub to Applications.
DevHub is signed ad hoc and is not notarized yet, so macOS blocks it the first time. Open System Settings, then Privacy & Security, and choose Open Anyway next to DevHub. Or run:
xattr -dr com.apple.quarantine /Applications/DevHub.app
The SHA-256 checksum is attached as a .sha256 file.