-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
- Apple Silicon Mac (arm64) — this is not a universal app
- macOS 14 or newer
brew install --cask dasduo/tap/shuttlexUpdate later with brew upgrade --cask shuttlex. After installing, approve it once (see Gatekeeper below) — Homebrew installs the app but doesn't bypass Gatekeeper for an un-notarized app.
From the Releases page, pick one:
-
ShuttleX-<version>-arm64.dmg— open it and drag ShuttleX onto the Applications shortcut (easiest). -
ShuttleX-<version>-arm64.zip— unzip it and moveShuttleX.appto/Applications.
Then approve it on first launch (see Gatekeeper below).
Because the app is only ad-hoc signed (not notarized), Gatekeeper blocks the first launch when the file came from the internet/AirDrop — this applies to both the .dmg and the .zip. Two ways to approve it:
-
Terminal:
xattr -dr com.apple.quarantine /Applications/ShuttleX.app - System Settings: launch once, dismiss the warning, then System Settings → Privacy & Security → "Open Anyway". (Since macOS 15, right-click → Open is no longer enough.)
A FAT/exFAT USB stick sets no quarantine attribute, so the app starts directly from one.
git clone https://github.com/DasDuo/ShuttleX
cd ShuttleX
./build.sh
open build/ShuttleX.appRequirements: Xcode (or the Command Line Tools) with Swift 5.9+. Locally built apps have no quarantine, so they start without the Gatekeeper step.
./build.sh also produces ShuttleX-<version>-arm64.zip; run ./make-dmg.sh afterwards to package a drag-to-install ShuttleX-<version>-arm64.dmg. Run the test suite with swift test.
Settings → General → "Launch at login". For this to work reliably, run the app from /Applications.
ShuttleX does not phone home by default. Turn on Settings → General → "Check for updates on launch" to have it query the public GitHub Releases API at most once a day (no account, no tracking) and show an "Update available" hint in the menu that links to the download. It never installs anything automatically — you download the new .dmg/.zip yourself.