Wink is a macOS menu bar app for opening, focusing, and hiding apps with global shortcuts. It keeps the interaction deliberately small: press a shortcut once to bring an app forward, press it again to get it out of the way.
Wink suggests a quick, subtle signal: something that happens almost instantly and then gets out of the way. That is the feeling Wink aims for when switching apps.
- Bind letters, function keys, arrows, or Space to target apps.
- Use normal modifier shortcuts or a Hyper shortcut path based on Caps Lock.
- Launch missing apps, focus running apps, or hide the frontmost target with Thor-like toggle semantics.
- Review shortcuts, readiness, and recent usage from the menu bar and Settings.
- Import and export
.winkrecipeshortcut sets. - Launch at login and automatic updates are surfaced through native macOS controls.
- macOS 15 or later.
- Accessibility permission for global shortcut routing.
- Input Monitoring only when Hyper-routed shortcuts are enabled.
- Swift 6 when building from source.
swift build
swift test
./scripts/package-app.sh
open build/Wink.appUseful packaging commands:
./scripts/package-update-zip.sh
./scripts/package-dmg.sh
./scripts/e2e-full-test.shAlways launch the packaged app with open build/Wink.app when testing permissions. macOS ties Accessibility and Input Monitoring grants to the app identity, signature, and bundle path; launching the raw binary is not equivalent.
- Standard shortcuts use Carbon hotkeys.
- Hyper-routed shortcuts use an active event tap.
- Reliable activation for an accessory app depends on SkyLight, a private macOS API. See
docs/architecture.mdfor the platform trade-offs. - Runtime-sensitive behavior must be validated on macOS, not inferred from source inspection alone.
