Release

macOS v2 migration

Formula versus cask install paths, v1 CLI continuity, and how to switch between the free CLI and paid app.

HASP v2 has two Homebrew install paths in the same gethasp/tap tap:

  • brew install gethasp/tap/hasp installs the free CLI formula.
  • brew install --cask gethasp/tap/hasp installs the paid HASP.app wrapper.

The formula stays the safe path for existing v1 CLI users. Running brew upgrade hasp continues to upgrade the CLI formula and does not install the paid app.

Pick the right package

Use the formula when you only need the CLI, daemon, MCP broker, scripts, or automation:

brew install gethasp/tap/hasp
hasp version

Use the cask when you want the native macOS app and the bundled CLI:

brew install --cask gethasp/tap/hasp

The cask checks for the installed hasp formula before install and refuses to continue while it is present. Homebrew Cask does not support a conflicts_with formula: stanza, so HASP enforces the same collision rule with a cask preflight check. The cask does not delete shared global hasp paths during uninstall; CLI shim cleanup stays receipt-owned in the app. If you have the formula installed and choose the app, remove the formula first:

brew uninstall hasp
brew install --cask gethasp/tap/hasp

Move back to CLI-only

If you installed the app but only want the free CLI again, remove the cask and install the formula:

brew uninstall --cask hasp
brew install gethasp/tap/hasp

Uninstalling the cask removes the app and launch-agent wiring. It does not remove your vault, audit history, backup files, or keychain license material. The cask zap list intentionally excludes ~/Library/Application Support/HASP and any effective HASP_HOME, because those locations may contain operator data.

Direct DMG path

The public DMG is available from the download page:

open https://download.gethasp.com/

That page shows the app download, the cask command, and the formula command side by side so the paid app path and free CLI path stay distinct.