QuitCue asks for confirmation before selected apps quit. Unprotected apps keep the normal macOS behavior.
After an app is protected, Command-Q shows a confirmation overlay instead of quitting immediately.
- Protect apps by Bundle ID.
- Confirm quits by holding Command-Q or pressing it twice.
- Adjust the hold duration and double-press window.
- Manage protected apps, confirmation mode, launch at login, and core settings from one control panel.
- Keep QuitCue running after its window closes, so protection stays active in the background.
- Intercept plain Command-Q with a system event tap while leaving other shortcuts alone.
Before development, install:
- Xcode 26 or later
- XcodeGen
- create-dmg, used for local installer packaging
- Tart, used for isolated UI and EventTap tests
Open the generated Xcode project:
xcodegen generate
open QuitCue.xcodeprojproject.yml is the source of truth for the project structure. The generated Xcode project is treated as a build artifact. Use Tart for full UI and EventTap checks.
project.yml is the source of truth for the public version. Prepare a release locally, review the generated commit and tag, then push both:
scripts/prepare-release.sh 0.1.3
git push origin main v0.1.3Pushing a vX.Y.Z tag triggers the GitHub Release workflow. In the default developer-id mode, the workflow builds the Release app, signs it with Developer ID, notarizes and staples the DMG, verifies the app and DMG with macOS security tools, then uploads QuitCue-X.Y.Z.dmg to the GitHub Release.
Configure these GitHub Actions secrets before pushing a public release tag:
DEVELOPER_ID_APPLICATION_P12_BASE64DEVELOPER_ID_APPLICATION_P12_PASSWORDAPPLE_IDAPPLE_TEAM_IDAPPLE_APP_SPECIFIC_PASSWORDQUITCUE_CODESIGN_IDENTITY
For a temporary pipeline rehearsal, set the repository variable QUITCUE_RELEASE_SIGNING_MODE to apple-development and configure:
APPLE_DEVELOPMENT_P12_BASE64APPLE_DEVELOPMENT_P12_PASSWORDAPPLE_TEAM_IDQUITCUE_CODESIGN_IDENTITY
The apple-development mode signs the app with an Apple Development certificate, skips notarization and Gatekeeper assessment, and marks the GitHub Release as a prerelease. Use it only to exercise the Release pipeline, not for public distribution.
Full UI and EventTap verification still belongs in Tart before publishing a release.
QuitCue is released under the MIT License.
