Every version tag is built on the matching native GitHub-hosted runner.
Homebrew (macOS)
Homebrew automatically selects the Apple Silicon or Intel build:
brew install --cask ochub-team/tap/ochubUpgrade or uninstall OcHub with:
brew upgrade --cask ochub-team/tap/ochub
brew uninstall --cask ochubThe Cask is maintained in the
OcHub-team/homebrew-tap
repository and downloads the same DMG published with each GitHub Release.
Direct downloads
| Platform | Release files |
|---|---|
| macOS Apple Silicon | ARM64 .dmg |
| macOS Intel | x64 .dmg |
| Windows 10/11 x64 | NSIS installer and portable .zip |
| Linux x64 | AppImage and Debian .deb |
The release also includes SHA256SUMS and a GitHub artifact attestation. Verify
a downloaded file with:
sha256sum -c SHA256SUMS --ignore-missing
gh attestation verify <downloaded-file> --repo OcHub-team/OcHubmacOS: approving the app on first launch
OcHub is not yet notarized by Apple, so macOS asks you to approve it once:
-
Open OcHub. macOS says it cannot verify the developer.
-
Go to System Settings › Privacy & Security, scroll to Security, and click Open Anyway.
Control-clicking the app no longer works for this on macOS 15 and later — the System Settings route is the only one. To skip the prompt entirely, install without the quarantine flag:
brew install --cask --no-quarantine ochub-team/tap/ochubUpdates installed from inside OcHub are never quarantined, so this is a one-time step rather than something you repeat on every release.
Windows SmartScreen may warn for the same reason.
Updating
OcHub checks for a new release shortly after launch and once a day after that, and can install one from Settings → About → Check for updates without leaving the app. Turn the check off with the toggle in the same group.
Downloaded packages are verified against a signing key compiled into the binary, and a version that is not newer than the running one is refused, so the update channel cannot be used to push unsigned code or to roll an install backwards.
Two install methods stay check-only, because self-updating them would fight the system that owns them:
| Install | In-app update |
|---|---|
macOS .dmg, Windows installer, Linux AppImage |
Yes |
| Debian package | No — use apt, so dpkg’s records stay accurate |
| Windows portable ZIP | No — there is no installer to re-run |
Those two report the reason in the settings row and link to the release page.

